관리 메뉴

제뉴어리의 모든것

[Section4] 기술 면접 본문

코드스테이츠/정리 블로깅

[Section4] 기술 면접

제뉴어리맨 2022. 10. 19. 13:55

Section 4에서 선정한 질문이고, 답변하려고 정리 해본 내용이다.

 



5. HTTP와 HTTPS 각각에 대해 설명하고 둘의 차이점을 말씀해 주세요.
HTTP란 하이퍼텍스트를 교환하기 위한 통신 규약을 말하며 80 포트를 사용하는 프로토콜입니다.
HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동합니다.
이러한 HTTP는 상태를 가지고 있지 않는 Stateless(스테이트리스) 의 특징을 가지고 있습니다.
이러한 특징의 이유는, 클라이언트로부터의 요청을 서버로 들어오면 해당 요청을 처리하는 동안에만 연결을 맺고, 요청에 대한 처리 결과를 되돌려 주면서 해당 연결을 끊어버리기 때문입니다.
그런데 이러한 HTTP 통신의 보안적인 취약점이 바로 전송되는 데이터가 암호화 되지 않은 평문의 형태라는 것입니다.
그렇기 때문에 생겨난 것이 HTTPS입니다.
HTTPS는 HTTP에 암호화 기능이 추가된 프로토콜을 의미하며
HTTP 통신으로 주고받는 데이터를 암호화 알고리즘을 이용하여 암호화하여서 전송하는것을 말합니다. 
HTTPS를 사용하는 목적으로는 데이터의 암호화와, 인증서로를 통해 데이터를 요청할 서버의 안정성을 보장 받을 수 있다는 점입니다. 



6. HTTPS의 동작 방식을 설명해 주세요.
1. 클라이언트가 서버로 랜덤한 메세지를 보내면서 통신 요청을 신청합니다.
2. 요청을 받은 서버 또한 랜덤 데이터와 함께 인증서, 그리고 데이터를 암호화할 공개키를 전달합니다.
3. 클라이언트는 전달받은 인증서를 해당 인증서를 발급한 사이트에서 검증을 합니다.
4. 클라이언트는 유효한 인증서라는 것을 확인했다면, 앞으로 통신에서 사용될 대칭키를 만들어서 서버의 공개키로 암호화 시켜 서버로 전달한다.
5. 서버는 클라이언트로 넘어 온 데이터를 자신의 개인키로 복호화 하여 대칭키를 확인한다.
6. 이제 앞으로의 데이터 통신은 클라이언트와 서버만 알고 있는 대칭키로 암호화, 복호화 하여 통신한다. 




27 - vmware와 같은 가상머신이랑 Docker가 무슨 차이가 있는지 설명해 주세요.
가상머신과 도커의 큰 차이점은, OS의 생성 유무가 있습니다.
가상머신은 현재 로컬 OS위에 또 다른 OS가 생성되어 그 위에 다른 환경이 구성되는 것이라면,
도커는 현재 로컬 OS 위에 존재하는 하나의 프로세스일 뿐입니다.
이런 의미는 가상머신은 물리적으로 존재하지 않을 뿐 실제 또 다른 컴퓨터가 존재하는것과 같습니다.
하지만, 도커는 하나의 컴퓨터에 다른 프로세스와는 프로세스, 네트워크, 파일 시스템이 격리된 하나의 프로세스가 생성된것을 의미합니다.
그리고 이러한 도커의 격리 환경을 만들 수 있도록 해주는 기술은
namespace와 cgroup 이라는 기술이 있습니다.

namespace는 프로세스를 독립시켜주는 가상화 기술이고
cgroups 는 컴퓨터의 자원을 제어 할 수 있게 해주는 기술 입니다.




참조

https://velog.io/@averycode/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-HTTP%EC%99%80-HTTPS-%EB%8F%99%EC%9E%91-%EA%B3%BC%EC%A0%95

https://mangkyu.tistory.com/m/98

https://rachel-kwak.github.io/2021/03/08/HTTPS.html

https://velog.io/@yanghl98/Network%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-HTTP-HTTPS

https://devjem.tistory.com/m/3

https://brunch.co.kr/@sangjinkang/38