home..

Spring MVC 1주차

1주차

HTTP 기반 데이터 전송


웹 서버(Web Server)


WAS (Web Application Server)


웹 서버와 WAS의 관계


API 서버는 웹 서버 없이도 가능


✅ 핵심 요약: 왜 서블릿이 필요하고, 어떻게 동작하는가?

📌 1. POST 요청 처리 흐름

클라이언트가 form에 데이터를 입력하고 제출 (POST)

→ 웹 브라우저가 HTTP 메시지 생성

→ 서버로 전송

→ 서버는 이를 파싱하고 비즈니스 로직 처리 + DB 저장 + 응답 HTML 생성 필요

이걸 일일이 직접 구현하려면 TCP/IP 연결부터 시작해서 너무 복잡하니까 서블릿(Servlet)이 이 과정을 대부분 자동화해줌!

📌 2. 서블릿과 서블릿 컨테이너(WAS)

📌 4. 서블릿 컨테이너가 하는 일


📌 5. 싱글톤 서블릿 관리 (중요)

##

image.png

📌 5. 쓰레드 풀

요청 마다 쓰레드 생성의 단점 보완

쓰레드 풀 <실무 팁="">

• WAS의 주요 튜닝 포인트는 최대 쓰레드(max thread) 수이다. 이 값을 너무 낮게 설정하거나(CPU 너무 적게 사용하는는 것 ) 너무 높게 설정하면( 요청 다 받아버리면 서버가 죽어버림. 적정 값을찾는게 중요) 안됨! • 동시 요청이 많으면, CPU, 메모리 리소스 임계점 초과로 서버 다운. • 장애 발생시? 클라우드면 일단 서버부터 늘리고, 이후에 튜닝, 클라우드가 아니면 열심히 튜닝

적정 숫자는 어떻게 찾나요?

• 애플리케이션 로직의 복잡도, CPU, 메모리, IO 리소스 상황에 따라 모두 다름

<성능 테스트=""> - 트래픽이 있는 서비스라면 성능 테스트를 해봐야함., 최대한 실제 서비스와 유사하게 성능 테스트 시도- 툴: 아파치 ab, 제이미터, nGrinder

WAS의 멀티 쓰레드 지원

멀티 쓰레드에 대한 부분은 WAS가 처리- 개발자가 멀티 쓰레드 관련 코드를 신경쓰지 않아도 됨


HTML, HTTP,

정적 리소스 제공 → 고정된 파일등을 제공 . 웹 서버에서 폴더에 있는 이미 생성될 파일들.

HTTP API 다양한 시스템 연동 • 주로 JSON 형태로 데이터 통신 • UI 클라이언트 접점 • 앱 클라이언트(아이폰, 안드로이드, PC 앱) • 웹 브라우저에서 자바스크립트를 통한 HTTP API 호출 • React, Vue.js 같은 웹 클라이언트 • 서버 to 서버 • 주문 서버 -> 결제 서버 • 기업간 데이터 통신

백엔드 개발자가 고민해야 할 3가지

  1. 정적 리소스
  2. 동적 html 페이지 어떻게 제공
  3. http api 어떻게 주고받을지

서버사이드 렌더링, 클라이언트 사이드 렌더링

• SSR - 서버 사이드 렌더링

image.png

• HTML 최종 결과를 서버에서 만들어서 웹 브라우저에 전달 • 주로 정적인 화면에 사용 • 관련기술: JSP, 타임리프 -> 백엔드 개발자 • CSR - 클라이언트 사이드 렌더링 • HTML 결과를 자바스크립트를 사용해 웹 브라우저에서 동적으로 생성해서 적용 • 주로 동적인 화면에 사용, 웹 환경을 마치 앱 처럼 필요한 부분부분 변경할 수 있음 • 예) 구글 지도, Gmail, 구글 캘린더 • 관련기술: React, Vue.js -> 웹 프론트엔드 개발자 • 참고 • React, Vue.js를 CSR + SSR 동시에 지원하는 웹 프레임워크도 있음 • SSR을 사용하더라도, 자바스크립트를 사용해서 화면 일부를 동적으로 변경 가능

어디까지 알아야 하나요?

백엔드 개발자 입장에서 UI 기술 • 백엔드 - 서버 사이드 렌더링 기술- 필수 (강의에서는 타임리프) • 웹 프론트엔드 - 클라이언트 사이드 렌더링 기술 • 선택과 집중- 백엔드 개발자는 서버, DB, 인프라 등등 수 많은 백엔드 기술을 공부해야 한다.

풀스택에 대한 환상이 좀 있을 수 있는데, 현업에서 잘 하는 사람을 거의 못 봤다고 함 , 선택과 집중이 필요하다고 함 → 사람마다 다름 ,

© 2025 Jeewon Yoon   •  Powered by Soopr   •  Theme  Moonwalk