백엔드 인터뷰 준비 (네트워크)

나 안해·2023년 3월 27일
0

Interview

목록 보기
2/3
post-thumbnail

1. TCP와 UDP의 차이

-TCPUDP
연결여부연결형 서비스비연결형 서비스
방식가상회선 방식데이터그램 방식
특징높은 신뢰성, 제어 기능제공TCP에 보다 빠르다
  • TCP는 연결형 서비스로 가상회선 방식을 제공하고 높은 신뢰성을 보장하며 흐름제어 및 혼잡 제어 기능을 제공한다.
  • UDP는 비연결형 서비스로 데이터그램 방식을 제공하고 속도가 TCP에 빠르다.

2. TCP 3,4 way handshake

  • TCP 3 way handshake 는 TCP 통신을 이용하여 데이터를 전송하기 위한 네트워크 연결을 설정하는 과정
    • 즉, 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터를 전송하기 전에 한 쪽이 다른 쪽이 준비되었다는 것을 알 수 있도록 한다.
  • TCP 4 way handshake 는 TCP의 연결을 해제하는 과정

3. HTTP와 HTTPs의 차이

  • HTTP는 서버/클라이언트 모델을 따라 데이터를 주고받기 위한 프로토콜. 즉, 하이퍼텍스트를 교환하기 위한 통신규약입니다.
  • HTTPs란 HTTP에 데이터 암호화가 추가된 프로토콜

4. HTTPS에 대해서 설명하고 SSL Handshake에 대해서 설명

HTTPS는 HTTP에 보안 계층을 추가한 것으로 제3자 인증, 공개키 암호화, 비밀키 암호화를 사용한다.

  • 제3자 인증 : 믿을 수 있는 인증기관에 등록된 인증서만 신뢰하는 것
  • 공개키 암호화 : 비밀키를 공유하기 위해 사용
  • 비밀키 암호화 : 통신하는 데이터를 암호화하는데 사용

클라이언트는 TCP 3way handshake를 수행한 이후 Client Hello를 전송합니다. 서버는 인증서를 보냅니다.(다른 정보들도 전송하나 검색을 통해 알 수 있는 부분입니다. 대개 그 정도까지는 요구하지 않습니다.)

클라이언트는 받은 인증서를 신뢰하기 위해서 등록된 인증기관인지 확인합니다. 이 인증서는 인증기관의 개인키로 암호화되어있고, 공개키로 검증할 수 있습니다.(브라우저에 내장되어있음) 클라이언트는 사이트의 정보와, 서버의 공개키를 얻을 수 있습니다.

서버의 공개키로 통신에 사용할 비밀키를 암호화해서 서버에 보냅니다. 서버는 이를 개인키로 확인하고 이후 통신은 공유된 비밀키로 암호화되어 통신합니다.

제3자 인증: 인증서, 인증기관/공개키 암호화: 인증서, 비밀키 공유/비밀키 암호화: 통신과정

4.1 왜 공개키 암호화와 비밀키 암호화를 복합적으로 사용하는가?

공개키 방식은 암/복호화 과정에서 많은 컴퓨터 파워를 사용하기 때문에 성능에 단점이 생기는 문제를 줄이기 위해 복합적으로 사용한다

  • 공개키를 그대로 사용하면 많은 접속이 몰리는 서버는 매우 큰 비용을 지불해야 하고 반대로 대칭키는 암호를 푸는 열쇠를 상대에게 전송해야 하는데 이걸 그냥 전송하면 위험하다
    • 그래서 속도는 느리지만 데이터를 안전하게 주고 받을 수 있는 공개키 방식으로 대칭키를 암호화하고 실제 데이터를 주고 받을 때는 대칭키를 이용해서 데이터를 주고 받음

5. HTTP 메소드와 역할

메소드역할
POST생성(C)
GET조회(R)
PUT수정(U)
DELETE삭제(D)

5.1 Get 과 Post 방식의 차이

  • Get : 클라이언트가 서버로 어떤 데이터를 조회하기 위한 요청을 위한 메소드
  • Post : 서버로 데이터를 생성하기 위해 데이터를 보낼때 사용하는 메소드
  • Get은 URL 파라미터에 데이터를 담아보내므로 body가 없고 Post는 body에 데이터를 실어 보낸다.
-GetPost
사용목적데이터 조회데이터의 생성
요청에 body
멱등성OX

멱등?
: 연산을 여러번 적용해도 결과가 달라지지 않는 성질

정리🙋‍♂
Get은 데이터의 조회를 위한 요청시 사용하는 메소드이며 멱등하고, URL에 데이터를 실어보내므로 body가 없습니다. Post는 데이터의 생성 위해 사용하는 메서드로 body에 데이터를 실어보내고 멱등하지 않습니다.

6. RESTful?

  • REST의 원리를 잘 지키는 시스템

    REST의 원리?
    HTTP URI 를 통해 데이터를 표시하고 HTTP method를 통해 자원에 대한 처리를 하는 것

7. CORS?

  • 서로 다른 도메인간에 자원을 공유하는 것
  • 대부분의 브라우저에서는 이를 차단하며, 서버측에서 헤더를 통해서 사용가능한 자원을 알려준다

8. OSI 7계층이란 무엇이고 존재이유

  • OSI 7계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈것을 말하며 계층을 나눈 이유는 단계별로 통신이 일어나는 과정을 파악할 수 있기 때문이다.

8.1 TCP/IP 4계층 ?

  • 실제로 우리가 대부분 사용하는 네트워크는 TCP/IP 4계층으로 통신에 실제로 이용되는 계층이다.

8.2 OSI 7계층 중 웹서버 소프트웨어는 어디서 작동?

  • 웹 서버는 HTTP 프로토콜을 사용하여 html 데이터를 클라이언트에 제공하는 서버입니다. 웹서버 중의 하나로 어플리케이션 계층에서 작동

9. CSRF

  • 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격
  • Django에서는 기본적으로 csrf token을 이용하는데 이는 POST 요청에 대해서만 csrf token을 발급하고 체크한다.

문제 출처

ksundong/backend-interview-question

썸네일 출처

heelieben

0개의 댓글