프레임워크 강의-1

robin Han·2023년 3월 8일
0

Spring

목록 보기
1/13

3 Layer, 3 Tier

Tier

  1. 클라이언트
  2. 애플리케이션 서버
  3. EIS ( DB, Legacy)

Layer

  1. 프리젠테이션
  2. 비즈니스 로직
  3. 데이터 엑세스 (DAO)

컨트롤러: 페이지 화면 전환 또는 동작 제어
서비스 : 유스케이스로 표현되는 트겅 업무처리, 트랜잭션 기점
도메인 : 서비스로 부터 기능을 실행하는데 기능들의 클래스의 집합

오목형 레이어

  • 프리젠테이션 , 데이터 엑세스 레이어들이 변경되어도 비즈니스 로직을 영향을 최소화

  • 결합이 약한 설계구현(인터페이스 도입)

    프리젠테이션

  • 사용자 인터페이스 와 컨트롤러 제공

  • 컨트롤러: UI fmf 통해 사용자의 입력을 받아 로직을 호출하고 결과 반환

    모델 1

  • JSP만 구현 개발하고 Java Bean을 포함 개발

  • 비즈니스 로직 혼재되어 복잡도 높음

    모델 2

  • 모델: 뷰에 필요한 비즈니스 영역 로직 처리

  • 뷰: 프레젠테이션 뷰
    = 컨트롤러: 사용자 입력 처리 흐름 제어

    비즈니스 로직

  • 유즈케이스의 특정 업무 처리를 위해 서비스와 도메인 구성

    트랜잭셩 스크립트 방식

  • 도메인 방식

  • 로직을 포함하지 않고 단순히 값만 저장

VO: Value Object
DTO: Data Transfer Object

트랜잭션 관리

  • 트랜잭션의 ACID 특성, 원자성과 독립성
    원자성: 모든처리가 전부실행 또는 아무것도 실행되지않음
    독립성: 병행 실행되는 트랜잭션 간섭받지 않음

트랜잭션 경계

프리젠테이션 과 비즈니스 로직 사이에 존재

명시적 트랜잭션

선언적 트랜잭션

실제 하드코딩되어있는 서비스 코드를 프레임워크에 선언을 통해서 트랜잭션 관리

데이터 액세스

  • 비즈니스 로직으로 숨기고, 로젝에 필요한 데이터를 테입블 오브젝트에 매칭
  • O/R 매핑: 오브젝트와 RDB 매핑 , 엔터티를 테이블로 작성

DB 액세스 프레임 워크

  • Hybernate, JPA: ORM
  • Mybatis, 스프링 JDBC: SQL 문 사용

부품화

  • 개발 효율성과 유연성
    티어, 레이어 , 패키지 , 컴포넌트
  • 부품화는 인터페이스가 중요

왜 스피링이 필요로 하나

뭐가 문제??

  • 오브젝트 생명 주기
    서블릿 호출로 성능 저하및 메모리 문제
    해결: DI (Dependency Injection) 필요한 의존성만 부여

  • 부품화 문제
    비의존성을 위해서 기술 필요와 new를 사용하지않고 인터페이스 구현
    해결: DI (Dependency Injection)필요한 의존성만 부여

  • 기술 은닉과 부적절한 기술 은닉
    로깅, 예외처리 , 트랜잭션, 비효울적 코딩 불필요
    해결: AOP (Aspect Oriented Programming) 중복적인 코드 제거, 공통기능을 공통 모듈로 분리하여 관리

POJO (Plain Old Java Object)

  • 특정한 인터페이스 구현, 상속 없이 객체 관리

IoC ( Inversion of Control)

  • 의존관계 연결을 스프링에서컨테이너가 대신 제공하여 제어 역전,

스프링 주요 특징

1. O/R 매핑

  • 데이터 베이스 라이브러리 연결 인터페이스

2. 스프링 데이터

  • 다양한 데이터 연동 가능

3. 스프링 배치

  • 대량 데이터 일괄 처리 병행처리

4. 스프링 시큐리티

  • Authentication, Authorization
  • OAUTH (Open Authorization)

5. 스프링 클라우드

  • Cloud 환경에서 동작하는 개발 지원

0개의 댓글