8주차

기술노트

8주차

- 구성원 : 이성호(@seonghoo1217), 김보민(@bm4656), 박수빈(@Siby1lA), 신태우(@frommF12), 임시은(@sineTlsl), 최낙주(@Gawq), 김지현(@debussySuh)


이성호

1. HTTPS가 HTTP로 부터 가지는 장점은 무엇인가요

⇒ HTTP는 TCP/IP 프로토콜 상위에서 동작하기에 그 특성 또한 사용한다. TCP/IP의 가장 큰 문제로는 도청 및 위장이 가능하다는 점이다. 또한 통신경로 상에서 엿볼 수 있고, 패킷을 수집하는 것만으로도 도청할 수있다. 그렇기 때문에 HTTPS는 통신자체를 암호화시키는 SSL(Secure Socket Layer)과 TLS(Transport Layer Security)라는 다른 프로토콜을 조합한다. 또한 컨텐츠 전송시 그를 암호화시킨다.

2. HTTP에서의 GET과 POST의 차이

  • 둘다 서버에 무언가를 요청할 때 쓰는 메소드이지만 `GET`의 경우 URL에 데이터의 정보의 노출이 데이터 크기가 제한적이라는 단점을 고려하였을 때 보통 정보를 조회하는용으로 사용하며, `POST` 의 경우 Body에 데이터가 담겨 전송되기에 바이너리 데이터를 요청하는 경우 GET방식에 비해 데이터크기와 보안성 측면에서 이점이 존재한다.

2-1.(꼬리) 멱등성이란 무엇이고 메소드중 멱등성을 보장받지 못하는 메소드는 무엇인가요 ?

  • 멱등성이란 같은요청이라는 전제하에 1번의 요청과 N번의 요청이 서버의 상태를 똑같이 보장하는 성질을 멱등성이라고정의합니다. HTTP의 메소드는 크게 4가지 GET,POST,PUT,DELETE가 존재하며 이중 멱등성을 보장받지 못하는 메소드는 POST로 요청 마다 서버의 상태를 변화시키기에 멱등성을 보장받지 못합니다.

김보민

Q.HTTP와 HTTPS의 차이점에 대해서 설명해보세요.

HTTP는 따로 암호화 과정을 거치지 않기 때문에 중간에 패킷을 가로챌 수 있고,수정할 수 있습니다.따라서 보안이 취약해짐을 알 수 있습니다.이를 보완하기 위해 나온 것이 HTTPS입니다.HTTPS는 중간에 암호화 계층을 거쳐서 패킷을 암호화합니다.

HTTP 동작 순서: TCP → HTTP

HTTPS 동작 순서: TCP → SSL → HTTP

Q. 쿠키(Cookie)와 세션(Session)의 차이점에 대해 말해주세요.

쿠키는 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일입니다. HTTP에서 클라이언트의 상태 정보를 PC에 저장했다가 필요시 정보를 참조하거나 재사용할 수 있습니다.

세션은 일정 시간동안 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고, 그 상태를 유지시키는 기술입니다.

즉, 방문자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 그것을 세션이라고 합니다.

Q. sessionStorage, localStorage cookie의 차이점에 대해 설명하시오.

sessionStorage는브라우저(탭)의 수명과 같습니다. 반면에 localStorage는 브라우저의 수명에 관계 없이 계속 사용할 수 있습니다. 그리고 cookie는 리퀘스트가 발생 이후 response에 포함되어 받습니다.


1. HTTP와 HTTPS의 차이점은 무엇인가?

  • HTTP는 암호화가 추가되지 않았기 때문에 보안에 취약한 반면, HTTPS는 안전하게 데이터를 주고받을 수 있다. 하지만 HTTPS를 이용하면 암호화/복호화의 과정이 필요하기 때문에 HTTP보다 속도가 느리다. (물론 오늘날에는 거의 차이를 못느낄 정도이다.) 또한 HTTPS는 인증서를 발급하고 유지하기 위한 추가 비용이 발생하다.

1.1 그렇다면 언제 HTTP를 쓰고, 언제 HTTPS를 쓰는 것이 좋겠는가?

  • 개인 정보와 같은 민감한 데이터를 주고 받아야 한다면 HTTPS를 이용해야 하지만, 노출이 되어도 괜찮은 단순한 정보 조회 등 만을 처리하고 있다면 HTTP를 이용하면 된다.

2. 쿠키와 세션의 차이점과 쿠키와 세션 각각의 특징을 설명해주세요

  • 가장 큰 차이는 사용자의 정보가 저장되는 위치입니다 쿠키는 클라이언트,세션은 서버의 자원을 사용합니다

세션은 보안이 뛰어나다는 점과 쿠키는 요청 속도가 빠르다는 특징이 있습니다

3. keep-alive 헤더에 대해서 설명해 주세요.

  • 1.0 버전과 같이 매번 TCP 연결을 하는 것이 아닌 한 번 TCP 초기화를 한 이후 keep-alive라는 옵션으로 여러 개의 파일을 송수신할 수 있다.

