-
토글을 열기 전에 실제 면접처럼 '답변'하는 연습을 합시다!
-
시간이 부족하다면 '핵심 키워드' 위주로 떠올려 봅시다!
-
온전히 답변하지 못한 질문이 있다면, '관련 자료'를 살펴봅시다!
네트워크 병목 현상의 주된 원인들은 무엇이 있나요?
네트워크 대역폭이 작거나, 네트워크 토폴로지의 문제, 서버의 CPU, 메모리 사용량과 같은 하드웨어적 문제 등이 있습니다.
이러한 병목 현상이 나타나면 네트워크 관련 테스트와 네트워크와 무관한 테스트를 통해 해당 문제가 네트워크로부터 발생하는 문제점인지를 확인하는 절차가 필요합니다.
대역폭, 토폴로지, 서버 CPU, 메모리
규모에 따른 네트워크 분류 유형 세 가지에 대해 설명해주세요.
네트워크는 규모의 크기에 따라 LAN, MAN, WAN 으로 분류됩니다.
LAN은 같은 건물이나 지역을 연결하는 근거리 네트워크입니다. 전송 속도가 빠르고 혼잡도가 낮습니다.
MAN은 대도시 지역을 연결하는 네트워크입니다. 전송 속도는 평균이며 LAN보다 혼잡도가 높습니다.
WAN은 국가 또는 대륙 같은 넓은 지역에서 운영되는 광역 네트워크입니다. 전송 속도가 느리고 MAN보다 혼잡도가 높습니다.
네트워크 규모, LAN, MAN, WAN, 전송 속도, 복잡도
TCP/IP 4계층과 OSI 7계층의 차이점은 무엇인가요?
OSI 계층은 애플리케이션 계층을 애플리케이션, 프레젠테이션, 세션 계층으로 나누고 링크 계층을 데이터 링크 계층, 물리 계층으로 나누며, 인터넷 계층을 네트워크 계층으로 칭한다는 차이점이 있습니다.
애플리케이션 계층, 링크 계층, 네트워크 계층
DNS의 동작 방식에 대해서 설명해주세요.
DNS는 컴퓨터들이 문자열 도메인을 통해서도 최종 목적지까지 도달할 수 있도록 IP 주소와 도메인을 매핑해놓은 주소 체계입니다.
사용자가 도메인 주소를 브라우저 창에 입력하여 요청을 보내면, 우선 로컬 컴퓨터의 캐시에 해당 도메인의 IP가 저장되어 있는지 확인합니다.
있는 경우 바로 해당 IP 주소로 패킷을 전송하고, 없는 경우 연결된 Root DNS 서버에 원하는 domain 의 IP 주소가 존재하는지 묻는 쿼리를 보냅니다.
Root DNS 서버는 도메인의 TDL 정보를 가지고 있는 하위 DNS 서버의 IP를 요청하고, 이 쿼리는 최종 도메인의 IP 주소를 받을 때까지 반복됩니다.
마지막으로 IP 주소를 로컬 DNS와 브라우저 PC에 캐싱하면, 로컬 컴퓨터는 그 이후에야 해당 IP 주소로 패킷을 보낸다.
쉽게 말해서, DNS 서버에 원하는 도메인에 해당하는 IP 주소를 요청하고 확인이 된 후에 데이터를 입력 및 전송할 수 있습니다.
IP 주소, 도메인, 패킷 전송
브라우저에서 www.naver.com을 입력하고, 화면이 띄워지기 까지의 과정을 설명해주세요.
사용자가 브라우저에 해당 URL을 입력하면, HTTP 프로토콜을 바탕으로 DNS 서버에 해당하는 도메인 네임을 이용해 서버의 진짜 주소를 찾아냅니다.
IP 주소를 이용하여 TCP/IP 방식의 3-way handshaking으로 웹 서버에 연결이 수립되면, 클라이언트가 웹 서버에 HTTP 요청 메시지를 보냅니다.
웹 서버는 HTTP 요청 메시지를 파싱하여 웹 페이지의 URL을 알아내고, 이 페이지에 대한 데이터를 담은 HTTP 응답 메시지를 보냅니다.
도착한 HTTP 응답 메시지는 웹 페이지 데이터로 변환되고, 웹 브라우저에 의해 출력됩니다.
TCP/IP, HTTP 요청 메시지, HTTP 응답 메시지
TCP와 UDP의 차이점을 말씀해주세요.
TCP는 연결지향 서비스로, 패킷 사이의 순서를 보장하며 3-way handshaking 과정을 통해 연결을 설정하기 때문에 높은 신뢰성을 보장하지만, 속도가 비교적 느리다는 단점이 있습니다.
UDP는 비연결형 서비스로 3-way handshaking을 사용하지 않기 때문에 신뢰성이 떨어지는 단점이 있지만, 데이터 수신 여부를 확인하지 않기 때문에 속도가 빠르다는 장점이 있습니다.
TCP는 끊김 없는 연속성 보다는 신뢰성이 중요한 파일 교환과 같은 경우에 쓰이고, UDP는 실시간성이 중요한 스트리밍에 자주 사용됩니다.
3-way handshaking, 신뢰성, 속도
UDP는 언제 사용되나요?
UDP는 실시간 데이터 전송이 필요한 서비스에서 주로 사용됩니다. 이는 데이터 손실을 감안하고 연속성과 성능이 중요한 경우에 적합합니다.
다음은 UDP를 사용하는 주요 분야입니다.
인터넷 전화: 전송 실패 시 재전송을 위한 지연시간이 발생하여 송신자와 수신자 간의 싱크가 맞지 않을 수 있습니다.
온라인 게임: 지연시간이 짧아야 하며, 지연이 점점 커지면 서비스 이용자에게 불쾌감을 주거나 올바른 연결이 이루어지지 않을 수 있습니다.
멀티미디어 스트리밍: 싱크가 맞지 않으면 많은 문제가 발생할 수 있으며, 전송이 원활하지 않으면 연속적인 재생 서비스를 제공받지 못할 수 있습니다.
UDP는 비연결형 서비스를 지원하는 프로토콜로, 데이터를 보낸다는 신호나 받는다는 신호의 절차를 거치지 않고 일방적으로 데이터를 전송합니다.
이로 인해 데이터 송/수신 과정이 빠르고, 헤더 사이즈가 작아져 전송 속도가 빠릅니다. 따라서, 신뢰성보다는 연속성과 성능이 중요한 서비스에서 사용됩니다.
실시간 데이터 전송, 비연결형, 연속성, 성능
가상회선 패킷 교환 방식과 데이터그램 패킷 교환 방식의 차이점은 무엇인가요?
가상회선 패킷 교환 방식은 상호 간 논리적인 가상 통신 회선을 미리 설정하여 송신지와 수신지 사이의 연결을 확립한 후
설정된 경로를 따라 패킷들을 순차적으로 운반하는 방식입니다. 패킷의 도착 순서를 보장합니다.
데이터그램 패킷 교환 방식은 연결 경로를 설정하지 않고 인접한 노드들의 트래픽 상황을 감안하여
각각의 패킷들을 순서 상관 없이 독립적으로 운반하는 방식입니다. 패킷의 도착 순서를 보장하지 않습니다.
가상회선 방식은 패킷 사이의 순서를 보장하고 신뢰성을 구축하여 패킷 수신 여부를 확인하는 TCP에서 사용되고,
데이터그램 방식은 순서를 보장하지 않고 수신 여부를 확인하지 않는 UDP에서 사용됩니다.
연결, 경로, 패킷 도착 순서, 신뢰성
3-way handshake 에 대해서 설명해주세요.
3-way handshake는 TCP/IP 프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 말합니다.
먼저 Client가 Server에게 접속을 요청하는 SYN 플래그를 보냅니다.
다음 Server는 Listen상태에서 SYN이 들어온 것을 확인하고 응답을 기다리는(SYN_RECV) 상태로 바뀌어 SYN 과 ACK 플래그를 Client에게 전송합니다.
그 후 Server는 다시 ACK 플래그를 받기 위해 대기상태로 변경됩니다.
SYN + ACK 상태를 확인한 Client는 서버에게 ACK를 보내고 연결이 성립됩니다.
이렇게 세 번의 핸드쉐이킹을 거쳐 연결을 맺는 것을 3-way handshake라고 합니다.
SYN, ACK
TCP 연결 해제 과정에서 클라이언트가 서버에게서 FIN 패킷을 받았을 때 바로 연결을 닫지 않는 이유는 무엇인가요?
지연 패킷이 발생할 경우를 대비하기 위함입니다. 바로 연결을 닫게 되면 지연 패킷이 발생했을 때 데이터 무결성 문제가 발생하기 때문입니다.
지연 패킷, 무결성
패킷이 무엇인가요?
패킷(Packet)은 컴퓨터 네트워크에서 데이터를 전송하는 데 사용되는 기본 단위입니다.
네트워크 상에서 정보를 전송할 때, 큰 데이터를 여러 개의 작은 조각으로 나누어 전송합니다. 수신 측에서는 이러한 패킷을 받아서 다시 원래의 데이터로 재조립합니다.
이러한 패킷 기반의 통신 방식은 데이터를 효율적으로 전송하고, 네트워크의 혼잡을 방지하며, 오류 복구와 같은 기능을 수행할 수 있도록 해줍니다.
데이터 전송, 조각
MAC이 무엇인가요?
컴퓨터나 노트북 등 각 장치에는 네트워크에 연결하기 위한 LAN카드가 존재하는데, 이 장치별 LAN카드를 구별하기 위한 식별 번호를 말합니다. MAC 주소는 6바이트로 구성됩니다.
LAN 카드, 식별 번호, 고유 번호
데이터 송수신 과정에서 캡슐화와 비캡슐화 과정에 대해 설명해주세요.
캡슐화 과정은 상위 계층의 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 붙여 가는 과정입니다.
사용자의 데이터 요청이 발생하면 애플리케이션 계층의 데이터가 전송 계층으로 전달되면서 세크먼트, 또는 데이터그램화가 되며 TCP 헤더가 붙여지게 되고,
이후 인터넷 계층으로 가면서 IP 헤더가 붙여지며 패킷화 됩니다.
이후 링크 계층으로 전달되면서 프레임 헤더와 프레임 트레일러가 붙어 프레임화가 되면서 캡슐화 과정을 마치게 됩니다.
비캡슐화는 반대로 하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정입니다.
캡슐화된 데이터를 송신 측에서 받게되면 비캡슐화 과정을 통해 최종적으로 애플리케이션 계층의 메시지로 전달됩니다.
상위 계층, 하위 계층, 헤더, 데이터
비정상 종료 상태란 무엇인가요?
네트워크의 비정상 종료 상태는 네트워크 연결이 예기치 않게 끊기거나, 프로그램이나 시스템 오류로 인해 네트워크 통신이 중단되는 상황을 의미합니다.
이러한 상태는 다양한 원인에 의해 발생할 수 있으며, 일반적으로 다음과 같은 상황들이 포함될 수 있습니다.
소프트웨어 오류: 응용 프로그램 또는 운영 시스템에서 발생한 버그나 오류로 인해 네트워크 연결이 비정상적으로 종료될 수 있습니다.
하드웨어 문제: 라우터, 스위치, 모뎀 같은 네트워크 장비의 고장이나 오작동으로 인해 네트워크 연결이 중단될 수 있습니다.
네트워크 과부하: 네트워크 트래픽이 과도하게 증가하여 네트워크 자원이 포화 상태에 이르렀을 때, 네트워크 연결이 비정상적으로 종료될 수 있습니다.
보안 문제: 사이버 공격이나 해킹 시도로 인해 네트워크 연결이 의도적으로 차단되거나 손상될 수 있습니다.
네트워크 구성 오류: 네트워크 설정이나 구성의 오류로 인해 연결이 실패하거나 연결 후에도 정상적인 통신이 이루어지지 않을 수 있습니다.
네트워크의 비정상 종료 상태는 데이터 손실, 통신 중단, 서비스 지연 등 다양한 문제를 야기할 수 있기 때문에,
네트워크 관리자와 시스템 관리자는 이러한 상황을 감지하고 신속하게 대응하기 위한 모니터링 도구와 복구 절차를 마련해야 합니다.
또한, 장기적으로는 시스템과 네트워크의 안정성을 높이기 위해 이러한 문제의 원인을 분석하고 해결하는 것이 중요합니다.
네트워크 연결, 통신 중단, 데이터 손실, 서비스 지연, 안정성
로드 밸런싱이 무엇이고, 왜 필요한 걸까요?
로드밸런싱이란 서버가 처리해야 할 업무를 여러 대의 서버로 나누어 균형 있게 분산시켜주는 작업을 의미합니다.
필요한 이유는 한 서버에 너무 많은 트래픽이 몰리게 되면 서비스 장애가 일어날 가능성이 커지는 걸 방지하여 서비스의 안정성과 신뢰성을 유지하는 데 있습니다.
균형, 분산, 안정성, 신뢰성, 효율성
ARP가 주소를 찾는 과정을 설명해주세요.
주소를 찾으려는 장치가 IP주소가 담긴 ARP Request 브로드캐스트를 보냅니다.
해당 주소가 맞는 장치는 ARP Reply 유니캐스트를 통해 MAC 주소를 반환하고 이 과정을 통해 IP 주소에 맞는 MAC 주소를 찾게 됩니다.
브로드캐스트, 유니캐스트, IP주소, MAC 주소
NAT에 대해 설명해주세요.
NAT는 패킷이 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑하는 방법으로,
NAT 장치를 통해 사설 IP를 공인 IP로 변환하거나 공인 IP를 사설 IP로 변환하는 데 쓰입니다.
IPv4 주소 체계만으로는 많은 주소들을 모두 감당하지 못하는 단점이 있는데, 이를 해결하기 위해 NAT로 공인 IP와 사설 IP로 나눠서 많은 주소를 처리합니다.
IP 주소 변환, 공인 IP, 사설 IP
HTTP/1.x와 비교하여 HTTP/2에서 개선된 점은 무엇인가요?
HTTP/2는 HTTP/1.x 보다 지연 시간을 줄이고 응답 시간을 더 빠르게 할 수 있으며 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리를 지원합니다.
병렬적인 스트림 구조로 데이터를 송수신하는 멀티플렉싱을 사용하여 HOL Blocking 현상을 개선하였고, HTTP/1.x의 단점이었던 큰 헤더의 크기를 헤더 압축 기술을 통해 줄였습니다.
또한, 서버 푸시 기능을 통해 서버에 대한 요청을 횟수를 줄이는 개선을 하였습니다.
멀티플렉싱, 헤더 압축, 서버 푸시, 우선순위 처리, HOL Blocking
멀티플렉싱이란 무엇인가요?
멀티플렉싱은 하나의 TCP 커넥션으로 동시에 여러 개의 스트림을 응답 순서에 상관없이 주고받는 것을 말합니다.
이를 통해 특정 스트림의 패킷이 손실되어도 해당 스트림에만 영향을 미치고 이외 스트림은 정상적으로 동작할 수 있게 되며,
이는 순차적 응답 처리에 따른 HOL Blcoking 문제를 해결합니다.
스트림, 응답 순서
HTTP 프로토콜 특징에 대해 설명해 주세요.
HTTP의 특징은 비연결성(Connectionless), 무상태성(Stateless) 이렇게 크게 두 가지가 있습니다.
Connectionless는 클라이언트의 요청에 맞는 응답을 보낸 후 연결 상태를 유지하지 않는 특성입니다.
Stateless는 서버가 클라이언트의 상태를 저장하지 않는다는 것을 의미합니다.
비연결성(Connectionless), 무상태성(Stateless)
HTTP Method에는 어떤 것이 있고, 각각 메서드가 어떤 역할을 하는지 설명해주세요.
HTTP 메서드에는 GET, POST, PUT, PATCH, DELETE 등이 있습니다.
GET은 서버로부터 특정 리소스를 요청하는 것을 의미합니다.
POST는 서버로 데이터를 제출하여 리소스 생성하거나 업데이트 요청하는 것을 의미합니다.
PUT은 지정된 리소스의 업데이트 요청하는 것을 의미합니다.
PATCH는 리소스 부분 변경을 요청하는 것을 의미합니다.
DELETE는 지정된 리소스 삭제 요청하는 것을 의미합니다.
GET, POST, PUT, PATCH, DELETE
쿠키(Cookie)와 세션(Session)의 차이점에 대해 말해주세요.
쿠키와 세션의 차이점에는 여러 가지가 있습니다.
첫 번째로 사용자의 정보가 저장되는 위치가 다르다는 점입니다. 쿠키는 클라이언트에서 저장하지만, 세션은 웹 서버에서 저장합니다.
두 번째로 보안 면에서 세션이 더 우수하며, 요청 속도는 쿠키가 더 빠릅니다.
세 번째로 쿠키는 만료 시점을 쿠키 저장시에 설정하며, 브라우저가 종료되어도 만료시점이 지나지 않으면 삭제되지 않습니다. 반면에 세션은 브라우저 종료 시에 삭제됩니다.
저장 위치, 보안, 속도, 만료 시점
HTTP와 HTTPS의 차이점이 무엇인가요?
정보를 암호화 시키는 SSL/TLS 프로토콜의 유무 차이입니다.
HTTPS의 경우 SSL/TLS 프로토콜을 사용함으로써 통신을 암호화하고 안전하게 통신할 수 있게 하여 더 강력한 보안 기능을 제공합니다.
SSL/TLS, 통신의 암호화, 보안 기능
HTTPS 의 SSL/TLS에 대해 설명해주세요.
SSL/TLS는 전송 계층에서 보안을 제공하는 프로토콜로, 클라이언트와 서버가 통신할 때 SSL/TLS를 통해 제3자가 메시지를 도청하거나 변조하는 네트워크상의 인터셉터를 방지합니다.
SSL/TLS는 보안 세션을 기반으로 데이터를 암호화하며, 보안 세션이 만들어질 때 인증 메커니즘, 키 교환 암호화 알고리즘, 해싱 알고리즘이 사용됩니다.
보안, 프로토콜
키 교환 암호화 알고리즘에 있어서 근간이 되는 알고리즘이 뭔지 답해주시고, 그에 대해 설명해주세요.
키 교환 암호화 알고리즘에는 대수곡선 기반의 ECDHE, 또는 모듈식 기반의 DHE을 사용합니다.
둘의 근간이 되는 알고리즘은 디피-헬만 키 교환 암호화 알고리즘입니다.
이는 암호키를 교환하는 하나의 방법으로, 소통하고자 하는 둘이 처음에 공개 값을 공유한 뒤 각자의 비밀 값과 혼합하면,
공통의 암호키인 PSK(Pre-Shared Key)가 생성되어 키를 암호화할 수 있고, 이를 통해 악의적인 공격자로부터 방어할 수 있습니다.
디피-헬만, 공개 값, 비밀 값, PSK
HTTPS를 사용하는 이유에 대해 설명해주세요.
HTTPS는 데이터를 암호화하여 전송함으로써 전송 도중 데이터 변조나 도청이 발생하는 것을 방지하여 보안을 강화해 줍니다.
또한 CA 인증을 받기 때문에 신뢰성을 확보할 수 있고, SEO에 도움을 주어 검색 엔진 순위를 향상시킵니다.
보안 강화, 신뢰성, SEO