본문 바로가기

clean code

[클린코드] CHAP 11 관심사 분리 패턴들

728x90
반응형

CHAPTER 11 관심사 분리 패턴들

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

  • 소프트웨어 시스템은 어플리케이션 객체를 제작하고 의존성을 서로 연결하는 준비과정과 준비과정 이후에 이어지는 런타임 로직을 분리해야 한다
  • 객체의 생성과 객체를 사용하는 부분을 분리해야 한다

시작에 대한 관심사 분리

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

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

요청에 대한 관심사 분리

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

Filter, Intercepter, AOP

  • 서블릿 필터는 DispatcherServlet 이전에 실행이 되는데 요청 내용을 변경하거나, 요청을 처리하기 전에 작업을 수행할 수 있다.
  • Filter 와 Intercepter 는 Servlet 단위에서 실행된다. 반면 AOP는 메소드 앞에서 Proxy 패턴으로 실행된다.
  • 인터셉터는 여러 개를 사용할 수 있고 로그인 처리, 권한체크, 프로그램 실행시간 계산작업, 로그 확인 등의 업무 처리에 활용된다.
  • AOP는 메서드 앞에서 Proxy 패턴으로 실행된다. 주로 로깅, 트랜잭션, 에러처리 등 비즈니스 단의 메서드에서 조금 더 세밀하게 조정하고 싶을 때 사용한다. AOP는 주소, 파라미터, 어노테이션 등 다양한 방법으로 대상을 지정할 수 있다.
728x90
반응형

'clean code' 카테고리의 다른 글

[클린코드] CHAP 13 동시성  (0) 2022.06.13
[클린코드] CHAP 12 창발성  (0) 2022.06.13
[클린코드] CHAP 10 클래스  (0) 2022.06.13
[클린코드] CHAP 09 단위테스트  (0) 2022.06.13
[클린코드] CHAP 08 경계  (0) 2022.06.13