관심사 분리 패턴들

박근수·어제
0

클린 코드 북스터디

목록 보기
10/13

01. 관심사 분리

construction (생성) 과 use (사용) 은 다르다

  • 소프트웨어 시스템은 준비 과정과 런타임 로직을 분리
  • 객체의 생성과 객체를 사용하는 부분은 분리

시작에 대한 관심사 분리

객체의 생성은 시작 단계에서, 비즈니스 로직은 객체를 사용하는데 집중

  • 시작 단계는 모든 어플리케이션이 풀어야할 관심사
  • main 함수에서 시스템에 필요한 객체를 생성한 후 어플리케이션에 넘긴다.
  • 어플리케이션은 그저 만들어진 객체를 사용한다.
  • 모든 객체가 잘 생성되었다고 가정하고, 객체를 이용한 개발에 집중할 수 있다.

요청에 대한 관심사 분리

Filter, intercepter, AOP

Spring 프레임 워크를 통해 요청에 대한 관심사를 분리해 요청 처리에 대한 비즈니스 로직에 집중할 수 있다.

02. Dependency Injection (의존성 주입)

객체 의존성을 DI 컨테이너에게 맡긴다

  • Setter 메소드 or 생성자 인수를 통해 의존성을 주입
  • DI 컨테이너는 요청이 들어올 때 필요한 객체의 인스턴스를 만든 후 의존성 설정

Ex) Spring IoC Container

03. Cross Cutting Concerns (횡단 관심 분리)

어플리케이션 전반에서 가지는 공통적인 관심사를 분리한다.

  • 비즈니스 로직 외에 Logging, Transaction 관리, Securitiy 등 신경써야할 관심사들이 많다.
  • 관심사들은 많은 어플리케이션 레이어에 퍼져있는데, 이 관심사들을 분리해 처리하는 것이 효율적이다.
profile
개발블로그

0개의 댓글