본문 바로가기
면접 대비

CS 관련 면접 질문 정리 (네트워크)

by Mecodata 2023. 1. 4.

1. REST(Representational State Transfer)
Client와 Server 사이의 통신 방식 중 하나로 HTTP URI로 리소스를 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 리소스에 대한 CRUD 기능을 적용하는 것을 의미하며 REST API는 REST를 기반으로 어떤 서비스에 대한 API를 구현한 것

- URI(Uniform Resource Identifier) = 특정 리소스를 식별하는 통합 자원 식별자

- API(Application Programming Interface) = 응용 프로그램에서 OS나 프로그래밍 언어의 기능을 조작하여 데이터를 주고받기 위한 방법을 정의한 인터페이스  (Client와 Server 간의 통신 방법을 정의한 것)

 

2. HTTP 

- HyperText Transfer Protocol의 약자로 웹 상에서 Server와 Client 간의 데이터 전송을 위한 프로토콜

- 중간에 패킷을 가로채가면 내용을 알아낼 수 있고 내용을 바꿔서 보낼 수도 있음

패킷(Packet) = 통신망을 통해 전송하기 쉽도록 자른 데이터의 전송 단위

 

3. HTTP 버전

0.9(초기버전) / 1.0(헤더 개념 도입) / 1.1(파이프라인 기능 추가) / 2.0 / 3.0이 존재하는데 1.1이 보편적으로 많이 쓰임

※ 파이프라이닝 = 한 번의 Connection 으로 다수의 Request와 Response를 처리할 수 있도록 하는 기능

 

4. HTTP GET&POST 차이

GET = 전송할 데이터가 URL 주소 끝에 파라미터로 포함되어 전송(쿼리 스트링), 캐시 가능(브라우저에 기록)

POST = 전송할 데이터를 HTTP body에 담아서 전송, 캐시 불가(브라우저에 기록 X)\

 

5. 대표적인 HTTP 상태 코드

200(OK) - 요청이 성공적으로 처리

404(NOT FOUND) - 요청받은 리소스를 찾을 수 없음 

500(INTERNET SERVER ERROR) - 원인을 알 수 없는 서버 에러

503(SERVICE UNAVAILABLE) - 서버가 요청을 처리할 준비가 안됨 (작동이 중단된 상태 or 과부화 상태)

1번대 = 요청 처리중, 2번대 = 요청 성공, 3번대 = 추가 조치 필요, 4번대 = 잘못된 요청, 5번대 = 서버 오류

 

6. HTTPS

- HyperText Transfer Protocol Secure의 약자로 HTTP에 데이터 암호화가 추가된 프로토콜

- SSL을 이용해서 HTTP 통신을 암호화해 중간에 패킷을 가로채더라도 복호화하지 않으면 내용을 보지 못하도록 하여 보안이 조금 더 뛰어난 HTTP 통신을 제공

SSL(Secure Sockets Layer, 보안 소켓 계층) = 컴퓨터 네트워크 통신 보안을 제공하기 위해 설계된 암호 규약

- HTTP와는 다르게 네트워크 상에서 제3자가 정보를 볼 수 없도록 암호화를 지원하는 특징이 있고 HTTPS는 대칭키 암호화 방식과 비대칭키 암호화 방식을 모두 사용

- 대칭키 암호화 = Server와 Client가 동일한 키 사용 (키가 노출되면 위험하지만 연산 속도가 빠름)

- 비대칭키 암호화 = Server와 Client가 서로 다른 키 사용 (공개키/개인키)

 

7. 세션과 쿠키

세션

- client 별로 서버에 저장되는 정보

- 서버가 종료되거나 유효시간이 지나면 자동 삭제됨 (사용자가 웹 서버에 접속해 있는 상태를 나타내는 단위)

- 서버의 리소스를 차지

 

쿠키

- key:value 형식으로 Client에 저장되는 문자열 정보

- 세션과 다르게 브라우저가 꺼져도 지정한 시간만큼 저장이 유지

- client 메모리를 사용하기 때문에 서버 리소스 사용 X

 

8. OSI 7계층

  • 물리 전기 신호로 데이터 전송
  • 데이터 링크MAC 주소를 사용하여 데이터를 프레임으로 포장 및 제어 정보 추가
  • 네트워크 IP 주소를 기반으로 최적 경로 설정
  • 전송 - 세그먼트 처리, 오류 검사, 흐름 제어 후 데이터 전송
  • 세션 - 통신을 위한 세션 설정 및 연결 유지
  • 표현 - 표현할 데이터 형식 결정
  • 응용 - 데이터를 사용자에게 전달

