😀 Jerry/면접 질문 3

[1분 면접] DB에서 커넥션 풀을 사용하지 않을 때 발생하는 문제는 ?

DB 커넥션 Life Cyle DB 드라이버를 사용하여 DB 연결read/write를 위한 TCP 소켓 열기소켓을 통해 read/write연결 종료 소켓 닫기  커넥션 풀이 없다면  애플리케이션에서 DB 접근에 위와 같은 과정을 반복이 과정은 비용이 상당히 많이 들고, 요청의 응답시간이 길음 커넥션 풀 사용 장점커넥션 풀을 사용함으써 연결을 미리 생성이를 재사용하여 성능을 향상시키고 자원 사용을 최적화 DB 부하 감소 (최대 연결 수 제한)  NestJS 같은 경우 TypeORM이 자동으로 커넥션 풀을 적용시켜준다.

[1분 면접] 스레드, 프로세스, 코어의 수는 많을 수록 좋을까 ?

코어가 많은 경우많은 코어는 CPU의 병렬 처리 성능을 향상이를 최대한 활용하기 위해서는 소프트웨어가 멀티코어 환경에 최적화되어야 함단일 스레드 작업이 주를 이룰 경우, 추가 코어의 이점을 잘 활용 못함또한 코어 수가 많아질수록 CPU의 비용과 전력 소비가 증가해 발열 관리 복잡 프로세스가 많은 경우각 프로세스는 독립된 메모리 공간을 가지는데, 프로세스가 동시에 실행되면 메모리 사용량 급격히 증가프로세스 생성 및 관리에도 많은 시스템 자원이 소모 IPC (프로세스 간 통신)이 필요한 경우 성능 저하 발생많은 프로세스는 프로세스 간 Context Switching에 발생하는 오버헤드 수반 스레드가 많은 경우스레드가 많아지면, 스레드 간 Context Switching이 자주 일어나 CPU 자원이 스레드 관..

[1분 면접] 단위 테스트와 통합 테스트의 차이점

단위 테스트소프트웨어의 가장 작은 단위 (개별 매서드, 함수)의 기능을 검증하는 테스트 통합 테스트개별 모듈들이 결합되어 전체 시스템이 올바르게 동작하는지 검증하는 테스트 모듈 간의 상호작용이 올바르게 동작하는지를 판단 외부 시스템(DB, 네트워크)의 통합을 테스트 슬라이스 테스트특정 레이어 (Controller, Service, Repository)에 대한 테스트애플리케이션의 특정 슬라이스가 올바르게 동작하는지 확인 테스트 코드를 작성하는 이유초기에 버그 발견 리팩토링에 유용개발 속도 향상 코드에 대한 문서 역할