사용자 도구

사이트 도구


web:신규서비스

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판 양쪽 다음 판
web:신규서비스 [2020/11/05 14:48]
kwon37xi [Load Balancer 설정 확인]
web:신규서비스 [2020/11/24 13:22]
kwon37xi [계층간 침범을 하지 말것]
줄 91: 줄 91:
   * Repository   * Repository
   * Domain Object   * Domain Object
- 
-특히 모듈화가 잘 안된 프로젝트에서 저지르는 흔한 실수 중의 하나가 로그인 사용자 객체를 자동으로 도메인 객체에 넣어주고 싶다던지의 이유로  Web Layer의 객체를 Domain Object에 넣는 경우가 있는데 이렇게 하면 Batch 등 전혀 다른 목적에서 Domain Object를 사용할 때 엉뚱한 값이 주입되는 등 심각한 부작용이 발생한다. 
  
 항상 의존성은 위에서 아래로 흘러야 한다. 항상 의존성은 위에서 아래로 흘러야 한다.
 +
 +==== Web Context 를 비즈니스까지 끌고가지 말 것 ====
 +  * 모듈화가 잘 안된 프로젝트에서 저지르는 흔한 실수 중의 하나가 로그인 사용자 객체를 자동으로 도메인 객체에 넣어주고 싶다던지의 이유로  Web Layer의 객체를 Domain Object에 넣는 경우가 있는데 이렇게 하면 Batch 등 전혀 다른 목적에서 Domain Object를 사용할 때 엉뚱한 값이 주입되는 등 심각한 부작용이 발생한다.
 +  * UI단의 컨텍스트를 Method Parameter를 통하지 않고서 비즈니스 코드에서 직접 사용하는 일이 없게 해야한다. (보통은 이럴 때 ''Thread Local''을 사용함)
 +  * JPA Auditing 같은 것.
 +  * 단, 이런 상황이더라도, 시작점과 사용지점이 같은 레이어라면 상관 없다. 예) Servlet Filter 에서 뭔가 설정한 것을 도메인 코드에서는 사용하지 않고 Controller 에서만 사용하는 경우(JSON 응답 형태를 변경한다던가).
 ===== 웹 서비스 모듈의 분화 ===== ===== 웹 서비스 모듈의 분화 =====
   * Web Service 모듈의 경우 각 기능별로 Path 지정에 주의한다.   * Web Service 모듈의 경우 각 기능별로 Path 지정에 주의한다.
web/신규서비스.txt · 마지막으로 수정됨: 2024/03/08 11:26 저자 kwon37xi