본문 바로가기

전체 글

(74)
[TEST] Mock 이란? 단위테스트를 하기 위해서 한번에 메서드 하나만을 실행하는 것인데 이러한 메서드가 다른 Network, Database 등등 제어하기 어려운 것들에 의존하고 있다면 어떻게 단위 테스트를 해야할까? * 단위 테스트란 상대적으로 격리된 방식으로 코드의 구별된 단위를 테스트하는 것 . Mock이란? 이러한 실제 객체를 만들어 사용하기에 시간, 비용 등의 Cost 가 높거나 혹은 객체 서로 간의 의존성이 강해 구현하기 힘들 경우 가짜 객체를 만들어 사용하는 방법 Mock 객체는 언제 필요한가? - 테스트 작성을 위한 환경 구축이 어려운 경우 - 테스트가 특정 경우나 순간에 의존적인 경우 - 테스트 시간이 오래 걸리는 경우 - 개인 PC의 성능이나 서버의 성능 문제로 오래 걸릴 수 있는 경우 시간을 단축하기 위해 ..
[Exception] Spring boot ".properties file" Setting Error [ Error Description ] ***************************APPLICATION FAILED TO START*************************** Description:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver class ※ 원인 : Project build 할 때 DB 설정 파일의 경로를 찾지 못하여 발생하는 Error 1. [ Spring Boot 2.4 이상의 Version을 사용할 경우 ] .properties 파일을 ..
로드 밸런싱이란? 1) 로드 밸런서를 사용하는 이유 서버는 수백만 명의 사용자를 동시에 처리해야하는 할 경우 부하가 발생할 수 있다. 이때 발생한 서버의 부하를 해결하기 위한 방법으로 2가지 종류가 있으며 추가 장비 없이 하드웨어의 성능을 높이는 "Scale-up" 방식과 추가적으로 여러 서버를 두는 "Scale-out" 방식이 있다. Scale-up(스케일 업) Scale-out(스케일 아웃) CPU 변경, RAM 추가 등의 하드웨어 장비의 성능을 높임 수직 확장으로 성능 확장에 한계가 있음 하나의 장비에서 처리하던 일을 여러 장비에 나눠서 처리 수평 확장적으로 지속적인 확장이 가능 성능 증가에 따른 비용 증가폭이 큼 비교적 저렴한 서버 사용으로 비용 부담이 적음 한 대의 서버에 부하가 집중되어 장애 영향도가 크다 읽기..
[운영체제] 운영체제의 기능 - 반효경 교수님 OS ● 운영체제의 기능 ● [ 강의 목차 ] 1. CPU 스케줄링 2. 메모리관리 3. 디스크 스케줄링 4. 저장장치 계층 구조와 캐싱(Caching) 1) CPU 스케줄링 * FCFS [First-Come First-Served] - CPU 큐에 먼저 도착한 프로세스를 순서대로 처리하는 것을 말한다. - 이로 인해, 프로세스들이 대기하는 평균 시간이 길어질 수 있음 -> "비효율적일 수 있음" * SJF [Short-Job-Frist] - CPU 사용시간이 가장 짧은 프로세스를 제일 먼저 처리하는 것을 말한다. - CPU를 길게 사용하려는 프로세스가 무한정 기다리게 됨 -> "효율성은 좋지만, 형평성에 안좋음" * RR [Round Robin] - 각 프로세스는 동일한 크기의 CPU할당 시간을 가지게 된다..
[운영체제] 운영체제의 목적 - 반효경 교수님 OS ● 운영체제 목적 1) 컴퓨터 시스템의 한정된 자원을 효율적으로 관리하기 위함이 가장 큰 목적(효율성) 2) 특정 사용자/프로그램의 지나친 불이익이 발생하지 않도록 하기 위함(형평성) 3) 사용자 및 운영체제 자신의 보호 * 컴퓨터를 켤때 부팅 된다고 하는데 이는 운영체제(OS)가 컴퓨터 메모리에 올라가서 실행이 되는 것을 의미한다. (운영체제는 컴퓨터가 꺼지기 전까지 계속해서 실행됨) ● 컴퓨터 시스템 구조 [ CPU ] ① CPU의 역할 - 명령어 해석과 실행 : 컴퓨터의 프로그램에서 명령어를 읽고 해석하여 실행 한다. - 데이터 처리 : 산술연산과 논리 연산을 수행할 수 있다. - 주기억장치 접근 : 주기억장치인 메인메모리에서 데이터를 읽거나 쓸수 있다. 이는 프로그램의 명령어나 데이터를 가져와 작..
[취업코칭] 취업코칭 진행 후 받은 피드백 [ 질문 list ] 1. 간단하게 자기소개 해주세요. 2. ktds에서 근무하셨다고 했는데 정확하게 어떤 업무를 맡아 진행하신 건지 3. 중간에 직종 변경을 하셨는데 그 이유와 다시 개발자를 선택하게 된 이유가 무엇인지? 4. 왜 백엔드 개발자를 선택하게 되었는지? 5. 가장 기억에 남는 프로젝트와 맡았던 프로젝트에서 어떤 업무를 담당했는지 6. 프로젝트에서 사용하신 redis에 대해서 설명해주시고 redis를 사용한 이유와 이점에 대해서 설명해주세요. 7. redis말고 해당 기능을 어떻게 구현할 수 있는지 8. 프로젝트를 진행하면서 가장 어려웠던 점과 이유에 대해서 설명해주세요. 9. 프로젝트 구현 시 가장 어렵게 느껴졌던 기술에 대해서 설명해주세요. 10. 프로젝트 진행하면서 어려운 점이 생겼을 ..
[Spring기초] Spring 기술면접 준비 - 기초편 1) @SpringBootApplication 이란 무엇인가요? @SpringBootApplication은 스프링 부트 애플리케이션을 작성할 때 사용되는 어노테이션으로, 스프링 애플리케이션 개발에 필요한 여러 가지 어노테이션을 자동으로 구성하며, 애플리케이션을 실행하는 데 필요한 기본 구성을 제공합니다. @SpringBootApplication 해당 어노테이션의 주요 구성으로는 @Configuration, @EnableAutoConfiguration, @ComponentScan이 있으며 해당 어노테이션의 자세한 기능에 대해 설명드리겠습니다. 첫번째. @Configuration 어노테이션은 스프링 설정 클래스임을 나타내게 됩니다. 두번째. @EnableAutoConfiguration 어노테이션은 스프링 부..
[Daily] 4월 3일 데일리 과제 Q. 트랜잭션이 무엇인지 설명해 주세요. A. 트랜잭션이란 데이터베이스 관리 시스템(DBMS)에서 수행되는 작업 단위를 의미합니다. 트랜잭션은 하나 이상의 쿼리나 명령문들을 묶어서 하나의 작업으로 처리하는 것을 말하며, 데이터베이스의 상태를 변화시키는 연산들의 논리적 단위입니다. 트랜잭션은 ACID라는 속성을 갖습니다. 원자성(Atomicity): 하나의 트랜잭션은 모든 작업이 완료되거나 모두 취소되어야 합니다. 즉, 중간에 어떠한 문제가 발생하더라도 롤백(undo)하여 이전 상태로 복구할 수 있어야 합니다. 일관성(Consistency): 트랜잭션의 수행 결과는 항상 일관성 있는 상태를 유지해야 합니다. 데이터베이스의 제약 조건과 일치하고, 트랜잭션 이전과 이후의 상태가 일관되어야 합니다. 고립성(Is..