2025-09-18
오늘 배운 것
Servlet
웹프로그램
- 네트워크 너머 서버에서 동작하며 웹을 통해 서비스 제공
- 구성:
- Backend (비즈니스 로직)
- Frontend (사용자 인터페이스)
Container와 Context
- WAS(Web Application Server): 웹 애플리케이션 실행 환경 제공, Container라고도 함
- Context: 각 애플리케이션의 실행 환경/정보
container root → WAS
context root → WAS 내부 애플리케이션
Maven
Maven 개요
- Java 프로젝트 관리 도구
- 주요 기능
- 프로젝트 구조 표준화
- 의존성 관리
- 빌드 자동화
사용
pom.xml → 프로젝트 정보, 의존성, 플러그인 관리
<properties> → 버전 정보 재사용성 강화
- 프로젝트 수정 시 Maven → Update Project
Servlet
Servlet 특징
- WAS에서 실행되는 Java WebComponent
- 장점
- Java OOP 기반 → 유지보수성·재사용성·이식성
- 멀티스레드 지원 → 높은 성능
- 필터, 리스너 등 확장성
- 단점
- 비즈니스 로직 + 화면 로직 혼재 → JSP와 함께 Model2로 개선
요청 처리 과정
- 요청 파라미터 조회 (logging/validation 포함)
- 비즈니스 로직 처리
- Persistence 로직 연동 가능
- 응답 준비 (ContentType, Encoding)
- 응답 작성 (HTML 등)
URL Mapping
- 클라이언트 요청 → Servlet 연결
- 방식
- 경로 지정:
/hello/hi
- 확장자 매칭:
.do
- 매핑 방법
- web.xml (옛 방식)
@WebServlet 어노테이션 (최근 주로 사용)
Servlet Life Cycle
- Container가 관리
- 주요 메서드
init() : 자원 초기화
service() : 요청 처리 → doGet(), doPost() 호출
destroy() : 자원 정리
HttpServletRequest & HttpServletResponse
HttpServletRequest
- HTTP 요청 정보 추상화 (헤더, 파라미터, 속성, 본문)
- 요청 파라미터는 항상 문자열
- HTTP Method
- GET, POST, PUT, DELETE 등 → 멱등성 개념 적용
HttpServletResponse
- HTTP 응답 정보 추상화 (헤더, 상태코드, 바디)
- 주요 요소
- Status Code (200, 404, 500 …)
- Content-Type (text/html, application/json …)
- Character Encoding (기본 ISO-8859-1 → UTF-8 설정 필요)