네트워크 주니어 기술면접
새 면접Q. HTTP와 HTTPS의 차이점을 설명하고, HTTPS에서 데이터 암호화가 이루어지는 과정을 간단히 설명해주세요.
SSL/TLS 프로토콜과 포트 번호의 차이를 생각해보세요.
HTTP는 80번 포트를 사용하는 평문 통신 프로토콜이고, HTTPS는 443번 포트를 사용하며 SSL/TLS 프로토콜로 암호화된 통신을 제공합니다. HTTPS는 클라이언트와 서버 간 핸드셰이크 과정에서 서버의 인증서를 검증하고, 대칭키를 안전하게 교환합니다. 이후 교환된 대칭키로 실제 데이터를 암호화하여 전송하므로 중간에서 데이터를 가로채도 내용을 알 수 없습니다. 이를 통해 기밀성, 무결성, 인증을 보장할 수 있습니다.
- • HTTP는 평문, HTTPS는 암호화 통신
- • SSL/TLS 프로토콜 사용
- • 핸드셰이크를 통한 대칭키 교환
- • 서버 인증서 검증
사용자의 개인정보나 결제 정보를 다루는 모든 웹 서비스에서 HTTPS를 필수로 사용합니다.
대칭키 암호화와 비대칭키 암호화의 차이점과, HTTPS에서 두 방식을 함께 사용하는 이유는 무엇인가요?
Q. TCP의 3-way handshake와 4-way handshake 과정을 각각 설명하고, 왜 연결 종료 시에는 4단계가 필요한지 말씀해주세요.
연결 수립과 종료 시 각 단계에서 주고받는 플래그(SYN, ACK, FIN)를 생각해보세요.
3-way handshake는 클라이언트가 SYN을 보내고, 서버가 SYN+ACK로 응답하며, 클라이언트가 ACK를 보내 연결을 수립하는 과정입니다. 4-way handshake는 클라이언트가 FIN을 보내면 서버가 ACK로 응답하고, 서버가 남은 데이터 전송 후 FIN을 보내면 클라이언트가 ACK로 응답하여 종료합니다. 연결 종료 시 4단계가 필요한 이유는 서버가 아직 전송할 데이터가 남아있을 수 있기 때문에 ACK와 FIN을 분리하여 보내야 하기 때문입니다. 이를 통해 양방향 연결을 각각 독립적으로 종료할 수 있습니다.
- • 3-way: SYN, SYN+ACK, ACK
- • 4-way: FIN, ACK, FIN, ACK
- • 종료 시 서버의 남은 데이터 전송 보장
- • 양방향 독립적 종료
서버 재시작이나 배포 시 기존 연결을 안전하게 종료하기 위해 이 과정을 이해해야 합니다.
TIME_WAIT 상태는 무엇이며, 왜 필요한가요?
Q. DNS(Domain Name System)가 무엇인지 설명하고, 사용자가 웹 브라우저에 도메인 주소를 입력했을 때 IP 주소를 찾는 과정을 설명해주세요.
DNS는 도메인 이름과 IP 주소를 매핑하는 시스템이며, 여러 단계의 DNS 서버를 거칩니다.
DNS는 사람이 읽기 쉬운 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환해주는 분산 시스템입니다. 브라우저에 도메인을 입력하면 먼저 로컬 DNS 캐시를 확인하고, 없으면 설정된 DNS 서버(보통 ISP의 Recursive DNS 서버)에 질의합니다. Recursive DNS 서버는 Root DNS, TLD DNS, Authoritative DNS 순으로 계층적으로 질의하여 최종 IP 주소를 찾아 반환합니다. 이렇게 얻은 IP 주소로 실제 서버에 접속하게 됩니다.
- • 도메인 이름을 IP 주소로 변환
- • 계층적 구조(Root, TLD, Authoritative)
- • Recursive DNS 서버의 역할
- • 캐싱을 통한 성능 향상
CDN 설정이나 서버 이전 시 DNS 레코드를 변경하고 TTL을 조정하여 트래픽을 제어합니다.
DNS 캐시 poisoning 공격은 무엇이며, 어떻게 방어할 수 있나요?
Q. OSI 7계층 모델에서 각 계층의 역할을 간단히 설명하고, 실제 인터넷 통신에서 주로 사용되는 TCP/IP 4계층 모델과의 대응 관계를 설명해주세요.
OSI 7계층은 물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용 계층으로 구성되며, TCP/IP는 이를 4계층으로 단순화합니다.
OSI 7계층은 물리(비트 전송), 데이터링크(프레임, MAC), 네트워크(라우팅, IP), 전송(TCP/UDP), 세션(연결 관리), 표현(데이터 형식), 응용(HTTP, FTP) 계층으로 구성됩니다. TCP/IP 4계층은 네트워크 인터페이스(OSI 1-2계층), 인터넷(OSI 3계층), 전송(OSI 4계층), 응용(OSI 5-7계층)으로 매핑됩니다. OSI는 이론적 참조 모델이고 TCP/IP는 실제 구현 모델로, 현대 인터넷은 TCP/IP 모델을 기반으로 동작합니다. 각 계층은 독립적으로 동작하며 하위 계층의 서비스를 이용하는 계층적 구조입니다.
- • OSI 7계층의 각 역할
- • TCP/IP 4계층 구조
- • 계층 간 대응 관계
- • 계층적 독립성과 캡슐화
네트워크 장애 발생 시 문제가 어느 계층에서 발생했는지 파악하여 효율적으로 트러블슈팅할 수 있습니다.
패킷이 네트워크를 통해 전송될 때 각 계층에서 헤더가 추가되는 캡슐화 과정을 설명해주세요.
Q. RESTful API 설계에서 GET, POST, PUT, PATCH, DELETE 메서드의 차이점과 각각의 용도를 설명하고, 멱등성(Idempotent) 개념을 함께 설명해주세요.
각 메서드의 용도와 함께 여러 번 호출했을 때 결과가 같은지(멱등성) 생각해보세요.
GET은 리소스 조회, POST는 리소스 생성, PUT은 리소스 전체 수정, PATCH는 리소스 부분 수정, DELETE는 리소스 삭제에 사용됩니다. 멱등성은 동일한 요청을 여러 번 수행해도 결과가 같은 성질을 의미합니다. GET, PUT, DELETE는 멱등성을 가지지만, POST와 PATCH는 일반적으로 멱등성을 보장하지 않습니다. 예를 들어 POST로 같은 데이터를 두 번 전송하면 리소스가 두 개 생성되지만, PUT으로 같은 데이터를 두 번 전송해도 결과는 동일합니다. 이러한 특성을 이해하고 API를 설계하면 네트워크 재전송 상황에서도 안전한 시스템을 구축할 수 있습니다.
- • 각 HTTP 메서드의 용도
- • 멱등성의 정의
- • GET, PUT, DELETE는 멱등, POST는 비멱등
- • 안전한 API 설계 원칙
결제 API 개발 시 중복 결제를 방지하기 위해 멱등성을 고려한 API 설계가 필수적입니다.
POST와 PUT의 차이점을 URI 설계 관점에서 설명해주세요.
아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!