웹 애플리케이션 아키텍처

이지윤·2022년 4월 1일
0

일반적인 웹 시스템

1. 정적 컨텐츠 (HTML)

  • 웹 브라우저가 웹 서버로부터 저장된 HTML을 읽어와 표현
  • 웹 브라우저 요청에 대해 매번 같은 콘텐츠만 반환
  • HTML, CSS, 자바스크립트

2. 동적 컨텐츠 (JSP)

  • 웹 브라우저가 웹 서버에 동적 페이지를 요청
  • 이 요청을 애플리케이션 서버가 실행
  • 처리결과(데이터베이스 조회)를 브라우저가 HTML 형식으로 받아서 표현

웹 애플리케이션

CGI : 동적 콘텐츠

  • HTTP 요청으로 실행되는 프로그램
  • 세션 관리 X
  • 매번 프로그램 실행으로 성능 저하
  • 트랜잭션 관리가 어려움

JSP, Servlet : 웹 컨테이너가 세션 관리

  • 웹페이지와 비즈니스 로직 분리
  • 자바 언어 사용
  • 오브젝트 지향의 장점 "재사용"

EJB : 분산 트랜잭션 처리 콤포넌트

  • JSP, Servlet -> 웹 프리잰테이션 처리
  • EJB 분산 객체 -> 비즈니스 로직 처리

Spring :DixAOP 컨테이너

  • 경량 컨테이너, POJO 객체
  • 웹 클라우드, 모바일등 다양한 자바 기반의 애플리케이션을 만들기 위한 프레임워크
  • POJO(Plain Old Java Object)지원을 통해 기존 EJB의 문제점인 복잡성을 줄임
  • 대힌민국 전자정부 프레임워크 기반 기술

    경량 컨테이너 : 스프링은 객체를 담고 있는 컨테이너로써 자바 객체의 생성과 소멸과 같은 라이프사이클을 관리하고, 언제든 필요한 객체를 가져다 사용할 수 있도록 해준다.

    POJO : 특별한 제한에 종속되지 않고, 클래스 패스를 필요로 하지 않는 일반적인 자바객체

아키텍처 중요성

  • 원인 : 서버 애플리케이션 구조의 변화
    • Client-Server 구조에서 Web Server 기반 구조로 진화
    • 요구사항 변경, 잦은 기능 추가 발생 -> 미래 환경에 빠른 변화에 대응
    • 비즈니스 로직과 UI 로직이 서버에 종속
  • 해결책 : 서버 애플리케이션 특징에 적합한 구조가 필요
    • 유연하게 대응할 수 있는 개발 효율성인 구조는 서버 애플리케이션의 수명을 유지

웹 애플리케이션 아키텍처

  • 물리층인 티어(Tier)와 논리층인(Layer)로 구분

클라이언트 층 (PC, 스마트폰)

  • PC, 스마트폰과 같은 기기

중간 층(애플리케이션 서버)

  • 프레젠테이션 층
    • 사용자 인터페이스 제공
    • 컨트롤러(Controller) : 페이지 화면 전환 또는 동작 제어
  • 비즈니스 로직 층
    • 서비스 (Service) : 유스케이스로 표현되는 특정 업무 처리
    • 도메인 (Domain) : 서비스로부터 기능을 실행하는데 사용되는 고객 또는 주문 같은 클래스 집합 (관련 정보를 저장)
  • 데이터 엑세스 층
    • 데이터 엑세스를 추상화

EIS 층

  • DB, Legacy System

웹 애플리케이션 서버 레이어

  • 클라이언트와 DB 사이를 잇는 각 층별로 담당하는 역할을 수행하여 클라이언트의 요청을 처리하는 구조

오목형 레이어

  • 표현 층 또는 데이터 엑세스 층이 변경되어도 비즈니스 로직층에는 영향을 최소화
  • 레이어 층 도입과 함께 결합 부분에 약한 결합 설계 구현(인터페이스 도입)필요
profile
초보자

0개의 댓글