본문 바로가기
CS/기술 면접 대비

[백엔드 기술 면접] #3 Server (1)

by 경험의 가치 2024. 11. 11.

#3 Server (1)

 

Q. 리버스 프록시와 포워드 프록시 차이는 무엇인가?

A. 리버스 프록시는 클라이언트 요청을 받아 여러 서버로 전달하여 로드 밸런싱, 캐싱, 보안, SSL 암호화 등을 제공하며 주로 서버 측에서 사용되고, 예로는 Nginx, HAProxy가 있으며, 포워드 프록시는 클라이언트가 인터넷에 접근할 때 프록시 서버를 통해 접속하여 IP 숨기기, 콘텐츠 필터링, 캐싱 등을 제공하며 주로 클라이언트 측에서 사용됩니다.

 

Q. WS와 WAS의 차이는 무엇인가?

A. WS(Web Server)는 정적 콘텐츠(HTML, CSS, JS)를 제공하고 주로 HTTP 요청을 처리하며 예로는 Apache, Nginx가 있고, WAS(Web Application Server)는 동적 콘텐츠를 처리하고 비즈니스 로직을 수행하며 데이터베이스와 연동하여 애플리케이션 서버 역할을 하며 예로는 Tomcat이 있습니다.

 

Q. Serverless가 무엇이고 어디에 활용할 수 있겠는가?

A. Serverless는 서버 관리 없이 클라우드 제공자가 자동으로 리소스를 할당하고 관리하는 실행 환경으로, 주로 이벤트 기반 애플리케이션, 백엔드 서비스, 실시간 데이터 처리, 트리거 기반 작업 등에 활용할 수 있으며, AWS Lambda, Google Cloud Functions, Azure Functions 등이 있습니다.

 

Q. 로드밸런싱이 무엇이고, 이를 구현할 수 있는 알고리즘에는 무엇이 있는가?

A. 로드밸런싱은 여러 서버에 트래픽을 분산시켜 서비스의 가용성과 성능을 높이는 기술로, 이를 구현할 수 있는 알고리즘에는 라운드 로빈(순차적으로 요청 분배), 최소 연결(가장 적은 연결을 가진 서버로 분배), IP 해시(클라이언트 IP를 해싱하여 특정 서버로 분배), 가중치 기반 로드밸런싱(서버 성능에 따라 가중치를 부여하여 분배) 등이 있습니다.

 

Q. Stateful과 Stateless의 차이는 무엇인가? 각각에 해당하는 프로토콜에는 무엇이 있을까?

A. Stateful은 서버가 클라이언트의 상태를 기억하여 세션을 유지하는 방식으로 FTP, TCP, SSH와 같은 프로토콜이 있으며, Stateless는 서버가 클라이언트의 상태를 기억하지 않고 각 요청을 독립적으로 처리하는 방식으로 HTTP, UDP와 같은 프로토콜이 있습니다.

 

Q. TCP와 HTTP가 통신이 이루어지는 관계에 대해서 자세히 설명해보아라.

A.

TCP는 전송 계층 프로토콜로서 신뢰성 있는 데이터 전송을 보장하며 데이터의 순서 보장, 오류 검출 및 수정, 흐름 제어 등을 제공하고, HTTP는 애플리케이션 계층 프로토콜로서 웹 클라이언트와 서버 간의 통신을 관리하며 주로 요청과 응답의 형태로 데이터 교환을 수행하는데, HTTP는 TCP 연결을 통해 데이터를 전송하며, 클라이언트는 HTTP 요청 메시지를 TCP 연결을 통해 서버로 전송하고, 서버는 HTTP 응답 메시지를 TCP 연결을 통해 클라이언트로 반환합니다.