리팩터링1 [Refactoring] 여러 역할을 갖는 엔티티 리팩터링하기 레거시 시스템을 살펴보다보면 하나의 엔티티(테이블)에 서로 다른 역할의 데이터 필드(컬럼)가 모여있도록 모델링 된 경우가 있다. 초기에는 하나의 역할의 데이터만 있었지만, 서비스가 확장되면서 기존 시스템을 재활용하다보니 기존의 엔티티(테이블)에 다른 역할의 데이터 필드(컬럼)를 추가한 경우이다. 이번 포스팅에서는 여러 역할을 갖으면서 SRP를 위반하는 엔티티와 그 문제점을 알아보고 이를 어떻게 리팩터링하면 좋을지에 대한 방법을 설명하도록 하겠다. (예제 코드는 여기에서 살펴볼 수 있다) SRP를 위반하는 엔티티와 그 문제점 예를 들어 처음에는 물리적인 굿즈를 팔기 위한 상품을 담기 위한 상품 엔티티를 만들었다고 하자, class Product( id: ProductId, name: String, pric.. 2022. 11. 16. 이전 1 다음