본문 바로가기

Computer Science

[네트워크] CS 질문 리스트 정리

반응형
SMALL

 

과거의 공부 기록을 복습하고 정리합니다.

 

🗂️ HTTP 프로토콜에 대해 설명해주세요.

HTTP는 데이터를 주고받기 위한 프로토콜로, 서버/클라이언트 모델을 따릅니다.
상태정보를 저장하지 않는 Stateless 특징과, 클라이언트 요청에 응답을 보낸 후 연결을 끊는 Connectionless 특징을 가집니다.

 

 

HTTP의 장단점에 대해 설명해주세요.

HTTP의 장점은 연결 상태를 처리하거나 관리할 필요가 없어 디자인이 간단하고, 요청에 대한 응답만 보내주면 됩니다.
하지만 이전 통신의 정보를 모르기 때문에 매번 인증이 필요합니다. 이때 쿠키, 세션 등을 통해 해결할 수 있습니다.

 


🗂️ HTTP와 HTTPS의 차이에 대해 설명해주세요.

HTTP는 평문 데이터를 전송하기 때문에, 중요한 정보를 주고받을 경우 유출의 위험이 있습니다.
HTTPS는 이러한 문제를 해결하기 위해 HTTP에 암호화를 추가한 프로토콜입니다.

 

 

SSL에 대해 설명해주세요.

Secure Socket Layer의 약어로, 인터넷을 통해 전달되는 정보를 보호하기 위해 만들어진 통신 규약입니다.
HTTP는 TCP와 직접 통신하지만, HTTPS는 SSL을 통해 TCP와 통신함으로써 보안성이 향상되었습니다.

 


🗂️ 쿠키와 세션의 차이에 대해 설명해주세요.

쿠키는 클라이언트 리소스를 사용하는 작은 데이터로, 세션에 비해 속도는 빠르지만 보안성은 낮습니다.
세션은 서버 리소스를 사용하여 사용자의 상태를 유지시키는 기술로, 쿠키에 비해 보안은 좋지만 속도는 느립니다.

 


🗂️ www.naver.com에 접속할 때  생기는 과정에 대해 설명해주세요.

1. 사용자가 브라우저에 URL을 입력하면, DNS 서버에서 도메인 네임으로 서버의 진짜 주소를 찾습니다.
2. 찾은 IP 주소로 웹 서버에 TCP 3 way handshake를 통해 연결을 수립합니다.
3. 연결 수립 후 클라이언트는 웹 서버에 HTTP 요청 메시지를 보냅니다.
4. 요청 받은 서버는 클라이언트에 HTTP 응답 메시지를 보냅니다.
5. 도착한 HTTP 응답 메시지는 웹 페이지 데이터로 변환되고, 웹 브라우저에 의해 출력됩니다.

 


🗂️ TCP와 UDP의 차이에 대해 설명해주세요.

TCP는 연결형 서비스로, 높은 신뢰성을 보장하지만, 비교적 속도는 느립니다.
UDP는 비연결형 서비스로, 빠른 속도를 가지지만, 비교적 신뢰성은 낮습니다.
따라서 TCP는 신뢰성이 중요한 파일 교환에, UDP는 실시간성이 중요한 스트리밍에 주로 사용됩니다.

 


🗂️ 3 way handshake와 4 way handshake에 대해 설명해주세요.

3 way handshake는 TCP 네트워크에서 연결을 수립하는 과정입니다. 송신자와 수신자는 총 3번의 걸쳐 데이터를 주고받으며 통신이 가능한지 확인하고 연결을 수립합니다.

4 way handshake는 TCP 네트워크에서 연결을 종료하는 과정입니다. 송신자와 수신자는 총 4번에 걸쳐 데이터를 주고받으며 연결을 종료합니다.

 

 

TIME_WAIT 상태에 대해 설명해주세요.

클라이언트는 연결을 종료하기 전 서버에게서 받지 못한 데이터가 남아있을 수 있기 때문에 TIME_WAIT 상태를 일정시간 동안 유지합니다.

 


🗂️ OSI 7계층에 대해 설명해주세요.

하위 계층부터 물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용 계층으로 구성됩니다.

 

✍️ 물리 계층(bit): 데이터를 전기적인 신호로 변환 (케이블, 리피터, 허브)

✍️ 데이터링크 게층(frame): 데이터의 물리적인 전송과 에러 검출, 흐름 제어 담당 (이더넷)

✍️ 네트워크(packet): 패킷을 목적지까지 가장 빠른 길로 전송 (라우터)