※ MAC(Media Access Control)  주소 = 데이터 링크 계층에서 사용하는 네트워크 인터페이스에 할당된 고유 식별 주소

=> MAC은 하드웨어 자체에 부여된 고유한 식별번호(이더넷), IP는 다른 주체에 의해 할당된 네트워크 식별번호(라우팅)

=> MAC은 건물, IP는 방 호수 같은 개념

 

※ 이더넷 = 하나의 인터넷 회선에 공유기나 허브 등을 통해 다수의 시스템이 랜선 및 통신포트에 연결되어 통신이 가능한 네트워크 구조

 

※ 라우팅 = 어떤 네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정

 

※ TCP 프로토콜 - OSI 7계층 중 전송계층에 속하는 중요 전송 프로토콜로 네트워크 망에 연결된 컴퓨터의 프로그램 간 데이터를 순서대로 에러없이 교환할 수 있게 하는 역할

 

9. 주소 창에 URL 입력시 작동 과정

  • 이전에 방문한 적이 있는지 캐시 확인
  • 웹 브라우저가 DNS를 조회함으로써 도메인의 IP 주소 확인
  • 찾은 IP 주소를 기반으로 서버와의 TCP 연결 
  • 웹 브라우저가 HTTP 요청을 서버로 전송
  • 웹 서버가 요청 처리 및 응답을 웹 브라우저로 전송
  • 브라우저가 전송 받은 데이터를 렌더링

※ DNS(Domain Name System) = IP 주소와 도메인 이름을 매핑해주는 서버 

※ 캐시(Cache) = 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소

※ 렌더링(rendering) = 데이터를 시각적인 형태로 변환하여 사용자가 인식할 수 있도록 하는 작업

 

10. TCP와 UDP

TCP(Transmission Control Protocol, 전송 제어 프로토콜)

- 연결 지향형 프로토콜 => 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 프로토콜

- 데이터 경계 구분 X

- 신뢰성 있는 데이터 전송 (전송 순서 보장 및 수신 여부 확인)

- UDP 보다 느림

- 1:1 통신만 가능

 

UDP(User Datagram Protocol, 사용자 데이터그램 프로토콜)

※ 데이터그램 = IP의 전송 단위

- 비연결형 프로토콜 => 보내는 쪽에서 일방적으로 데이터 전달

- 데이터 경계 구분 

- 비신뢰성, 실시간 (전송 순서 변동 가능, 수신 여부 확인 X)

- TCP 보다 빠름 (연속성)

- 1:1, 1:다, 다:다 모두 가능

- 의미있는 서버 구축을 하려면 일일이 패킷을 관리해줘야

 

★ TCP는 공장에서 레일 양쪽에 사람이 있어서 서로 소통하며 한 쪽에서 물건을 레일 위로 올리는 방식이고 UDP는 일방적으로 한쪽에서 계속 물건을 레일 위로 올리는 방식

 

11. 인터넷, 웹

인터넷 - 전 세계 컴퓨터들을 하나로 연결하는 거대한 컴퓨터 통신망

웹 - 인터넷에 연결된 사용자들이 서로의 정보를 공유할 수 있는 공간

 

12. SSH(Secure Shell)

- 원격 호스트에 접속하기 위해 사용되는 보안 프로토콜 (원격 접속 보안을 위한 필수적인 요소)

 

13. 트래픽(traffic)

- 서버의 데이터 전송량
※ 트래픽이 몰려 서버 속도가 느려질 경우 해결 방법
1. Scale-Up
더 좋은 CPU로 업그레이드하거나 RAM을 추가 등의 방법으로 서버의 처리능력을 향상 시키는 방법
- 간단하지만 비용이 많이 발생함
2. Scale-Out
트래픽을 여러 대의 서버에 나누는 방법
- 경제적이지만 메모리를 공유하지 않기 때문에 데이터 정합성 문제가 발생

'면접 대비' 카테고리의 다른 글

CS 관련 면접 질문 정리 (Spring)  (0) 2023.02.05
CS 관련 면접 질문 정리 (DB)  (0) 2023.01.30
CS 관련 면접 질문 정리 (OS)  (0) 2023.01.16
CS 관련 면접 질문 정리 (Java)  (0) 2023.01.16

댓글