내일 있을 면접 주요 질문에 따라올 꼬리질문에 대해 준비하였다.
IP
인터넷에서 장치들 간에 패킷 전달을 위해 사용되는 프로토콜
패킷(데이터 전송 기본 단위)을 생성하고 전달한다.
IP 주소 체계
패킷 전달을 위해 출발지와 목적지를 특정할 필요가 있는데, IP 주소 체계 이를 수행할 수 있고
크게 두가지 버전으로 나뉜다.
IPv4 : 32비트 주소체계, 4개 그룹이 .으로 구분
IPv6 : 128비트 주소체계, 8개 그룹이 :으로 구분
특징 | IPv4 | IPv6 |
주소 길이 | 32비트 (4바이트) | 128비트 (16바이트) |
주소 형식 | 점-십진수 | 콜론-16진수 |
주소 개수 | 약 43억 개 | 약 3.4 * 10^38 개 (사실상 무제한) |
QoS 지원 | 제한적 (TOS 필드) | 향상된 QoS 지원 (Flow Label 필드) |
보안 | 추가적인 설정(IPSec)을 요구 | IPSec 기본 내장 |
브로드캐스트 | 지원 (Broadcast 주소) | 지원하지 않음 (멀티캐스트, 애니캐스트 사용) |
주소 자동 구성 | 제한적 (DHCP 의존) | 자동 주소 구성(Stateless Address Auto-configuration) |
라우팅 효율성 | 비효율적 (복잡한 라우팅 테이블) | 효율적 (계층적 주소 체계) |
NAT 필요성 | 주소 부족으로 필수 | 주소가 충분하여 불필요 |
QoS (Quality of Service)
네트워크에서 데이터의 우선순위를 관리해 특정 서비스에 더 높은 품질을 제공하는 기술
- 트래픽이 많아 혼잡한 상황에서도 중요한 데이터가 우선 처리되도록 하여 지연 최소화, 품질 보장이 가능함
- 동영상 스트리밍, 화상회의, 온라인 게임 등 실시간 데이터를 요구하는 서비스에서 필수적입니다.
IPSec (Internet Protocol Security)
데이터 전송 시 암호화와 인증을 제공하여 네트워크 통신의 보안을 강화하는 프로토콜 모음
- VPN(가상 사설망)같은 보안 네트워크 구축에 사용
- 데이터 전송시 도청 및 변조 방지, 상대 신원을 파악하여 보안 강화
DHCP (Dynamic Host Configuration Protocol)
네트워크에 연결된 장치에 자동으로 IP 주소를 할당하는 프로토콜
- 수동 설정의 번거로움을 줄이고, 네트워크 관리를 자동화할 수 있다
- 새로운 장치가 네트워크에 연결되면 자동으로 주소 할당, 서브넷 마스크, 게이트 웨이를 설정하여 빠른 연결 가능
자동 주소 구성 (Stateless Address Auto-configuration, SLAAC)
네트워크 장치가 DHCP 없이도 스스로 고유한 IP 주소를 생성하는 기능
- IPv6에서 네트워크 관리자가 DHCP 서버를 설정하지 않아도 자동으로 주소 구성
- 대규모 네트워크에서 자동화된 구성 제공 가능
- 트워크 확장성을 높이고, 특히 IoT 환경에서 활용도가 높다
NAT (Network Address Translation)
라우터나 방화벽이 사설 IP 주소를 공인 IP 주소로 변환하여 장치들이 인터넷에 연결되도록 하는 기술
- IPv4의 주소 부족 문제를 해결하기 위해, 하나의 공인 IP 주소를 여러 사설 IP 주소가 공유할 수 있도록 만든다.
- 보안을 강화하고, 외부에서 직접적인 접근이 어려워짐
- IPv6에서는 넉넉한 주소 공간 덕분에 NAT가 불필요하다.
브로드캐스트 (Broadcast)
네트워크 상에서 모든 노드에게 데이터를 전송하는 방식
- 특정 정보를 네트워크 내 모든 장치에 빠르게 전파해야 할 때 사용
- IPv6에서는 네트워크 효율성과 보안을 위해 브로드캐스트를 제거하고 멀티캐스트 및 애니캐스트로 대체
(모든 장비에 데이터를 전송하여 비효율적, 보안상 취약)
멀티캐스트 (Multicast)
네트워크에서 특정 그룹의 노드에 데이터를 전송하는 방식
- 한 번의 전송으로 여러 수신자에게 데이터를 전달하여 네트워크 효율성이 높음
- 실시간 스트리밍, 온라인 강의 등 동일한 콘텐츠를 여러 사용자에게 제공할 때 사용
애니캐스트 (Anycast)
네트워크에서 여러 노드 중 가장 가까운 노드로 데이터를 전달하는 방식
- 요청자와 물리적으로 가까운 서버로 트래픽을 분산시켜 지연 시간을 줄이고 네트워크 부하를 저감시킨다
서브넷 마스크
IP 주소의 네트워크 부분과 호스트 부분을 구분하는 데 사용되는 값(32비트)
1. IPv4와 IPv6의 차이점은 무엇인가요?
차이점으로는 주소 형식, 주소 제공량이 대표적인 차이점이라 할 수 있습니다.
이외에도 주소 자동 제공 시 DHCP의 사용 여부 , NAT의 필요성 여부등이 있는 것으로 알고있습니다.
그래서 제 생각에는, 기존에 IPv4에서는 추가로 필요하거나, 제한적이였던 기법들이 IPv6에서는 기본 내장되어 있거나, 더 향상된 기능을 사용한다는 이미지가 있습니다.
1-1. DHCP의 역할은 무엇인가요?
DHCP는 네트워크 내의 장치에 자동으로 IP 주소를 할당하는 프로토콜입니다.
수동 설정의 번거로움을 줄이고, 관리를 자동화하기 위해 사용한다고 알고있습니다.
1.2 NAT(Network Address Translation)의 개념과 장점은 무엇인가요?
라우터나 방화벽이 사설 IP 주소를 공인 IP 주소로 변환한 후 통신하는 개념입니다. IP 주소의 효율적인 사용하고 보안적 장점이 있습니다.
IPv4는 주소부족문제에 당면해있기 때문에 필수적으로 사용됩니다. 반대로 IPv6 불필요합니다.
2. 서브넷 마스크가 왜 필요한지, 그리고 서브넷 마스크를 사용하면 어떤 장점이 있나요?
일단 서브넷 마스크는 IP 주소의 네트워크 부분과 호스트 부분을 구분하는데 사용하는 값입니다.
네트워크 관리를 용이하게 하고, IP 주소의 낭비를 줄이는 장점이 있습니다.
2-1. 서브넷ting을 하는 이유는 무엇인가요?
서브넷팅은 네트워크를 더 작은 하위 네트워크로 나누어 IP 주소를 효율적으로 관리하고, 보안을 강화하며, 성능을 향상시키기 위해 사용됩니다.
때문에 대규모 네트워크에서 IP 주소를 잘게 나누어 관리하면서도 트래픽 부담을 줄여 성능 최적화가 가능캐할 수 있습니다.
3. 사설 IP와 공인 IP의 차이점?
사설 IP는 같은 LAN에서 통신하는 경우, 즉 특정 학교나 회사등 위치적으로 접근한 장소에서 사용하느 IP로 알고있습니다. 이와 다르게 공인 IP는 네트워크 상 고유한 주소로 외부에서도 해당 IP를 통해 접근이 용이한것으로 알고 있습니다.
브라우저에 네이버 주소를 입력했을 때 네트워크 상에서 발생하는 과정에 대한 질문
브라우저에 입력된 값을 프로토콜, 도메인, 경로로 분리 한 후 IP 주소를 알아내기 위해 DNS 서버에 요청. IP 주소를 반환 받습니다.
브라우저가 TCP 연결 설정을 설정하여 네이버 서버와 통신하고 HTTP 요청을 전송합니다.
해당 요청을 네이버 서버가 처리후, 상태코드와 응답데이터를 브라우저에 전송합니다
이후 브라우저가 해당 데이터를 수신하여 추가 파일이 필요하다면 별도로 요청하게됩니다.
이후 데이터를 사용해 화면을 랜더링하여 화면이 사용자에게 제공됩니다.
DNS 요청을 할 때, 클라이언트가 어떤 방식으로 DNS 서버에 질의하는지, 그리고 DNS 서버가 이 요청을 어떻게 처리하는지 설명
먼저 브라우저는 로컬 DNS 캐시를 확인한 후, 없으면 로컬 DNS 서버에 질의를 보냅니다.
로컬 DNS 서버는 루트 DNS 서버에 요청을 보내고, 루트 서버는 최상위 도메인(TLD) 서버의 주소를 반환합니다.
TLD 서버는 권한 있는 DNS 서버를 알려주고, 해당 서버는 도메인의 IP 주소를 반환합니다. 이 주소를 받은 브라우저는 네이버 서버와 연결하고, 웹 페이지를 로드합니다
HTTP 요청과 응답
DNS로 IP 주소를 확인한 후, 브라우저는 TCP 연결을 설정하고 HTTP 요청을 서버에 보냅니다. 요청에는 주로 GET 방식이 사용되며, 서버는 이에 대한 HTTP 응답을 보냅니다. 응답에는 상태 코드와 요청된 데이터가 포함되어 브라우저에 전달되고, 브라우저는 이를 화면에 렌더링합니다.
항목 | HTTP | HTTPS |
정의 | Hypertext Transfer Protocol | HTTP의 보안 버전 |
보안 | 암호화되지 않은 데이터 전송 | SSL/TLS를 통해 데이터 암호화 |
포트번호 | 기본 80번 포트 | 기본 443번 포트 |
신뢰성 | 보안 부족, 신뢰성 낮음 | SSL/TLS 인증서로 신원 확인, 신뢰성 높음 |
SEO | 검색 엔진 최적화에서 불리할 수 있음 | 검색 엔진에서 높은 순위 부여 가능 |
사용자 경험 | 안전하지 않다는 경고 메시지 표시 가능 | 사용자에게 안전하다는 확신 제공 |
HTTPS는 HTTP와 어떻게 다른지 간단히 설명해 주세요
HTTP는 기본적으로 암호화되지 않은 데이터 전송 방식입니다. 반면에 HTTPS는 SSL/TLS 암호화를 통해 데이터를 보호합니다 이로인해 보안과 신뢰성 측면에서 HTTPS가 우세한 측면이 있습니다. 추가로 검색엔진에서 또한 HTTPS가 더 높은 순위가 부여되는 것으로 알고있습니다.
클라이언트-서버 모델에 대해 설명해 주세요.
클라이언트가 서버에 요청을 보내고, 서버가 그 요청에 대한 응답을 반환하는 방식입니다. 클라이언트는 서버에서 제공하는 자원이나 서비스를 요청하며, 서버는 이를 처리하고 클라이언트에 결과를 제공합니다.
CSRF(Cross-Site Request Forgery)
사용자가 로그인한 상태에서 악의적인 사이트에 접속하면, 그 사이트가 사용자의 인증 정보를 이용해 공격자가 의도한 요청을 보낼 수 있습니다. 이를 방어하려면 CSRF 토큰을 사용해 각 요청이 의도된 사용자의 요청인지를 확인하는 방식으로 방어할 수 있습니다
XSS(Cross-Site Scripting)
공격자가 악성 스크립트를 웹 페이지에 삽입해 다른 사용자가 해당 스크립트를 실행하도록 만드는 공격
입력값 검증, 출력 인코딩 등을 통해 사용자가 입력한 데이터가 스크립트로 실행되지 않도록 처리해야 합니다
Node.js가 다른 서버 사이드 기술에 비해 가지는 장점
장점 | 설명 |
비동기 I/O | I/O 작업을 블로킹 없이 처리하여 다른 요청을 동시에 처리할 수 있음. |
이벤트 루프 | 단일 스레드에서 비동기 작업을 관리하며, 콜백을 통해 효율적으로 요청을 처리함. |
단일 스레드 모델 | 스레드 관리의 복잡성을 줄이고, 컨텍스트 스위칭 비용이 없어서 더 높은 성능을 유지할 수 있음. |
CPU 집약적 작업 제한 | CPU 집약적인 작업에는 적합하지 않지만, I/O 중심의 작업에서 매우 효율적임. |
수평적 스케일링 | 여러 인스턴스를 쉽게 실행하여 부하를 분산할 수 있으며, 클러스터 모듈로 멀티코어 시스템 활용 가능. |
높은 동시성 | 수천 개의 클라이언트 요청을 동시에 처리할 수 있는 능력이 뛰어남. |
라우터와 라우팅(동적 라우팅, 정적 라우팅)에 대해 설명해주세요.
라우팅 : 라우팅은 네트워크 간 통신에서 데이터 패킷이 이동할 최적의 경로를 결정하는 과정
라우터 : 라우팅을 수행하는 장비.
패킷을 수신하여 목적지 IP 주소를 확인한 후, 해당 패킷을 다음 홉(next hop) 라우터로 전달하는 역할을 한다.
정적 라우팅 : 네트워크 관리자가 직접 경로를 설정하는 방식.
소규모이고 경로가 고정되어 있는 경우 적용하는 것이 적절하며, 라우터의 사양 제한이 있는 경우도 그러함
네트워크 변화에 직접 대응해야하는 단점
동적 라우팅 : 라우터 끼리 정보를 주고받는 과정을 통해 최적의 경로가 자동으로 설정되는 방식
대규모 네트워크이고 경로 변화가 잦을 가능성이 있을 때 적용하는 방식
라우터의 메모리 및 cpu 사양이 중요할 수 있으며 설정 및 유지관리가 복잡해질 수 있다.
정적 라우팅 | 동적 라우팅 | |
장점 | 설정이 간단하고 예측 가능 | - 자동으로 최적 경로를 선택 |
고정된 경로를 통해 안정적 | 네트워크 변화에 즉각적으로 대응 | |
메모리 사용량이 적음 | 대규모 네트워크에서 유연하게 확장 가능 | |
단점 | 네트워크 변화에 수동으로 대응해야 함 | 설정 및 유지 관리가 복잡할 수 있음 |
대규모 네트워크에서는 관리가 어려울 수 있음 | 메모리 및 CPU 사용량이 증가할 수 있음 |
정적 라우팅 적용 상황:
규모가 작고 경로가 고정되어 있을때
라우터 사양의 제한이 있을 때
동적 라우팅 적용 상황:
규모가 크고 경로가 자주 변경될 수 있을 때
자동화가 필요할 때
라우팅 프로토콜은 크게 두가지 유형으로 나눌 수 있다.
거리 벡터 프로토콜 > RIP, 각 라우터가 이웃 라우터에 경로 정보를 주기적으로 전송하며 경로의 홉수를 기준으로 최적 경로를 선택
링크 상태 프로토콜 > OSPF, 각 라투어가 네트워크 전체 상태를 파악하여 최적 경로를 계산
OSPF는 링크 상태 기반 프로토콜로, 네트워크의 전체 상태를 기반으로 최적 경로를 계산하며, 빠른 convergence를 제공합니다.
RIP는 거리 벡터 기반 프로토콜로, 홉 수를 기준으로 경로를 평가하며, 최대 홉 수는 15로 제한되어 있습니다. OSPF는 대규모 네트워크에 적합하고, RIP는 간단한 네트워크에 적합합니다.
라우팅 프로토콜 선택 시 고려사항
네트워크 규모
성능 요구 사항
관리 용이성
비용
동적 라우팅에서 라우터들이 정보를 주고 받는 방식에 대해 좀 더 구체적으로 설명해 주실 수 있나요?
라우터끼리 정기적으로, 또는 필요에 따라 정보를 교환하는데요. 그 정보를 기반으로 라우팅 테이블을 자동 관리하게 됩니다. 새로운 네트워크가 연결되는 경우 그 접점의 라우터가 인접한 라우터에 정보를 전달합니다.
동적라우팅의 프로토콜로는 RIP, OSPF가 대표적입니다.
RIP는 최단거리, 가장 홉 카운트가 적은 경로를 택하는 프로토콜입니다. 최대 홉카운트가 15라 내부용으로 많이 사용하게 됩니다.
OSPF는 최단거리 경로를 우선하는 것은 같으나, 기준이 홉카운트가 아닌 최소 시간입니다. 대규모 기업망에서 사용하는 것으로 알고있습니다.