컬쳐핏 면접으로 알고 갔는데 cs 관련해서 수두룩하게 질문을 받았다...

그래서 오늘도 부족했던 부분에 대해서 정리해보려 한다.
1. http와 https의 차이가 무엇인가요?
먼저, http란 클라이언트와 서버 간 통신을 위한 통신 규칙 세트 또는 프로토콜이다. 사용자가 웹 사이트를 방문하면 사용자 브라우저가 웹 서버에 http 요청을 전송하고 웹 서버는 http 응답으로 응답한다. 이 때 브라우저는 데이터를 일반 텍스트로 교환한다.
여기서 http 통신의 문제점이 드러난다. 바로 '일반 텍스트'로 교환을 하기 때문이다. 즉, 암호화되지 않은 데이터를 교환하기 때문에 제3자가 가로채고 읽을 수 있다. 이를 해결하기 위해 https는 http 요청 및 응답을 SSL 및 TLS 기술에 결합하여 또 다른 보안 계층을 추가한다.
관련해서 SSL, TLS도 있고 내용이 방대에서 다음 블로그에서 네트워크 창을 확인하며 다시 자세히 알아볼 예정이다.
출처: https://aws.amazon.com/ko/compare/the-difference-between-https-and-http/
2. 웹 서버와 WAS(Web Application Server)의 차이는 무엇인가요?
웹 서버란, 클라이언트로부터 http 프로토콜을 기반으로 정적인 컨텐츠를 제공하는 서버다. (ex: Apache Server, NginX...)
- WAS를 거치지 않는 경우: 정적인 컨텐츠를 제공
- WAS를 거치는 경우: 동적인 컨텐츠라면 클라이언트의 요청을 WAS의 보내고, WAS가 처리한 결과를 클라이언트에게 제공
WAS란, DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 서버다.
비즈니스 로직을 적용하고 다른 서버 및 서드 파티 시스템과 통신하여 웹 서버로부터 받은 요청을 수행하며 새로운 파일을 웹 서버에 반환한다.
출처: https://aws.amazon.com/ko/compare/the-difference-between-web-server-and-application-server/
https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
3. ec2의 배포 과정에 대해 설명해주세요.
이건 글만 봐서는 이해가 잘 안돼서 ec2로 한번 배포해봐야할 듯...
4. http 통신 외에 무엇이 있을까요?
양방향 통신, 롱 폴링, gRPC, FTP/SFTP 등등... ㅜ
5. websocket의 역할은 무엇일까요?
웹 소켓이란 단일 연결을 통해 지속적이고 전이중 통신 채널을 설정한다. 즉, 데이터는 클라이언트에서 서버로, 그리고 반대로 독립적이고 동시에 전송될 수 있으며 여러 요청이 필요하거나 응답을 기다릴 필요가 없다. 'pnpm run dev', 즉 개발 서버로 실행했을 때 코드를 저장할 시 브라우저에 자동으로 반영되는 것을 볼 수 있다.


헤더의 요청과 응답에서 확인할 수 있다.
출처: https://apidog.com/kr/blog/long-polling-vs-websocket-2/
cs를 소홀히 하지 말자...!