분류 전체보기
[Tech Interview] Part 7. Back-End
💡 WAS(Web Application Server)와 WS(Web Server)의 차이를 설명해주세요. 웹 서버는 이미지나 단순 HTML과 같은 정적인 컨텐츠를 제공하는 서버입니다. Apache 반면 WAS는 DB 조회나 어떤 로직을 처리해야 하는 동적인 컨텐츠를 제공하는 서버입니다. Tomcat 💡 Spring Framework에 대해 설명해주세요. 스프링 프레임워크는 자바 개발을 편리하게 해주는 오픈소스 프레임워크 입니다. 스프링은 경량 컨테이너로서 자바 객체를 직접 관리합니다. 즉, 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 개발자는 스프링으로부터 필요한 객체를 얻어올 수 있습니다. 또한 제어의 역전(IoC)이라는 기술을 통해 오브젝트의 생성과 의존 관계 설정 등의 작업을 어플리케이션 코드..
[Tech Interview] Part 6. Operation System
💡 프로세스와 쓰레드의 차이에 대해 설명해주세요. 프로세스 프로세스는 현재 실행 중인 프로그램을 말하며, 완벽히 독립적이기 때문에 메모리 영역(Code, Data, Heap, Stack)을 다른 프로세스와 공유하지 않습니다. 프로세스는 최소 1개의 쓰레드(메인 쓰레드)를 가지고 있습니다. 쓰레드 쓰레드는 프로세스 내에 존재하며 프로세스가 할당받은 자원을 이용하여 실행됩니다. 쓰레드는 프로세스 내에서 Stack 영역만 따로 할당 받고, 그 이외의 메모리 영역(Code, Data, Heap)은 공유하기 때문에 다른 쓰레드의 실행 결과를 즉시 확인할 수 있습니다. 💡 멀티 프로세스와 멀티 쓰레드의 특징에 대해 설명해주세요. 멀티 프로세스 멀티 프로세스란 다수의 프로세서(CPU)가 협력적으로 하나 이상의 작업(..
[Tech Interview] Part 5. Network
💡 HTTP 프로토콜에 대해 설명해주세요. HTTP(Hyper Text Transfer Protocol)란 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜로써, 웹에서 이루어지는 모든 데이터 교환의 기초가 되는 프로토콜입니다. HTTP는 상태 정보를 저장하지 않는 Stateless의 특징과 클라이언트의 요청에 맞는 응답을 보낸 후 연결을 끊는 Connectionless의 특징을 갖고 있습니다. 통신간의 연결 상태 처리나 상태 정보를 관리할 필요가 없어 서버 디자인이 간단하다는 장점이 있으나 이전 통신의 정보를 모르기 때문에 매번 인증을 해줘야 하며, 이를 해결하기 위해서는 쿠키(cookie)나 세션(session)을 추가로 사용해서 데이터를 처리해야 한다는 불편함도 있습니다. 💡 HTT..
[Tech Interview] Part 4. Algorithm
💡 동적 계획법(DP, Dynamic Programming)에 대해 설명해주세요. 동적 계획법이란 주어진 문제를 풀기 위해, 문제를 여러 개의 하위 문제로 나누어 푸는 방법을 말합니다. 동적 계획법에서는 어떤 부분 문제가 다른 문제들을 해결하는데 사용될 수 있을 때, 답을 여러 번 계산하는 대신 한 번만 계산하고, 그 결과를 재활용하는 메모이제이션(Memoization)기법으로 속도를 향상시킬 수 있습니다. 메모이제이션 : 동일한 계산을 반복해야 할 때, 이전에 계산한 값을 재사용함으로써 동일한 계산의 반복 수행을 제거하여 프로그램 실행 속도를 빠르게 하는 기술 💡 동적 계획법(DP, Dynamic Programming)이 갖는 2가지 조건은 무엇인가요? 동적 계획법의 조건에는 중복되는 부분 문제와 최적..