4. JWT 는 무엇이고 장단점에 대해 설명해주세요

  • Json web token 의 약자로 모바일이나 웹의 사용자 인증을 위해 사용하는 암호화된 토큰입니다 보안성 쿠키를 전달하지 않아도 되어 취약점이 사라진다는 장점이 있지만 JWT 토큰이 길어질수록 대역폭 낭비가 심해진다는 단점이 있습니다.

5. QUIC의 장점은?

  • QUIC는 TCP를 사용하지 않기에 통신 시작시 번거로운 3-웨이 핸드세이크 과정을 거치지 않아도 된다.

QUIC는 첫 연결 설정에 1-RTT만 소요되기에 클라가 서버에 어떤 신호를 한번 주고 서버도 거기에 응답하기만 하면 바로 본 통신이 가능하기 때문이다.

신태우

1. 라우팅 과정에서 사용하는 라우팅 테이블이 무엇인지 설명해주세요

  • 송신지에서 수신지까지 도달하기 위해 사용되는 테이블로 게이트웨이와 모든 목적지에 대해 해당 목적지에 도달하기 위해 거쳐야 할 다음 라우터의 정보를 가지고 있다.

2. NAT이 무엇인지 설명해주세요

  • NAT 장치는 패킷의 IP 주소 정보를 수정하여 IP 주소를 다른 주소로 매핑하는 방법이다.

NAT 장치를 통해 하나의 외부 IP 주소로 내부의 여러 호스트에 주소를 부여할 수 있다.

3. SEO가 무엇인지 설명해주세요

  • SEO는 검색엔진 최적화를 뜻하며 사용자들이 검색엔진으로 웹 사이트를 검색했을 때 그 결과를 페이지 상단에 노출시켜 많은 사람들이 볼 수 있도록 하는 최적화하는 방법을 말한다.

4. 운영체제의 역할을 설명해주세요

  • CPU 스케줄링과 프로세스 관리
  • 메모리 관리
  • 디스크 파일관리
  • I/O 디바이스 관리

5. 현재 대부분의 컴퓨터는 어떤 구조를 따르고 있는지 설명해주세요

  • 폰 노이만 구조

김지현

네트워크

Q1. 클라이언트와 서버가 통신할 때 암호화할 수 있도록 서버의 공개키 제공한다면, 그럼 어떻게 암호화된 통신이 가능한가요? 1. 브라우저는 secret을 생성한후, 서버의 공개키를 이용해 암호화 2. 서버는 클라이언트로부터 전달받은 secret을 자신의 비공개키를 이용해 복호화 3. 이제 브라우저와 서버는 둘다 secret을 들고 있으며, 이를 이용해 암호화된 채널을 만들 수 있습니다.

Q2. 데이터 제공자의 신원을 확인하고 보장받는 게 인증에서 중요한 이유는 무엇인가요?

  • 클라이언트는 데이터 제공자가 제공해준 데이터를 사용할 수밖에 없습니다. 클라이언트는 서버에 데이터 요청을 하고 이후 받은 데이터를 이용해서 화면을 렌더링하는 등의 작업을 해야 합니다. 그렇기 때문에 요청 및 응답을 중간에서 가로채는 중간자 공격에 취약합니다. '중간자 공격'은 클라이언트와 서버 사이에서 공격자가 서로의 요청, 응답의 데이터를 탈취 및 변조하여 다시 전송하는 공격입니다.

Q3. HTTP 메소드 종류와 사용법을 CRUD 관점에서 설명해주세요.

  • 먼저 Create를 위해 POST를 사용할 수 있습니다. 서버나 특정 리소스에 엔티티를 제출할 때 사용되는 메소드입니다. Read를 위해서는 GET을 사용할 수 있습니다. 특정 리소스의 표시를 요청하며, GET 요청은 오직 데이터 수신만 합니다. 다음으로 Update를 위해서는 PATCH, PUT, POST를 사용할 수 있지만 PATCH가 대표적입니다. 리소스의 일부를 수정할 수 있으며, PUT은 리소스 전체를 교체합니다. 마지막으로 Delete는 이름 그대로 DELETE 메소드를 사용해 특정 리소스를 삭제할 수 있습니다.

운영체제

Q4. 멀티 프로세스로 처리 가능한 걸 굳이 멀티 스레드로 하는 이유는 무엇인가요? 1. 프로세스를 생성하여 자원을 할당하는 시스템 콜이 감소함으로써 자원의 효율적 관리가 가능하기 때문입니다. 2. 프로세스 간의 통신(IPC)보다 스레드 간의 통신 비용이 적어 작업들 간 부담이 감소하다는 장점이 있습니다. 대신, 멀티 스레드를 사용할 때는 공유 자원으로 인한 문제 해결을 위해 '동기화'에 신경써야 합니다.

Q5. 커널을 설명하고 어떤 기능을 수행하는지 말씀해주세요. 1. 커널은 운영체제(OS)의 주요 구성요소로, 컴퓨터 하드웨어와 프로세스를 있는 핵심 인터페이스 입니다. 메모리 관리, 프로세스 관리, 장치 드라이버, 시스템 호출 및 보안의 기능을 수행합니다.

