WA (Web Application)

2025. 5. 29. 15:14Server

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 → 서블릿 변환 → 컴파일 → 실행 과정 관리
  • 시작점 (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의 차이점!!


참고 자료

'Server' 카테고리의 다른 글

JSP  (1) 2025.05.29
Servlet  (0) 2025.05.29