-
Notifications
You must be signed in to change notification settings - Fork 1
Modeling
SR edited this page Dec 1, 2021
·
1 revision
- 확인된 API Spec을 기준으로 TDD를 통해 Entity 설계
- 테스트 작성 시 POJO 테스트, Slice 테스트를 최대한 활용하도록 한다.
- Domain Entity에 대한 객체 생성 테스트
- Domain Repository Layer에 대해 @DataJpaTest를 활용하여 Repository 단순 기능 테스트
- Service Layer에 대해 Slice 테스트하는 방법을 알아보기, 그 전가지는 통합테스트로 진행(@SpringBootTest)
- Presentation Layer에 대한 테스트 방법들 알아보기
- User내에 Profile 관련 필드를 포함하고 있는 것으로 구성 JPA를 사용하므로 @Embedded와 @Embeddable 어노테이션을 활용하여 구현하였다.
-
Follow는 엔티티로 가져가느냐 User와의 관계로 정의하고 가느냐 엔티티 구성이 달라진다.
-
User 내에 Follow를 포함하는 방식으로 구성하느냐, User와 Follow 엔티티를 따로 구성하느냐 관련 로직의 위치가 달라진다.
-
User와 Follow 간는 1:N, N:1 구성으로 FromUser-Follow-ToUser 관계를 갖도록 구성하여 Follow 엔티티를 구성하였다.
- 사용자가 다수의 글을 작성할 수 있으므로 1:N 관계를 가지며 양방향 연관관계를 갖도록 구성하였다.
- 글에 대한 태그를 달 수 있도록 구현 ❌ -> 글을 작성할 때 태그를 달아서 작성하도록 구현
- 결국 태그는 카타고리의 기능을 하는 것과 같은 것으로 판단
- 깃 허브의 기술 Topics 처럼 정의된 기술도 추가가 가능하고 새로운 기술명도 추가하는 구현방식으로 엔티티 설계를 생각했지만 API Spec에서는 조회 기능만 존재하므로 enum으로 리펙토링 한다.
© 2021 Copyright SR