AI 질의응답-웹 작동과정
서론
다른분들이 본 면접 질문들 중 내가 받았다면 대답을 못하지 않았을까 하는 것들이 보여 그것들에 대해 공부해보기로 했다.
질의응답
나의 말:
네이버 포탈에 들어갔고, 뉴스 기사를 딸깍 클릭했을 때 부터 뉴스 기사가 랜더링되는 순간까지 집 컴퓨터, 공유기 등 관련된 모든 것들이 어떻게 작동하나요? 아주 작은 것까지 설명해주세요.
ChatGPT의 말:
좋아, 이건 꽤 흥미롭고 복잡한 질문인데 아주 자세히 풀어줄게.
“네이버 포털 → 뉴스 클릭 → 화면에 기사 보임”
이 과정은 컴퓨터, 브라우저, 네트워크, 서버 등 수많은 요소가 협업하는 종합 예술이야.
🧠 전제 시나리오
- 넌 집에서 PC로 Chrome 브라우저를 열고 naver.com 접속
- 메인 페이지에서 뉴스 기사 하나를 클릭함
- 뉴스 페이지가 브라우저에 랜더링되어 보임
🛠 전체 구조 한눈에 보기
- 클릭 → 브라우저 요청 발생
- 운영체제 → DNS 조회
- 라우터(공유기) → 패킷 전송
- 인터넷 → 경로 설정, 백본망 타고 네이버 서버 도착
- 네이버 서버 → 요청 처리 & 응답
- 응답 수신 → 브라우저 HTML 파싱 & 리소스 요청
- JS, 이미지, CSS 등 추가 다운로드
- DOM 트리 생성 → 렌더링
- 최종 페이지 사용자에게 보여짐
🔍 단계별 상세 설명
1. 🖱 클릭 → HTTP 요청 준비
- 사용자가 뉴스 링크를 클릭
- 브라우저는
<a href="https://news.naver.com/article/..." />
같은 링크를 감지 - 브라우저의 네트워크 모듈이 새 페이지 요청 준비
2. 🧭 DNS 질의 (도메인 → IP)
- 브라우저는
news.naver.com
을 IP 주소로 바꾸기 위해 OS에 DNS 요청을 보냄 - OS는 DNS 캐시 확인 → 없으면 공유기를 통해 ISP의 DNS 서버에 요청
- DNS 응답으로
news.naver.com → 223.130.195.95
같은 IP 획득
3. 🌐 TCP 연결 및 TLS 암호화
- 브라우저는 해당 IP에 TCP 연결 (3-way handshake) 시작
- SYN →
- SYN-ACK ←
- ACK →
- HTTPS 요청이므로, TLS 핸드셰이크로 암호화 협상도 진행됨
- 공개키 기반 암호화
- 인증서 확인 (CA로부터 발급된지 확인)
- 대칭키 공유
4. 📡 요청 전송 (HTTP GET)
- 이제 암호화된 상태로
GET /article/xxxxx
요청 전송 - 헤더에는 쿠키, 브라우저 정보(User-Agent), 언어 설정 등이 포함됨
5. 🖥 네이버 서버 동작
서버는 요청을 처리하기 위해 다음을 수행:
- 웹 서버(Nginx/Apache) → 요청 분기
- 백엔드 서버 (Spring, Node 등) → DB에서 기사 조회
- DB 서버에서 기사 본문, 이미지 URL, 작성일 등 조회
- HTML 템플릿에 데이터 채워서 완성된 HTML 생성
6. 🔄 HTTP 응답 전송
- HTTP 200 OK + Content-Type: text/html
- 응답 본문: HTML 코드
- 패킷 단위로 분할되어 다시 인터넷을 타고 클라이언트(브라우저)로 전송
7. 🧱 브라우저 렌더링 준비
- HTML 파싱 → DOM 트리 생성
<link>
태그로 CSS 요청 → CSSOM 트리 생성<script>
태그로 JS 요청<img src>
등 리소스 추가 다운로드- DOM + CSSOM → 렌더 트리 생성
8. 🖼 렌더링 (그리기)
- 브라우저는 렌더 트리를 기반으로 레이아웃 계산
- 픽셀 단위로 페인팅
- GPU가 있다면 합성 단계에서 하드웨어 가속
9. 👁 사용자에게 보임
- 모든 리소스 로딩 후, 페이지 완성
- 이미지, 글꼴, 스타일, 자바스크립트가 적용된 형태로 사용자에게 보임
🏠 네트워크 관점에서 장치 역할
👨💻 PC (클라이언트)
- 브라우저 실행
- OS → DNS 캐시 확인
- TLS/SSL 핸드셰이크, TCP 소켓 생성
📶 공유기 (라우터)
- NAT 사용하여 내부 IP → 공인 IP로 변환
- DNS 요청 전달
- 외부 서버와 연결된 패킷 라우팅
🌐 ISP (인터넷 제공업체)
- DNS 서버 운영
- 너와 네이버 사이를 연결하는 백본망 접근
✨ 중간에 사용되는 기술 요약
단계 | 기술 |
---|---|
도메인 해석 | DNS |
보안 통신 | TLS/SSL |
패킷 전송 | TCP/IP |
데이터 전송 | HTTP/HTTPS |
서버 처리 | 웹 서버 + 백엔드 + DB |
렌더링 | HTML/CSS/JS + DOM/CSSOM |
최적화 | 캐시, CDN, 비동기 로딩 등 |
이 과정을 몇 밀리초~수초 안에 처리하는 게 인터넷 기술의 위대함이지 😎
필요하면 각 단계 별로 더 깊게 파헤쳐줄 수 있어!
어떤 부분이 제일 흥미로웠어?
정리
우리가 웹에서 어떤 링크를 클릭했을 때 브라우저에서, 네트워크에서 무슨 일이 일어나는지 대강의 구조를 알 수 있었다. 자세한 것도 하나씩 알아가야겠다.