첫 번째 게시글에서 조금 덜 얘기한 부분이 있는 것 같아 급하게 두 번째 게시글을 작성하게 되었습니다. 분량은 많지 않지만 한 번쯤은 볼만한 내용이라고 생각합니다.
Web 관련 면접 준비 2
목차
위의 목차를 클릭하면 해당 글로 자동 이동 합니다.
면접 질문 및 대답
1. www.google.com을 입력했을 때 일어나는 과정은?
1) 도메인 이름에 해당하는 IP 주소를 DNS로부터 가져온다.
- DNS Query를 날리며, IP주소를 찾을 때까지 DNS 서버들을 계층적으로 조회한다. 이 과정을 Recursive Search라고 부른다.
2) IP 주소로 요청을 보낸다.
- TCP/IP 프로토콜을 통해 보낸다.
- IP 프로토콜의 특징인 비신뢰성, 비연결성을 해결하기 위해 TCP 프로토콜이 같이 사용되는 것이다.
- 먼저, 3-way-handshake 과정을 통해 클라이언트와 서버가 연결된다.
3-way-handshake란?
1. 클라이언트는 접속 요청 패킷 (SYN: Synchornize)를 서버로 전송한다.
2. 서버는 SYN을 받아 요청 수락 응답 패킷 (ACK:Acknowledgement)를 클라이언트로 전송한다. 동시에 서버도 클라이언트에 SYN을 보낸다.
3. 클라이언트는 SYN을 받아 ACK를 서버에게 보낸다.
4. 클라이언트와 서버가 데이터를 주고받는다.
- 하지만 HTTP 프로토콜이 비연결성을 지향하기 때문에 데이터 전송이 완료되면 연결이 바로 끊어진다.
- 이때, 4-way-handshake 과정을 거친다.
4-way-handshake란?
1. 클라이언트는 서버에게 연결 종료 요청을 보낸다.
2. 서버는 클라이언트에게 수락 메시지를 보낸다.
3. 이후, 서버의 통신이 완료되면 클라이언트에게 연결 종료를 알린다.
4. 클라이언트가 여기에 응답한다.
- 이때, 연결이 바로 끊어지는 것은 아니고, 아직 수신하지 못한 패킷이 남아있을 수 있기 때문에 조금 더 기다린다.
3) 웹 서버 혹은 WAS가 요청을 처리한다.
4) WAS는 로직 수행 결과를 웹 서버에 전달하고, 웹 서버는 브라우저에 HTML을 전달한다.
5) 브라우저는 이렇게 받아온 HTML을 렌더링한다.
2. SPA (Single Page Application) 란?
- 하나의 페이지를 동적으로 변경하는 웹 앱이다.
- 데이터의 양이 증가하면서 매번 서버에서 페이지를 만들어서 제공하는 것이 버거워졌다.
- 또, 서버에서 페이지를 제공하게 되면, 서로 다른 종류의 클라이언트가 있을 경우 각 클라이언트에 맞게 페이지를 가공해야 하는 필요성이 생긴다.
- 이로 인해서 프론트와 백을 명확하게 구분하게 되었다.
- 기본적으로는 AJAX를 사용한 콘텐츠 로드 방식이 존재한다.
- 초기 사이트 접속 시 전체 구성을 다 받아야 하기 때문에 로딩이 조금 오래 걸린다.
- 데이터 처리와 같은 핵심 로직이 들어있으면, 사용자에게 노출될 수도 있다.
- 검색엔진 최적화가 어렵다. 페이지 탐색 봇들은 정적인 글들을 긁어오는데, SPA의 경우 JS에 담겨서 동적으로 페이지가 채워지기 때문에 탐색 봇들이 글들을 파싱할 수 없다.
다음 게시글은 데이터베이스와 관련된 게시글이 될 것 같다. 락이나 인덱스, 샤딩과 같은 개념들을 공부해서 올려보도록 할 계획이다.
'취준' 카테고리의 다른 글
Spring 관련 면접 질문 준비 2 (2) | 2025.03.18 |
---|---|
펄어비스 2025년 2월 웹 백엔드 개발자 신입/경력 상시채용 후기 (0) | 2025.03.02 |
Web 관련 면접 질문 준비 (0) | 2025.02.03 |
Spring 관련 면접 질문 준비 (0) | 2025.02.01 |
Java 관련 면접 질문 준비 (0) | 2025.01.30 |