항해99 기술면접 대비

23.10.25 항해 99 16기 기술면접 대비

김용글 2023. 10. 25. 21:11

1. 쿠키, 세션의 개념과 차이를 설명해보세요

 1) 쿠키란?

     (1) 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터파일

     (2) 사용자 인증이 유효한 시간을 명시할 수 있고 유효 시간이 정해지면 브라우저가 종료되어도 인증이 유지됨

     (3) 클라이언트의 상태 정보를 로컬에 저장했다가 참조

     (4) 클라이언트에 300개 까지 쿠기 저장 가능하고 하나의 도메인 당 20개의 값만 가질 수 있으며, 하나의 쿠키값은

           4KB 까지 저장 가능

     (5) Response Header 에 Set-Cookie 속성을 사용하면 클라이언트에 쿠키를 만들 수 있따

     (6) 쿠키는 사용자가 따로 요청하지 않아도 브라우저가 Request 시에 Request Header 를 넣어서 자동으로 서버에

          전송함

 2) 세션이란?

     (1) 쿠키를 기반으로 하지만, 사용자 정보 파일을 서버측에서 관리함

     (2) 서버에서는 클라이언트를 구분하기 위해 세션 ID 를 부여하며 웹 브라우저가 서버에 접속해서 브라우저를

          종료할 때까지 인증을 유지함

     (3) 접속 시간에 제한을 두어 일정 시간 응답이 없다면 정보가 유지되지 않게 설정이 가능함

     (4) 사용자에 대한 정보를 서버에 두기 때문에 쿠키보다 보안에 좋지만 사용자가 많아질수록 서버 메모리를

          많이 차지하므로 동접사 수가 많은 웹 사이트의 경우 서버에 과부화를 주게 되므로 성능 저하의 요인이됨

     (5) 클라이언트가 Request 를 보내면, 해당 서버의 엔진이 클라이언트에게 유일한 ID 를 부여하는데 이것이 세션 ID

 3) 쿠키와 세션의 차이점

     (1) 쿠키는 서버의 자원을 사용하지 않으나 세션은 서버의 자원을 사용한다

     (2) 요청 속도는 쿠키가 더 빠른데 세션은 서버의 처리가 필요하기 때문

     (3) 쿠키는 클라이언트 로컬에 저장되기 때문에 변질되거나 Request 에서 스니핑 당할 우려가 있어서 보안이

          취약하지만 세션은 쿠키를 이용해 세션 ID 만 저장하고 서버에서 처리하기 때문에 비교적 보안성이 좋다

     (4) 쿠키도 만료 시간이 있지만 파일로 저장되므로 브라우저를 종료해도 계속 정보가 남지만

          세션은 브라우저가 종료되면 만료시간에 상관없이 삭제됨

 

2. TCP/UDP에 대해서 설명해주세요.

 1) TCP 란?

     (1) 클라이언트와 서버가 연결된 상태에서 데이터를 주고 받는 프로토콜이다

     (2) 장치들 사이에 논리적인 접속을 성립하기 위해 연결을 설정해 신뢰성을 보장하는 연결형 서비스

     (3) 네트워크에 연결된 컴퓨터에서 실행되는 프로그램간에 일련의 옥텟(데이터, 메세지, 세그먼트라는 블록단위)을

          안정적으로, 순서대로, 에러 없이 교환할 수 있게 한다

     (4) 특징

          a) 연결형 서비스로 가상 회선 방식을 제공

          b) 흐름 제어 : 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지

          c) 혼잡 제어 : 네트워크내의 패킷 수가 과도하게 증가하지 않도록 방지

          d) 높은 신뢰성 보장 : 신뢰성이 높은 전송을 하기 때문에 UDP 보다 속도가 느림

          e) 전이중 방식 : 전송이 양방향으로 동시에 일어날 수 있다

           f) 점대점 방식 : 각 연결이 정확히 2개의 종단점을 가지고 있다

 2) UDP 란?

     (1) 연결을 위해 할당되는 논리적인 경로가 없고 각각의 패킷은 다른 경로로 전송되며 독립적인 관계를 지님

     (2) 특징

           a) 비연결형 서비스로 데이터그램 방식 제공 : 데이터의 전송 순서가 바뀔 수 있다

           b) 데이터 수신 여부를 확인하지 않음 : TCP 의 발신자와 수신자 사이에 논리적인 접속을 성립하는 과정이 없다

           c) 신뢰성이 낮음 : 흐름 제어가 없어서 제대로 전송되었는지, 오류가 없는지 확인 할 수 없다.

           d) TCP 보다 속도가 빠르다 

 

3. http, https 차이점에 대해 설명해주세요

 1) HTTP 란?

     1) 서버 / 클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜

     2) 인터넷에서 하이퍼텍스트를 교환하기 위한 통신규악으로 80번 포트를 사용

 2) HTTPS 란?

     1) HTTP 에 데이터 암호화가 추가된 프로토콜

     2) 443번 포트를 사용하며 네트워크 상태에서 중간에 제 3자가 정보를 볼 수 없도록 암호화를 지원함

 3) HTTP 와 HTTPS 의 차이점

     1) HTTP 는 암호화가 추가되지 않았기 때문에 보안에 취약하지만 HTTPS 는 안전하게 데이터를 주고 받을 수 있다

     2) HTTPS 는 암호화/복호화의 과정이 필요하기 때문에 HTTP 보다 속도가 느린편이며, 인증서를 발급하고 유지하기

         위한 추가 비용이 발생됨