DevBoi

[DDD] 액티브 레코드 패턴 본문

Develop/[DDD]

[DDD] 액티브 레코드 패턴

HiSmith 2023. 5. 22. 11:41
반응형

개체 모델을 만들고, 행위를 그 안에서 선언

서비스에서는 해당 행위에 대한 선언으로 로직을 처리한다.

 

액티브 레코드 패턴은 행위가 getter,setter,save()만 있는 것을 의미한다.

바람직한 것은 행위가 엔티티안에 들어가서 비즈니스 로직에 대한 처리를 담당해주는 것이 좋다.

 

User라는 엔티티가 있다고 하면 주소변환에 대한 메소드 행위를 Member entity안에 넣는 것이다.

예를 들면

 

 

@Getter

@Setter

class Member{

 

private String city;

private String dong;

 

public void 주소바꾸기(String city,String dong){

  this.setCity(city);

  this.setDong(dong);

}

}

 

뭐 이런식으로 진행이 되는 것이다.

각각의 엔티티에서 행위를 정의한다. JPA를 사용 하면 ORM 연계를 해주고 CRUD를 구현해주어 좀더 DDD에 편하게 패턴을 설계 및 구현할 수 있다.

 

액티브 레코드 패턴은 결국 Entity에 약간의 비즈로직 포함가능하지만 비지니스 로직흐름은 서비스에서 가져가는 것이다.

본질적으로 서비스에서 처리하여 트랜잭션 스크립트 패턴의 유형과 비슷하지만 엔티티 내에서 비즈니스에 대한 로직을

공통으로 정의하고 사용할 수 있다는 점이 다르다.

반응형