임시은

1. HTTP란 무엇인가요?

  • HTTP는 HyperText Transfer Protocol의 약자로 WWW(World-Wide-Web)에 내재된 프로토콜입니다. WWW에서 하이퍼텍스트 문서를 교환하기 위하여 사용되는 통신 규약으로 OSI 7 계층, 그리고 TCP/IP의 4계층에 있는 프로토콜입니다. HTTP는 기본적으로 서버-클라이언트 환경에서 동작하고, 주로 신뢰성있는 전송 프로토콜 TCP를 사용하는 환경에서 사용됩니다. (HTTP/3 부터는 UDP를 사용한다.)
  • World Wide Web: 하이퍼텍스트 문서를 디스플레이하기 위한 클라이언트인 최초의 브라우저

2. HTTPS란 무엇인가요?

  • HTTPS는 HyperText Transfer Protocol 보안으로 표준 HTTP와 동일한 방식으로 작동합니다. 서버와 주고받는 데이터가 암호화되기 때문에 웹 사이트에 추가적인 정보를 제공합니다. 즉, 개인 데이터를 훔치거나, 해킹하거나 볼 수 없도록 작동합니다. HTTPS는 브라우저에서 URL을 확인하여 웹 사이트에 HTTPS 보호 기능이 있는 지확인할 수 있습니다. 또 도메인 이름 앞 에 자물쇠 아이콘이 있으면 그 사이트는 HTTP로 인해 안전한 것입니다.

3. 'HTTP와 HTTPS 차이점을 이야기해주세요.'

  • HTTPS(https://)는 SSL(Secure Socket Layer) 인증서를 사용하는 HTTP(http://)입니다. SSL(또는 TLS) 인증서는 일반 HTTP 요청 및 응답을 암호화합니다. 따라서 HTTPS는 HTTP보다 더 안전한 보안용 프로토콜이라고 할 수 있습니다.
  • HTTP와 HTTPS의 유일한 차이점은 HTTPS를 사용한 웹 페이지를 통해 전송되는 모든 데이터는 추가적인 보안 계층이 있습니다. 이를 TLS(전송 계층 보안) 프로토콜이라고 합니다. 모든 유형의 데이터는 변경되거나 손상될 수 없는 HTTPS 사이트를 통해 전달되며 제 3자로부터 보호됩니다.

4. 라우팅 테이블(Routing Table) 은 무엇인가요?

  • 라우팅 테이블은 주소를 이용하여 목적지까지 메시지를 전달하는 방법을 결정하는 경로 선택 과정입니다. 이 과정을 능동적으로 수행하는 장치를 라우터(Router)라 하고, 경로 선택을 위한 데이터베이스(목록)을 라우팅 테이블이라고 합니다. 라우팅 테이블은 목적지 네트워크 주소와 라우터의 출구 포트 정보, 최적 경로 산출을 위한 metrics 등의 정보를 포함합니다.

최낙주

1. 공인 IP와 사설 IP 차이

  • 공인 IP
   - 전세계에서 유일한 IP로 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소
   - 외부에 공개되어 있기 때문에 인터넷에 연결된 다른 장비로부터 접근이 가능
   - 그에 따라 방화벽 등과 같은 보안 설정을 해주어야 함
  • 사설 IP
   - 어떤 네트워크 안에서 사용되는 IP 주소
   - IPv4의 부족으로 인해 모든 네트워크가 공인 IP를 사용하는 것이 불가능하기 때문에 네트워크 안에서 라우터를 통해 할당받는 가상의 주소
   - 별도의 설정 없이는 외부에서 접근이 불가능


2. HTTP와 HTTPS의 차이

둘 다 웹 통신 프로토콜이지만, HTTPS는 HTTP의 기능에 TLS(Transport Layer Security) 혹은 SSL(Secure Sockets Layer)을 사용하여 암호화된 버전이다. 일반적으로 보안이 중요한 통신에서는 HTTPS를 사용하고, HTTP는 80 port, HTTPS는 443 port를 사용한다.

3. HTTPS 구축 방법

  • 직접 CA에서 구매한 인증키를 기반으로 구축
  • 서버 앞단의 HTTPS를 제공하는 로드밸런서를 두어 구축
  • 서버 앞단의 HTTPS를 제공하는 CDN을 두어 구축

쿠키와 세션의 차이

쿠키는 사용자 인증에 필요한 정보를 클라이언트에 저장하는 방식이고, 세션은 사용자 인증에 필요한 정보가 서버에 저장되는 방식. 사용자 정보가 서버에 저장되는 세션이 보안적인 측면에서는 더 우수하지만, 속도적인 측면에서는 서버에서 추가적인 처리가 필요한 세션보다 쿠키가 더 빠르다.

운영체제의 역할

1. CPU 스케줄링과 프로세스 관리 2. 메모리 관리 3. 디스크 파일 관리 4. I/O 디바이스 관리