5. CS + 기타

1. 네트워크 통신과 HTTP 🔥
💡 면접관의 의도 클라이언트와 서버 간의 통신 규약과, 웹을 지탱하는 HTTP 프로토콜의 발전 과정을 이해하고 있는지 확인.
🔑 핵심 키워드: TCP/UDP, 캡슐화, 상태 없음(Stateless), 비연결성(Connectionless)
Q. 전송 계층의 TCP와 UDP의 차이는 무엇인가요? 🔥
TCP는 연결 지향형으로, 3-way handshake를 통해 연결을 설정하여 데이터의 순서와 신뢰성을 완벽하게 보장하지만 속도가 상대적으로 느립니다.
UDP는 비연결형으로, 신뢰성보다는 연속성과 속도가 중요한 실시간 스트리밍이나 게임 등에 주로 사용됩니다.
Q. HTTP 프로토콜의 가장 큰 특징은 무엇인가요? 🔥
클라이언트의 요청에 서버가 응답을 마치면 연결을 끊는 비연결성(Connectionless) 과, 서버가 클라이언트의 이전 상태를 기억하지 않는 무상태성(Stateless) 입니다.
이로 인해 서버 확장성이 높지만, 로그인 같은 상태를 유지하기 위해 쿠키나 세션, JWT가 추가로 필요해집니다.
Q. HTTP/1.1과 HTTP/2.0의 차이는 뭔가요? 🔥
HTTP/1.1은 하나의 연결 당 하나의 요청만 처리할 수 있어, 리소스가 많을 경우 병목현상(HOL Blocking)이 발생했습니다.
HTTP/2.0은 하나의 연결 안에서 여러 개의 메시지를 동시에 주고받을 수 있는 '멀티플렉싱(Multiplexing)'을 도입하여 속도를 혁신적으로 개선했습니다.
2. 웹 보안: HTTPS와 TLS 핸드셰이크 🔥🔥🔥
💡 면접관의 의도 HTTPS가 보장하는 보안 특성과, 암호화 통신이 수립되는 내부 메커니즘을 묻는 딥다이브 질문.
🔑 핵심 키워드: 기밀성/무결성/인증, 대칭키/비대칭키 혼합, TLS 핸드셰이크
Q. HTTPS가 제공하는 세 가지 보안 특성은 무엇인가요? 🔥🔥
- 기밀성: 데이터를 암호화하여 제3자가 읽을 수 없게 합니다.
- 무결성: 전송 중 데이터가 변조되지 않았음을 보장합니다.
- 인증: 접속한 서버가 신뢰할 수 있는 진짜 서버(CA 인증서)임을 증명합니다.
Q. 대칭키와 비대칭키(공개키/개인키), 그리고 이를 어떻게 혼합하여 사용하나요? 🔥🔥🔥
대칭키는 암호화와 복호화에 같은 키를 사용하여 빠르지만, 키를 안전하게 전달하기 어렵습니다. 비대칭키는 공개키로 암호화하고 개인키로 복호화하여 안전하지만 연산이 매우 느립니다.
따라서 HTTPS는 통신을 수립하는 '핸드셰이크' 과정에서는 안전한 비대칭키를 사용해 세션 키(대칭키)를 교환하고, 이후 실제 대용량 데이터를 주고받을 때는 빠르고 효율적인 대칭키를 사용하는 혼합 방식을 채택합니다.
Q. TLS 핸드셰이크 과정과 TLS 1.3(1-RTT)의 차이점 🔥🔥
클라이언트와 서버가 암호화 통신을 준비하는 과정입니다.
기존 TLS 1.2는 클라이언트와 서버가 서로 인사를 나누고 암호화 방식을 협상하며 키를 교환하는 데 왕복 2번(2-RTT)의 통신이 필요했습니다. 반면 최신 TLS 1.3은 클라이언트가 첫 인사(Client Hello)를 건넬 때 키 교환에 필요한 정보까지 한 번에 보내어, 단 1번의 왕복(1-RTT)만으로 안전한 연결을 수립해 속도를 크게 높였습니다.
3. 실시간 통신 (Real-time Communication) 🔥🔥
💡 면접관의 의도 실시간 데이터 업데이트 요구사항이 있을 때, 상황에 맞는 통신 기술을 선택할 수 있는지 확인.
🔑 핵심 키워드: 단방향 vs 양방향, 지속적 연결
Q. Polling과 Long Polling에 대해 설명해주세요 🔥


