아닙니다
그렇게 보일 뿐
Spring Boot != WAS (Web Application Server)
하지만!!!
내장 WAS(Tomcat)를 "포함" 할 수 있기 때문에
아하! 그래서 스프링 부트보고 서버라고 하는 거구낭....
사실 서버'처럼' 작동하는 건데 다들 그냥 서버라고 말하는 거였다.
Spring Boot = 서버처럼 작동하는 프로그램
근데 어떻게 서버처럼 작동한다는 거야?
= 내장된 WAS 덕분에 HTTP 요청을 처리할 수 있게 되기 때문!
근본적 질문! '서버'란 건 뭐야?
그래서 우리가 흔히 말하는
"서버 만들었어요"에서의 서버는 논리적 서버이다.
논리적 서버는 쉽게 말해 프로그램(스프링부트, Nginx, Tomcat)이다.
cf) 물리적 서버는 내 pc나 EC2를 말한다
그래서 여기서의 서버는
"HTTP 요청을 받고 응답하는 프로그램(소프트웨어)을 만들었어요"
인 것이다.
- 서버의 역할 = 클라이언트의 요청 받고 응답 반환하기
- 서버의 종류 = 웹서버 & WAS
그러면 웹 서버랑 WAS랑 무슨 차이예요?
웹 서버
- 정적인 요청을 처리하는 서버
- 역할
- 브라우저에서 요청한 정적 리소스 (HTML, CSS, JS, 이미지) 제공
- WAS 앞에서 리버스 프록시 역할 수행
- 로드 밸런싱
- 동작 방식
- [사용자] -> ~~.html 주세요 -> [웹서버] -> 요청하신 파일 여기용
- 종류
WAS
- 동적인 요청을 처리하는 서버
- 역할
- 사용자의 요청을 받아 비즈니스 로직 수행 후, 동적인 응답 생성
- DB와 연동하여 데이터 저장/조회
- 동작 방식
- [사용자] -> /user?id=1 주세요 -> [WAS] -> DB 조회 후 응답
- 종류
많이 쓰이는 조합 Nginx(웹서버) + Tomcat(WAS)
[사용자] -> [웹서버 Nginx (정적처리)] -> [WAS Tomcat (동적 처리)] -> [DB]