mysql을 공부하다보니, 현재 관계형 데이터베이스의 이점을 제대로 살리지 못하고 있다는 것을 깨달았다. 따라서 리펙토링 과정을 거치며 entity를 조금 수정하려 한다.

재설계 할 부분은 다음과 같다.

  1. 유저가 쓴 글에 대한 검색 서비스를 위해, user와 posts 사이의 연관관계 매핑이 필요하다.

  2. entity 생성자가 public으로 열려있다. @builder 를 사용하거나 메서드로 한 번 감싸는 과정이 필요해보인다.

  3. 현재 entity의 id는 자동생성이다. 이때, userId.set이 가능한 것은 좋지 않아보인다.

  4. 필수 값들에 대한 null 위험이 있다. 이를 해결할 방법이 필요해보인다.

생성자 - protected로 변경 + @setter 위치 변경

entity 속성들이 일관성이 없고(userRank,userId 등…), 이름도 직관적이지 못하다. 변경이 필요해보임

-클래스에 붙어있던 @setter을 내부 속성들에게 각각 붙여주는 방식으로 userId가 재설정 되는 경우를 방지했다.

- 생성자를 public -> protected 변경 + 메서드 of를 통해 생성. @builder 보다는 내가 원하는 생성자를 그때 그때 만드는 방식으로 진행하려 한다.

연관관계 매핑

유저와 게시물 사이에 양방향 매핑이 필요할까?

현재 구현하려는 서비스들은 모두 게시글이 유저를 가지고 있으면 해결될 것으로 보인다. 게시글의 정보가 변경되었을 때, 유저한테 영향을 미치는 것이 맞는가? -> 현재는 필요 없어 보인다.

우선 다음과 같이 코드를 작성한뒤, 다음 포스팅에서 테스트를 해보자.