spring3 도메인 주도 설계 첫걸음 - 8장 : 아키텍처 패턴 (계층형 /CQRS / 포트와 어댑터) 8. 아키텍처 패턴 코드베이스가 처리해야 할 다양한 관심사로 인해 비즈니스 로직이 다양한 구성요소에 흩어지기 쉬움 사용자 인터페이스 / DB에 의해 구현 혹은 다양한 구성요소에 중복 관심사 구현 시, 엄격히 구성하지 않는다면 코드베이스의 변경에 대한 제약 계층형 아키텍처 고전적 아키텍처 : PL(Presentation layer) + BLL(Business logic) + DAL(Data access) 프로젠테이션 계층 사용자와 상호작용 하기 위한 인터페이스 구현 ex) GUI/CLI/연동 API/메시지 브로커 이벤트 구독/이벤트 발행 프로그램의 퍼블릭 인터페이스 비즈니스 로직 계층 소프트웨어의 중심 액티브 레코드 또는 도메인 모델과 같은 비즈니스 로직 패턴 적용 엔티티 / 규칙 / 프로세스 데이터 접근.. 2023. 6. 6. @Transactional Propagation와 Spring Transaction Proxy Pattern @Transactional Propagation(전파) propagation의 옵션 옵션 REQUIRED Default - 부모 트랜잭션이 존재한다면 부모 트랜잭션 내에서 실행, 없다면 새로운 트랜잭션 생성 중간에 자식 / 부모에서 rollback 발생 시, 부모, 자식 모두 rollback REQUIRES_NEW 무조건 새로운 트랜잭션 생성(시작) 만약 호출한 곳에 이미 트랜잭션이 있다면 기존의 트랜잭션은 메서드가 종료할 때까지 잠시 대기, 본인의 트랜잭션 실행 rollback은 각각 이루어짐 MANDATORY 무조건 부모 트랜잭션에 합류, 이 때 부모 트랜잭션이 없다면 예외 발생 SUPPORTS 메소드가 트랜잭션을 필요로 하지는 않지만,진행 중인 트랜잭션이 존재하면 트랜잭션을 사용한다는 것을 의미진행.. 2022. 11. 13. Request Mapping Handler Adapter Spring MVC 에서 HTTP 메시지 컨버터의 동작 위치 애노테이션 기반의 컨트롤러, @RequestMapping을 처리하는 핸들러 어댑터 - RequestMappingHandlerAdapter에서 동작 # 전체 동작 개요 이 때 RequestMappingHandlerAdapter에서는 들어온 request에 대해서 어떠한 형식(파라미터, 애노테이션 정보)를 기반으로 ArgumentResolver가 전달 데이터를 생성 Controller 정보 - HttpServletRequest, Model, @RequestParam, @ModelAttribute, @RequestBody, HttpEntity 등 이후 ArgumentResolver가 전달해준 값을 RequestMappingHandlerAdapter가.. 2022. 1. 4. 이전 1 다음