일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- rdbms nosql 차이
- late 키워드
- SQL
- sqld 시험 정리
- 1일 1쿼리
- null 억제 연산자
- 작업 2유형
- 빅분기 필기 pdf
- 주말도 식지않아
- 주말도 한다
- 빅분기 판다스 100제
- 빅분기 캐글놀이터
- 앱개발 가보자고
- 작업 1유형
- 네트워크 면접 답변
- FLUTTER
- 빅분기 1유형
- 컴포지션과 집합
- flutter 믹스인
- 빅데이터 분석기사
- ?. ?? ! late
- null check 연산자
- 운영체제 면접 답변
- MySQL
- 오늘은 1일 2쿼리
- 주말에도 1일 1쿼리
- mysql mongo 성능 비교
- 모델 학습 및 예측
- my_sql
- 빅분기
- Today
- Total
subindev 님의 블로그
[기술 면접 대비] 2.네트워크 본문
🌐 네트워크 면접 필수 개념 정리
1. HTTP 프로토콜
HTTP(Hyper Text Transfer Protocol): 클라이언트와 서버가 데이터를 주고받는 통신 규약
특징
- Stateless: 요청 간 상태 저장 안 함
- Connectionless: 요청-응답 후 연결 끊김
👉 비유
HTTP는 “편지 보내기”와 같음. 편지를 주고받으면 끝. 다음 편지를 보낼 때는 이전 대화를 모름.
장점
상태 관리 필요 없어 서버 설계 단순
단점
매번 인증 필요 → 쿠키/세션 사용으로 보완
답변 예시:
“HTTP는 클라이언트와 서버 간 데이터 통신을 위한 프로토콜입니다. 상태를 저장하지 않는 Stateless, 연결을 유지하지 않는 Connectionless 특징이 있어 서버 설계가 단순하지만, 매 요청마다 인증이 필요한 단점이 있습니다.”
2. HTTP vs HTTPS
HTTP: 데이터를 암호화 없이 전송 → 보안 취약
HTTPS: HTTP + SSL/TLS로 암호화 → 데이터 보호, 신뢰성 확보
HTTPS는 HTTP → SSL/TLS → TCP 순서로 동작
👉 비유
HTTP = 엽서 (누구나 내용 볼 수 있음)
HTTPS = 밀봉된 봉투 편지 (내용 노출 안 됨)
답변 예시:
“HTTP는 데이터를 평문으로 전송하기 때문에 보안에 취약합니다. HTTPS는 SSL/TLS 암호화를 적용해 통신 내용을 보호하고, 서버 신뢰성을 확보할 수 있습니다.”
3. 쿠키 vs 세션
쿠키: 클라이언트(브라우저)에 저장되는 작은 텍스트 파일
세션: 서버에서 사용자 상태를 관리하는 기술
👉 비유
쿠키 = 손님이 직접 들고 다니는 식권
세션 = 식당 주인이 직접 손님 명단을 기록해둠
저장 위치 | 클라이언트 | 서버 |
만료 시점 | 설정 가능 (브라우저 꺼도 유지) | 기본적으로 브라우저 종료 시 삭제 |
리소스 | 클라이언트 | 서버 |
보안 | 낮음 | 높음 |
답변 예시:
“쿠키는 클라이언트 PC에 저장되는 작은 데이터 파일이고, 세션은 서버에서 상태를 저장하는 방식입니다. 쿠키는 빠르지만 보안에 취약하고, 세션은 보안성이 높지만 서버 자원을 소모합니다.”
4. 웹 동작 방식 (www.naver.com 접속 과정)
- 브라우저에 URL 입력
- DNS 서버에서 도메인 → IP 변환
- IP 주소로 해당 서버와 TCP 3-way Handshake로 연결 수립
- 클라이언트가 서버로 HTTP 요청 전송
- 서버가 HTTP 응답 반환
- 브라우저가 응답을 해석해 화면에 출력
👉 비유
DNS = 전화번호부에서 친구 전화번호 찾기
Handshake = “전화 연결되는지 확인”
HTTP 요청/응답 = 실제 대화
답변 예시:
“브라우저에 URL을 입력하면 DNS를 통해 IP를 찾고, 서버와 TCP 3-way Handshake로 연결합니다. 이후 HTTP 요청을 보내고 서버가 응답하면, 브라우저가 이를 해석해 화면에 출력합니다.”
5. TCP vs UDP
TCP
연결형 (3-way Handshake)
순서 보장, 신뢰성 높음
속도 느림
UDP
비연결형, 순서 보장 없음
신뢰성 낮음
속도 빠름
👉 비유
TCP = 등기우편 (확실히 전달, 확인 서명 필요)
UDP = 일반 우편/엽서 (빠르지만 분실 가능)
답변 예시:
“TCP는 연결형 프로토콜로 신뢰성이 높지만 속도가 느리고, UDP는 비연결형으로 빠르지만 신뢰성이 낮습니다. 그래서 TCP는 파일 전송, UDP는 실시간 스트리밍이나 게임에서 주로 사용됩니다.”
6. TCP Handshake
3-way Handshake (연결 성립)
- 클라이언트 → SYN → 서버
- 서버 → SYN/ACK → 클라이언트
- 클라이언트 → ACK → 서버
4-way Handshake (연결 종료)
- 클라이언트 → FIN → 서버
- 서버 → ACK
- 서버 → FIN
- 클라이언트 → ACK
👉 비유
3-way = 전화 걸기 → 여보세요? → 네 들려요!
4-way = 통화 끝내자 → 알았어 → 끊을게 → 나도 끊었어
답변 예시:
“TCP 연결은 3-way Handshake로 성립하고, 4-way Handshake로 종료됩니다. 3-way는 서로 통신이 가능한지 확인하는 과정이고, 4-way는 양쪽이 모두 종료 의사를 확인하는 과정입니다.”
7. OSI 7계층
- 물리 계층: 신호 전송 (케이블, 리피터)
- 데이터 링크 계층: 프레임, 오류검출 (스위치)
- 네트워크 계층: 경로 설정, 패킷 전달 (IP, 라우터)
- 전송 계층: 종단 간 전송, 오류 복구 (TCP/UDP)
- 세션 계층: 연결 유지/관리
- 표현 계층: 데이터 변환, 암호화
- 응용 계층: 사용자 서비스 (HTTP, FTP, SMTP 등)
👉 비유
소포 배달 과정:
물리(도로) → 링크(주소 라벨) → 네트워크(경로 찾기) → 전송(배달 보증) → 세션(누구와 통화?) → 표현(언어 통역) → 응용(실제 대화)
답변 예시:
“OSI 7계층은 네트워크 통신을 단계별로 나눈 모델입니다. 13계층은 데이터 전달, 46계층은 전달 과정의 안정성과 형식, 7계층은 사용자와 직접 맞닿는 서비스 계층을 담당합니다.”
8. HTTP Method
- GET: 데이터 조회
- POST: 데이터 등록
- PUT: 데이터 전체 수정 (없으면 생성)
- PATCH: 일부 수정
- DELETE: 삭제
👉 비유
- GET = 책 빌려보기
- POST = 새 책 기증
- PUT = 책 전체 교체
- PATCH = 책 일부만 수정
- DELETE = 책 폐기
답변 예시:
“HTTP 메소드는 요청 목적을 알리는 수단입니다. GET은 조회, POST는 등록, PUT은 전체 수정, PATCH는 일부 수정, DELETE는 삭제에 사용됩니다.”
9. GET vs POST
구분GETPOST
데이터 전송 위치 | URL | Body |
보안 | 낮음 (URL 노출) | 상대적 안전 |
캐싱 | 가능 | 불가 |
멱등성 | 있음 | 없음 |
👉 비유
GET = 주소창에 책 제목을 써서 요청
POST = 책 내용을 직접 제출
답변 예시:
“GET은 데이터를 URL에 붙여 전송하기 때문에 보안에 취약하지만 빠르고 캐싱이 가능합니다. POST는 데이터를 Body에 담아 전송해 보안성이 더 좋지만 속도는 느립니다.”
10. 세션 기반 vs 토큰 기반 인증
세션 기반: 서버가 상태를 저장 (Stateful), 확장성 낮음
토큰 기반 (JWT): 서버 상태 저장 안 함 (Stateless), 확장성 좋음
👉 비유
세션 = 식당 주인이 손님 명단을 직접 기록
토큰 = 손님이 출입증 들고 다니며 인증
답변 예시:
“세션 기반 인증은 서버가 상태를 저장해 관리하기 때문에 사용자가 많아지면 확장성이 떨어집니다. 토큰 기반 인증은 Stateless 구조로 확장성이 좋고 분산 서버 환경에 적합합니다.”
11. JWT (JSON Web Token)
Self-contained: 토큰 자체에 정보 포함
구조: Header.Payload.Signature
👉 비유
JWT = 정보가 담긴 회원증 (소지 자체가 인증 수단)
답변 예시:
“JWT는 JSON 형식의 Claim 기반 웹 토큰으로, 토큰 자체에 정보를 포함해 인증을 처리합니다. Header, Payload, Signature 구조로 되어 있으며, Stateless한 인증 방식을 구현할 수 있습니다.”
12. 대칭키 vs 비대칭키 암호화
대칭키: 암호화/복호화 같은 키 사용 → 빠르지만 키 유출 위험
비대칭키: 공개키/개인키 쌍 사용 → 안전하지만 느림
👉 비유
대칭키 = 집 열쇠 하나 (잃어버리면 누구나 출입 가능)
비대칭키 = 공개 우편함(공개키) + 집 전용 열쇠(개인키)
답변 예시:
“대칭키 암호화는 같은 키로 암복호화를 하기 때문에 빠르지만 키 유출에 취약합니다. 비대칭키는 공개키와 개인키 쌍을 사용해 안전하지만 속도가 느립니다.”
13. Connection Timeout vs Read Timeout
Connection Timeout: 서버 연결 시도 자체가 제한 시간 초과
Read Timeout: 연결은 되었지만 응답이 늦어 제한 시간 초과
👉 비유
Connection Timeout = 전화를 걸었는데 연결이 안 되는 상황
Read Timeout = 통화는 되었지만 상대가 대답하지 않는 상황
답변 예시:
“Connection Timeout은 서버와 연결 자체가 안 되는 상황이고, Read Timeout은 연결은 되었지만 서버 응답이 늦어 발생하는 상황입니다.”
14. 공인 IP vs 사설 IP
공인 IP: ISP가 제공, 외부에서 접근 가능
사설 IP: 내부 네트워크 전용, 라우터를 통해 공인 IP로 변환 필요
👉 비유
공인 IP = 집 주소 (택배 기사 바로 방문 가능)
사설 IP = 아파트 호수 (공유기=관리실 거쳐야 외부 연결 가능)
답변 예시:
“공인 IP는 인터넷에서 직접 접근 가능한 주소이고, 사설 IP는 내부 네트워크에서만 쓰이는 주소입니다. 사설 IP는 라우터를 통해 공인 IP로 변환되어 외부와 통신합니다.”