banner image

CS 상식/디자인패턴 3

[DDD] 엔티티에 비즈니스 로직 작성하는 것에 대한 나의 생각

최근 OOP와 DDD 관련된 서적을 읽다 궁금한 점이 생겼습니다. 바로 엔티티 클래스와 서비스 클래스에 관한 내용인데요. 저는 기존에 개발 시 엔티티 클래스는 단순 데이터베이스와 매핑되는 클래스로만 이용했습니다. 그리고 모든 비즈니스 로직은 서비스 클래스에 구현했죠. 하지만 이럴 경우 엔티티가 단순한 데이터 구조체로만 사용된다는 아쉬움이 발생합니다. 그래서 도메인 주도 개발이라는 개념이 부상했습니다. 도메인 주도 개발 관점에서는 복잡한 비즈니스 로직만 서비스 클래스에 넣고 도메인 모델(엔티티)과 관련된 비즈니스 로직은 도메인 모델 클래스에 구현해 이런 아쉬움을 해결합니다.저도 이런 내용을 토대로 저의 코드 일부를 수정해보려 했는데요. 이때 의문점이 생겼습니다. 내용은 아래와 같습니다. 엔티티에 비즈니스 ..

객체 지향 프로그래밍(OOP): 내 방식대로 개념 적용해보기 - feat. 객체지향의 사실과 오해 책 리뷰

개발을 공부해 본 사람은 한 번쯤은 듣게 되는 객체 지향 프로그래밍(Object-Oriented Programming, OOP). 굉장히 친숙하면서도 정확히 이해하기에는 모호한 개념이라고 생각하는데요. 이를 더 깊이 이해하기 위해'객체지향의 사실과 오해: 역할, 책임, 협력 관점에서 본 객체지향'이라는 책을 읽고 나름대로 느낀 점들을 정리해보려 합니다.  '객체지향의 사실과 오해' 리뷰우선 내용을 전체적으로 요약하지는 않을 것입니다. 모든 내용이 하나하나 정확히 기억나지는 않을뿐더러, 전체적으로 코드 수준에서 명확하게 설명하는 방식보다는 추상적이고 모호한 형태로 설명하는 방식이 주로 사용되었다고 생각해 내용을 요약하는 것이 크게 도움이 되지 않다고 생각하기 때문입니다(개인적인 생각입니다)... 그래서 ..

의존성 주입(Dependency Injection, DI): 간단한 비유와 단위 테스트로 이해하기

객체 지향 프로그래밍의 주요한 패턴 중 하나는 의존성 주입(Dependency Injection, DI) 입니다. 하지만 저는 이런 개념이 정확히 이해되지 않더라구요. 아마 많은 사람들이 저와 비슷한 상황일 것이라고 생각합니다. 그래서 오늘은 제가 이해한 의존성 주입에 대해 공유해보려 합니다. 의존성 주입이란?먼저 위키백과를 통해 확인할 수 있는 간단한 의존성 주입에 대한 정의입니다.소프트웨어 엔지니어링에서 의존성 주입은 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉이다. "의존성"은 예를 들어 서비스로 사용할 수 있는 객체이다. 클라이언트가 어떤 서비스를 사용할 것인지 지정하는 대신, 클라이언트에게 무슨 서비스를 사용할 것인지를 말해주는 것이다. #위키백과 의존성 주입의 핵심 목적결합도 감소의존성..