네이버 면접관이 알려주는 1,000,000++ TPS를 위한 NGINX
개발 · 프로그래밍 · 백엔드
설정은 아는데
왜 그렇게 했냐고 물으면
NGINX 설정 파일은 인터넷에 널려 있습니다. 복사하면 대체로 돌아가고요. 문제는 그다음입니다. 면접에서든 장애 상황에서든 "왜 이 값이냐"는 질문이 오면 막힙니다. 이 강의는 설정을 외우는 대신 구조를 이해하게 만듭니다.
- 기초 문법부터 운영까지Context Block · Process Model · Reverse Proxy
- 복사해 쓰는 템플릿성능·압축 설정을 바로 쓸 수 있는 형태로
- 현직 개발자 2인네이버 본사 10년차 · 판교 플랫폼 서버 개발
NGINX는 요청을 받아 뒤쪽 서버로 넘기는 앞단 서버입니다. 웹 서버이자 리버스 프록시이고, 로드 밸런서로도 씁니다. Apache와 무엇이 다른지부터 시작합니다
이 강의가 출발하는 자리
돌아는 가는데 설명은 못 합니다
흔한 상태
설정을 복사한다
worker_processes, keepalive_timeout, gzip. 어디선가 본 값을 그대로 붙입니다. 돌아갑니다.
막히는 자리
근거를 못 댄다
트래픽이 늘었을 때 무엇을 올려야 하는지, 이 설정이 어디에 상속되는지 답이 안 나옵니다.
설정 파일은 부모와 자식 관계로 상속됩니다. 그 규칙을 모르면 어느 블록에 써야 하는지도 감으로 정하게 됩니다. 이 강의는 그 구조부터 잡습니다.
이 강의가 시작된 자리
실제로 오간 대화입니다
서로 다른 회사에 다니는 현직 개발자들이 모인 자리에서 NGINX 이야기가 나왔습니다. 그 대화가 이 강의의 출발점이었어요.
인프런 지식공유자들이 모인 오픈채팅에서 오간 이야기입니다.
무엇을 배우나
구조를 잡고, 템플릿으로 굳힙니다
- Apache와의 차이왜 NGINX가 나왔는지부터 봅니다. 구조가 다르면 설정 방식도 달라집니다
- Context Block설정이 부모에서 자식으로 어떻게 상속되고 어디서 덮어써지는지
- 모듈화include로 파일을 나누고 확장 가능한 형태로 추상화합니다
- Process Model처리량 관점에서 워커를 어떻게 잡을 것인가
- 성능·압축 템플릿그대로 복사해 쓸 수 있는 기본형을 만듭니다
- Edge Case 패턴표준 문법으로 안 되는 상황을 NGINX 방식으로 우회합니다
- Reverse Proxy앞단에서 트래픽을 어떻게 받아 뒤로 넘기는가. 가장 비중이 큰 섹션입니다
면접에서
같은 질문, 두 번째 질문에서 갈립니다
첫 질문은 대체로 넘어갑니다. 면접관은 한 번 더 파고들고, 거기서 아는 사람과 외운 사람이 나뉩니다.
- Q. NGINX는 어떤 역할을 하나요?
- A. 리버스 프록시 역할을 하고, 서버와 직접 통신하지 않는 형태로 아키텍처를 구성할 수 있는 것으로 알고 있습니다.
- Q. 그러면 리버스 프록시 관점으로만 봤을 때 Connection 차이가 어떻게 발생하나요?
- A. 어… 잘 모르겠습니다.
- Q. 그러면 리버스 프록시 관점으로만 봤을 때 Connection 차이가 어떻게 발생하나요?
- A. 클라이언트와 서버가 하나로 이어지는 구조가 아니라 커넥션이 두 개로 분리됩니다.
- 클라이언트는 NGINX와 통신하고, NGINX가 그 요청을 받아 뒤쪽 서버와 다시 통신합니다.
- 이 계층 구조 덕분에 NGINX는 요청을 넘기는 역할만 하는 게 아니라 로드 밸런싱, Keep-Alive 관리, 인증·인가까지 앞단에서 묶어서 처리할 수 있습니다.
외운 문장으로는 두 번째 질문을 못 넘깁니다. 구조를 알면 그 자리에서 만들어 말할 수 있습니다.
커리큘럼
무엇을 어떤 순서로 다루나
앞쪽에서 문법과 구조를 잡고, 뒤쪽에서 실전 패턴과 Reverse Proxy로 갑니다.
02
레거시 시스템 vs NGINX 비교 & 실습 환경 구성
- Apache의 단점을 해결한 NGINX Core Concept
- NGINX 설치 및 환경 구성 (무중단 배포를 위한 명령어)
03
그대로 복사해서 사용하시면 됩니다 — NGINX 기본 사용법
- 부모 자식 관계를 기반으로 하는 NGINX의 Context Block
- NGINX 표준 문법 특수한 상속 기법과 덮어쓰기 방식
- Include와 확장성을 고려하여 추상화 개념을 도입한 NGINX 모듈화 패턴
- NGINX의 처리량 관점에서의 Process Model Setting
- 성능을 최적화하는 방법과 설정하기 위한 기본 NGINX Template 포멧
- 네트워크 전송 관점의 최적화를 위한 Compression Settings Template
04
Edge Case를 구현하기 위한 NGINX만의 꼼수 패턴
- 정적 파일 서빙 Path Matching 기법 root와 alias
- 여러 도메인 호스팅을 위한 Virtual Host (Server Block) Setting
- Redirection과 Rewrite Directive
05
Reverse Proxy 관점에서의 NGINX 사용법
- HTTP1.0/HTTP1.1을 기반으로 하는 Dynamic Reverse Proxy
- WebSocket을 기반으로 하는 Dynamic Reverse Proxy 및 서버 기능 테스트
- Load Balancing Using NGINX 그리고 5가지 알고리즘
- NGINX에서의 성능 최적화의 모든것 [ Feat. Performance Optimization ]
- HTTPS SSL/TLS CA 인증서 적용 및 HTTP/2 Protocol 구현하기
이런 분께
이 강의는 누구를 위한 강의인가요
- NGINX 설정은 외웠는데 "왜 그렇게 했냐"는 질문에 매번 막히는 개발자
- 면접에서 CS·네트워크 질문만 나오면 머릿속이 하얘지는 취준생
- Reverse Proxy와 트래픽 흐름을 실제 관점으로 설명하지 못하는 주니어
- 앞단 서버 설정을 남의 것 복사해서 쓰고 있는 분
채용 공고
실제 공고는 무엇을 요구하나요
인프라 조직이 따로 있는 회사든 아니든, 백엔드 공고의 요구 스택 안에 NGINX가 들어가 있습니다. 실제 공고에서 그대로 옮긴 항목입니다.
서비스 개발
우대 사항
- 대규모 분산 시스템 개발, 운영 경험이 있으신 분
- L4/L7 로드밸런서(HAProxy, Nginx 등) 및 DNS 기반의 인프라 아키텍처 구성 경험이 있으신 분→ 로드 밸런싱 5가지 알고리즘
- AWS, 오픈스택 사용 경험이 있으신 분
- GSLB, VIP, TLS 인증서 운영 등 고가용성 서비스 인프라 구성 경험이 있으신 분→ SSL/TLS · HTTP/2
- 다양한 조직과의 커뮤니케이션 경험이 있으신 분
로드 밸런서와 TLS 인증서는 마지막 섹션에서 직접 붙여 봅니다. 공고에 적힌 단어를 강의 안에서 실제 설정으로 만나게 됩니다.
사내 HR 시스템 개발자
우대 사항
- HR 시스템에 대한 이해
- 사내 시스템 개발 경력
- 컴퓨터 관련 학과
- Java, Spring, DBMS, Angular, React, Vue, JQuery, mybatis, nginx, tomcat 사용 경험→ 요구 스택에 포함
인프라 직군이 아닌 사내 시스템 공고인데도 nginx가 tomcat과 나란히 적혀 있습니다. 앞단 서버는 기본값으로 취급됩니다.
서비스 개발자
담당 업무
- JavaScript 및 Vue.js 개발
- Spring Boot 기반의 API 서버 설계 및 개발
- MySQL 및 스키마 설계
- Nginx/Apache2 설정→ 섹션 2부터 다룹니다
우대가 아니라 담당 업무에 들어 있습니다. 이 강의는 Apache와 NGINX의 구조 차이에서 출발합니다.
채용 시장
서류로는 잘 증명되지 않습니다
기업이 개발자를 뽑을 때 가장 어려워하는 지점을 조사한 결과입니다. 상위 두 항목이 모두 "적혀 있는 걸 믿기 어렵다"는 이야기입니다.
출처: 그렙 "개발자·비개발자 역량평가" 서비스 이용 현황 및 의견조사. 그래서 면접은 "무엇을 써 봤는가"가 아니라 "왜 그렇게 했는가"를 묻습니다. 이 강의가 그 층위를 다룹니다.
지금 시장
AI가 개발자를 대체한다는 이야기
신입 채용은 줄고, 기업은 검증된 사람만 뽑으려 합니다. 최근 몇 달 사이 나온 기사들입니다.
- 사상 최대 실적을 낸 크래프톤이 인력 감원에 나섰습니다. 'AI 퍼스트' 기업으로 전환하겠다는 이유였습니다.
- SW 전문기업들이 신입 개발자 채용을 중단하고 있습니다. 초급 개발자 채용이 77% 급감할 것이라는 전망도 나왔습니다.
- 게임 디자이너의 53%가 "AI가 내 일을 대체할 것"이라고 답했습니다. 권고사직 사례도 보고됐습니다.
기업이 불안한 만큼, 뽑히는 쪽은 더 분명한 차이를 보여줘야 합니다. 공부는 결국 스스로 하는 것이지만, 무엇을 어떤 관점으로 보느냐에 따라 같은 시간을 쓰고도 설명할 수 있는 깊이가 달라집니다. 이 강의는 그 관점을 넘기려고 만들었습니다.
수강평
먼저 들은 분들의 이야기
인프런 수강평에서 그대로 옮겼습니다.
"사실 NGINX라는 게 시간 내서 공부하기에는 굉장히 어렵고 손이 잘 안 가는데, 이렇게 짧은 시간에 핵심만 알려주셔서 큰 도움이 되었습니다. 감사합니다."
lsls ks · 94% 수강 후 작성
"내용 자체가 굉장히 어려운 개념들이 많은데 정말 쉽게 잘 풀어서 설명해 주셔서 많은 관점에서 배웠던 것 같습니다. 이해가 가지 않아도 그만큼 실습 코드 자료도 많고 시각적인 자료가 많아서 가성비 있게 잘 들었네요."
Jang Jaehoon · 88% 수강 후 작성
"이 짧은 시간에 실습을 몇 개나 했는지… 실습 자료가 많아서 너무 유익하게 잘 봤습니다."
02년생 개발자 · 88% 수강 후 작성
"강의 내용을 기반으로 잡고 개인적으로 좀 더 학습하면 좋을 것 같습니다. 뭔가 방향을 잡아 주고 개념을 잡아 주는 느낌의 강의였습니다."
에이미 · 94% 수강 후 작성
강사
현직 개발자 둘이 함께 만들었습니다
네이버 본사 10년차 백엔드 개발자 Ande와, 판교 플랫폼 서버 개발자 Hong이 함께 만들었습니다.
Ande
네이버 본사에서 서버를 개발하는 10년차 백엔드 개발자입니다. 강의에서 다루는 구조와 판단 기준은 대부분 현장에서 실제로 겪으며 정리한 것들이에요. 질문은 편하게 남겨주세요.
"트래픽이 늘 때 무엇을 올려야 하는지는 값이 아니라 구조를 알아야 나옵니다."
現 네이버 서버(본사) 개발자 · 前 신세계 그룹 백엔드 개발자 · 前 헬스케어 스타트업 서버 개발자 · 컴퓨터공학 전공
Hong
판교에서 플랫폼 서버 개발을 담당하고 있습니다. 직접 공부한 방법과 실무에서 마주치는 문제·해결책을 나누려고 지식공유자 활동을 이어가고 있어요. 강의는 혼자가 아니라 현업의 여러 개발자와 함께 만듭니다.
"설정 파일 한 줄이 왜 거기 있는지 답할 수 있으면, 처음 보는 서버도 읽힙니다."
자주 묻는 질문
NGINX 강의 자주 묻는 질문
Q.NGINX를 처음 써도 들을 수 있나요?
⌄
Q.설정 파일을 그대로 가져다 쓸 수 있나요?
⌄
Q.면접 준비에 도움이 되나요?
⌄
Q.Reverse Proxy는 얼마나 깊게 다루나요?
⌄
Q.Edge Case 섹션은 무엇을 다루나요?
⌄
함께 이야기 나눠요
개발자 오픈채팅 커뮤니티
혼자 막히면 오래 걸립니다. 강의를 듣다 걸리는 부분, 자기 서비스에 적용하면서 생기는 질문, 커리어와 현업 이야기까지 편하게 나누는 공간이 따로 있습니다.
무엇을 나누나요
실무에서 실제로 겪는 문제, 다른 분들이 어떤 구조를 골랐는지, 그리고 개발자 커리어에 대한 이야기를 나눕니다. 강의 관련 질문도 환영합니다.
"막히는 자리는 대체로 남들도 막힙니다. 먼저 지나간 사람에게 물어보는 게 제일 빠릅니다."