개발노트

그록이 스스로를 백엔드 5년차 라고 하면서 만들어준 답변 본문

서버 개발

그록이 스스로를 백엔드 5년차 라고 하면서 만들어준 답변

mroh1226 2025. 11. 17. 20:42
반응형

안녕하세요!
회사에서 “웹 서버랑 WAS 차이 뭐야?”부터 “TLS는 누가 종료해?” “헬스 체크 1초마다 하면 포트 깜빡거리나?”까지
실무 선배한테 물어보면서 정리한 내용을 그대로 Q&A로 올려봅니다.
(실제 채팅 로그 기반 99% 재현)
Q1. 웹 서버에 호스팅도 포함인가요? 호스팅은 WAS로 봐야 하나요?
A. 정적 파일(HTML, CSS, 이미지)만 올리는 건 → 웹 서버(Nginx, Apache)만 있어도 충분
동적 로직(로그인, DB 조회 등)은 → WAS(Tomcat, Kestrel, Spring Boot 등)가 담당
요즘은 Spring Boot, ASP.NET Core, Next.js가 웹 서버 + WAS 역할을 하나로 합쳐버림 → 구분 의미 거의 없어짐
Q2. 리버스 프록시랑 로드밸런서는 같은 거 아닌가요?
A. 모든 로드밸런서는 리버스 프록시지만, 모든 리버스 프록시는 로드밸런서가 아니다
실무에선 Nginx, ALB, YARP가 둘 다 역할 수행 → 그냥 같은 말처럼 씀
Q3. 인증/토큰 검증은 웹 서버에서 하나요 WAS에서 하나요?
A. 2025년 기준
대기업/금융 → Nginx나 YARP 같은 리버스 프록시에서 검증 (부하 줄임)
중소/스타트업 → ASP.NET Core 미들웨어에서 검증 (개발 속도 우선)
→ 미들웨어가 어디서 돌리느냐가 곧 누가 검증하느냐!
Q4. TLS 종료(TLS Termination)는 뭐고 어디서 해야 하나요?
A. 클라이언트와 HTTPS로 통신하다가 내부는 HTTP로 바꿔주는 것
→ 2025년 실무 95%는 ALB/Nginx/Cloudflare에서 종료
→ 내부 서버(Kestrel)는 HTTP만 열고 가볍게 운용
Q5. HTTPS Redirect는 뭐고 어떻게 설정하나요?
A. HTTP(80) → HTTPS(443) 강제 리다이렉트
→ Kestrel이 80+443 둘 다 들으면 app.UseHttpsRedirection() 한 줄로 끝
→ ALB/Nginx 앞에 두면 거기서 301 처리
Q6. HSTS는 뭐고 꼭 써야 하나요?
A. 브라우저에게 “이 사이트는 앞으로 영원히 HTTPS만 써!”라고 강제 기억시키는 헤더
→ SSL Stripping 공격 완전 차단 → 무조건 켜세요 (app.UseHsts())
Q7. 표준 포트 못 쓰면 어떻게 하나요? (9000/9001 등)
A. HTTPS 9000 + HTTP 리다이렉트용 9001 → Kestrel이 둘 다 Listen
외부 호출 → Let’s Encrypt 인증서
내부망 호출 → 그냥 HTTP 9001만 써도 됨
Q8. HTTP는 왜 Stateless라고 하나요? TCP는 Stateful 아닌가요?
A. TCP는 철저히 Stateful (연결 상태 다 기억)
HTTP는 그 위에서 “나는 아무것도 안 기억할게!” → Stateless
그래서 JWT/쿠키로 우리가 직접 상태 관리
Q9. AWS LB는 진짜 서버 살아있는지 계속 확인하나요?
A. 네 → Health Check (기본 10초마다 /healthz로 확인)
죽은 서버는 자동으로 트래픽 차단 → 무중단 서비스 가능
Q10. 헬스 체크 1초마다 하면 포트가 깜빡거리나요?
A. 헬스 체크용 연결만 매번 새로 만들고 바로 끊음
실제 사용자 요청은 Keep-Alive로 계속 유지 → 부하 거의 없음
핵심 요약 표 (티스토리 테이블로 그대로 복사 가능)
주제
2025년 실무 정답 (한 줄)
웹 서버 vs WAS
정적 → 웹 서버 / 동적 → WAS / 요즘은 하나로 합쳐짐
리버스 프록시
Nginx, ALB, YARP → TLS 종료 + LB + 헬스 체크 다 함
토큰 검증 위치
성능 우선 → 리버스 프록시 / 개발 속도 → ASP.NET Core 미들웨어
TLS 종료 위치
99%는 ALB/Nginx/Cloudflare → 내부는 HTTP만
HTTPS Redirect
80 → 443 강제 리다이렉트 → Kestrel이 80도 들으면 UseHttpsRedirection() 한 줄
HSTS
무조건 켜기 → app.UseHsts() + max-age=1년
비표준 포트 (9000)
HTTPS 9000 + HTTP 9001 → 외부는 공인 인증서, 내부는 HTTP만
HTTP Stateless
서버가 아무것도 기억 안 함 → JWT/쿠키로 우리가 관리
TCP
완전 Stateful → 연결 상태 다 기억
AWS LB 헬스 체크
5~10초마다 /healthz → 죽은 서버 자동 격리

그록 소크라테스 모드로 처음 사용해봤는데 말투도 재밌고 좀 뻔뻔한게 더 귀?눈에 잘들어온다 맘에 드는거 같음

반응형

'서버 개발' 카테고리의 다른 글

대용량 트래픽 처리 관련 용어 정리  (0) 2024.07.15
Comments