커뮤니티 홈페이지 사이트를 만들어보자 - 1

커뮤니티 홈페이지 사이트를 만들어보자

spring security, spring boot, jpa 등등 최대한 써먹을 수 있는 것들 다 써서 근사한 커뮤니티 사이트를 만들어볼 것이다.


요구 사항

세부적인 기능에 관해서는 위의 기본 기능들을 모두 구현하고 추가하면서 유지보수에 대한 연습을 해볼 생각이다.


DB 설계

community1_1

여기를 보고 대댓글에 관한 DB 테이블을 설계하는 방법에 대해 배웠다.

좋아요/싫어요 테이블은 기본적으로 사용자 : 게시글/댓글 관계이고, 이는 m : n 관계이기 때문에 @ManyToMany를 해줘야 한다. 그러나 이렇게 하는 것은 안좋은 방법이기에 m : 1, 1 : n으로 풀어내기 위한 테이블을 설계해야 했다. 해당 테이블이 Preference테이블이다. 결국 좋아요의 수를 아는 방법은 어떤 게시물의 idx를 가진Preference테이블들에서 status가 1인 것들의 개수를 세면 된다. 중복에 관해서는 사용자의 idx또한 좋아요/싫어요 테이블이 갖고 있기 때문에 같은 status를 2번 입력하는 경우는 무시하게끔 코드를 작성하면 된다.


Next

일단 로그인은 나중에 구현할 것이다. 따라서 게시판을 빠르게 구현해보도록 할 것인데, MVC패턴을 적용해서 개발을 할 것이다. Repository, Service, Domain(Entity)을 구현해야 한다.

기본적인 기능들을 만들었다면, Controller를 만들어서 url에 라우팅을 해주면 될 것 같다.


느낀점

테이블 설계를 이전에 해봤기에 수월하다고 느꼈지만, 좋아요/싫어요, 대댓글 테이블 같은 경우는 어떻게 만들어야할지 몰라서 찾아보게 됐다. Vue.js에 대한 설정만 더 만져주면 될 것 같다.