✍️ 전송(segment): 최종 수신 프로세스로 데이터의 전송을 담당 (TCP, UDP)

✍️ 세션: 컴퓨터 간에 통신하기 위한 세션 생성

✍️ 표현: 데이터의 형식을 정의

✍️ 응용: 사용자에게 통신을 하기 위한 서비스를 제공 (인터페이스 역할)

 


🗂️ HTTP Method에 대해 설명해주세요.

요청의 목적을 표현하는 수단입니다.
POST, GET, PUT, PATCH, DELETE 등이 있습니다.

 

✍️ POST: 데이터 생성

✍️ GET: 데이터 조회

✍️ PUT: 데이터 전체 수정

✍️ PATCH: 데이터 일부 수정

✍️ DELETE: 데이터 삭제

 

 

GET과 POST의 차이에 대해 설명해주세요.

GET은 데이터 조회를 목적으로 하며, 멱등성을 보장합니다.
POST는 데이터 추가를 목적으로 사용하며, 멱등성을 보장하지 않습니다.

 

 

멱등성에 대해 설명해주세요.

첫 번째 수행 후 여러 차례 적용해도 결과를 변경시키지 않는 작업 또는 기능의 속성입니다.
즉, 멱등한 작업의 결과는 한 번 수행하든 여러 번 수행하든 동일합니다.

 


🗂️ 세션 기반 인증과 토큰 기반 인증의 차이에 대해 설명해주세요.

세션 기반 인증은 클라이언트의 상태 정보를 저장하기 때문에 Stateful한 구조를 가지고,
토큰 기반 인증은 서버에 상태 정보를 저장하지 않기 때문에 Stateless한 구조를 가집니다.

 

 

Stateful한 세션 기반의 인증 방식을 사용하게 되면 어떤 단점이 있을까요?

서버에 세션을 저장하기 때문에 사용자 수가 증가하면 서버에 과부하를 줄 수 있습니다.

 

 

세션 기반 인증과 토큰 기반 인증은 각각 어느 경우에 적합할까요?

단일 도메인이라면 세션 기반 인증을, 아니거나 모바일 앱 환경에서는 토큰 기반 인증을 사용하는 것이 적합할 것입니다.

 

✍️ 세션을 관리할 때 사용되는 쿠키는 여러 도메인에서 관리하기 어렵다. (CORS 문제)

 


🗂️ JWT 토큰에 대해 설명해주세요.

JSON 포맷을 이용하는 웹 토큰입니다. 토큰 자체를 정보로 사용하여 정보를 안전하게 전달합니다.
헤더, 내용, 서명으로 구성되며 각 파트를 온점으로 구분합니다.

 

✍️ 헤더: 토큰의 타입, 해시 암호화 알고리즘을 포함한다.

✍️ 내용(payload): 사용자가 토큰에 담고자 하는 정보를 포함한다.

✍️ 서명(signatre): 토큰을 인코딩하거나 유효성을 검증할 때 사용하는 고유한 암호화 코드

 


🗂️ 대칭키, 비대칭키 암호화 방식에 대해 설명해주세요.

대칭키는 암호화와 복호화에 같은 암호키를 사용하고,
비대칭키는 암호화와 복호화에 다른 키를 사용하는 암호화 알고리즘입니다.

 

✍️ 비대칭키는 외부에 공개하는 공개키와, 공개하지 않는 개인키를 한 쌍으로 이룹니다. (양방향 암호화 방식)

 


🗂️ Connection Timeout과 Read Timeout에 대해 설명해주세요.

Connection Timeout은 일정시간까지 서버에 연결되지 않을 경우 발생하고,
Read Timeout은 일정시간까지 서버로부터 응답을 받지 못할 경우 발생하는 것입니다.

 


🗂️ 공인 IP와 사설 IP에 대해 설명해주세요.

공인 IP는 ISP에서 제공하는 외부에 공개된 IP 주소입니다.
사설 IP는 일반 가정, 회사 내 등에 할당된 네트워크 IP 주소입니다.

 

✍️ 사설 IP만으로는 인터넷에 직접 연결할 수 없다. 라우터를 통해 1개의 공인 IP를 할당하고, 라우터에 연결된 개인 PC는 사설 IP를 각각 할당받아 인터넷에 접속할 수 있다.

 


References

https://www.tosspayments.com/blog/articles/dev-1

https://interconnection.tistory.com/74

https://velog.io/@chuu1019/알고-쓰자-JWTJson-Web-Token

https://docs.tosspayments.com/resources/glossary/http-protocol

 

반응형
LIST