WA (Web Application)
2025. 5. 29. 15:14ㆍServer
WA (Web Application)
HTTP와 Client-Server 아키텍처

- HTTP: Client-Server Model 기반 Protocol
- Client: Service를 Request하는 사용자
- Server: 특정 Service를 제공하는 컴퓨터
- Web Server, DB Server..
Web 통신 구조

Web Server
- 정적 콘텐츠 제공
- HTML, CSS, JS, image 등
- 예시: Apache HTTP Server, Ngnix, IIS
WAS (Web Application Server)
- 동적 컨텐츠 제공
- 미들웨어 서버
- Servlet/JSP 실행, 비즈니스 로직 처리, DB 연동
- 예시: Apache Tomcat, JBoss/WildFly, JEUS
- 핵심 기능
- 웹 컨테이너 : 서블릿/JSP 실행 환경
- 트랜잭션 관리 : 데이터 일관성 보장
- 커넥션 풀 : 데이터베이스 연결 관리
- 보안 처리 : 인증/인가 기능
URL (Uniform Resource Locator) vs URI (Uniform Resource Identifier)

- 위치(
URL) vs 위치+이름 → 식별자(URI)- URL은 일종의 URI이다.
- URL은 URI이지만, 모든 URI가 URL인 것은 아니다.
-- URL 예시
http://www.naver.com:80/index.html
└─┬──┘└────┬───────┘└┬┘└───┬────┘
프로토콜 서버 주소 포트 파일 경로
-- URI 예시
http://www.example.com:8080/board/list?page=1&size=10#top
└─┬──┘└─────┬─────────┘└┬─┘└────┬────┘└─────┬───────┘└┬┘
프로토콜 서버 주소 포트 경로 쿼리 문자열 Fragment
HTTP Request & Response
- HTTP Response Status Code
- 2xx: 성공 ✅
- 3xx: 리다이렉션 🔄
- 4xx: 클라이언트 오류 ❌
- 5xx: 서버 오류 💥
| 코드 | 의미 | 설명 |
|---|---|---|
| 200 | OK | 요청 성공, 정상 처리됨 |
| 201 | Created | 새로운 리소스가 성공적으로 생성됨 |
| 302 | Found | 임시 리다이렉션, 다른 URL로 이동 |
| 400 | Bad Request | 잘못된 요청, 문법 오류 |
| 401 | Unauthorized | 인증 필요, 로그인이 안된 상태 |
| 403 | Forbidden | 접근 금지, 권한 없음 |
| 404 | Not Found | 요청한 리소스를 찾을 수 없음 |
| 405 | Method Not Allowed | 허용되지 않는 HTTP 메서드 |
| 500 | Internal Server Error | 서버 내부 오류 |
| 502 | Bad Gateway | 게이트웨이 오류 |
Web Application
- 웹 브라우저를 통해 접근하여 사용하는 인터넷 기반 애플리케이션
- 핵심 특징
- 플랫폼 독립성
- 브라우저만 있으면 언제 어디서든 사용 가능
- 별도 설치 불필요 (설치형 프로그램과 차이점)
- 요청-응답 구조
- 클라이언트: URL 요청 전송
- 서버: HTML 형태로 응답 전송
- 브라우저: HTML을 해석하여 화면에 표시
- 동적 처리
- 정적 콘텐츠: 미리 만들어진 HTML, CSS, 이미지
- 동적 콘텐츠: 요청에 따라 실시간 생성 (JSP/Servlet)
- 플랫폼 독립성
JSP/Servlet Architecture

Web Component
- 웹사이트나 애플리케이션에서 UI를 모듈화하고 재사용할 수도록 해주는 웹 표준 기술
- 즉, 웹 애플리케이션을 구성하는 실행 가능한 소프트웨어 단위
- 웹 컨테이너에서 실행되는 프로그램 모듈
- HTTP 요청을 처리하고 응답을 생성하는 역할
- Servlet Component
- 역할: HTTP 요청을 처리하는 자바 클래스
- 특징: 비즈니스 로직 중심, 프로그래밍 방식
- 예시: 로그인 처리, 데이터 조회, API 응답
- JSP Component
- 역할: 동적 웹 페이지 생성하는 템플릿
- 특징: HTML 중심, 화면 표시 중심
- 예시: 게시판 목록, 상품 상세 페이지
Web Container
- 웹 컴포넌트(서블릿, JSP)를 실행하고 관리하는 런타임 환경
- Servlet 컨테이너 + JSP 컨테이너를 포함하는 상위 개념
- 서블릿 컨테이너 (Servlet Container)
- 서블릿의 생명주기를 관리하는 실행 환경
- 서블릿 생성, 초기화, 실행, 소멸 담당
- JSP 컨테이너 (JSP Container)
- JSP 파일을 서블릿으로 변환하고 실행하는 환경
- JSP → 서블릿 변환 → 컴파일 → 실행 과정 관리
- 서블릿 컨테이너 (Servlet Container)
- 시작점 (main() 메서드) 존재 X → 컨테이너가 필요할 때 마다 호출
- 역할: 생명주기 관리, 이벤트 처리, 리소스 관리
- 예시: Tomcat, Resin, WebLogic
Model2 Architecture (MVC 패턴)

- Controller: Servlet (요청 처리 및 흐름 제어)
- Model: JavaBean (비즈니스 로직 및 데이터)
- View: JSP (사용자 인터페이스)
- JSP 역할 세분화 : 기존 JSP가 Controller와 View 기능을 모두 담당했지만,
Model2 JSP는 View만 담당, Servlet 클래스가 Controller를 담당한다.
→ Model1과 Model2의 차이점!!
