Code.presso Java 웹 개발 체험단 활동을 통해 배운 것들(Springboot
와 MyBatis
, SQL Mapper
등) 을 바탕으로 트위터 Clone Coding 프로젝트 개발을 시작했다!
프로젝트 이름은 MeU 이다^^ㅎ
내가 낸 아이디어인데 그저 너무 좋다고 칭찬해준 우리 팀원들에게 감사의 인사를 전하며,,,,,!
프로젝트를 진행하는 동안 마주하게 될 크고 작은 이슈들을 차근차근 정리해보려고 한다😆
애초에 체험단 활동이 백엔드 위주로 진행되었기 때문에 템플릿은 따로 구매해 사용했다.
Vogel 이라는 템플릿인데, 트위터를 사용하진 않지만 언뜻 보기에도 굉장히 유사해보인다!
템플릿 구매는 여기를 참고하면 된다.
첫번째로 데이터베이스 테이블을 설계했다.
실제 SNS 기능을 모두 포함하는 프로젝트로 이전에 다뤘던 블로그 프로젝트보다 테이블 개수가 훨씬 많아져 멈칫했지만😅
강사님께서 DB 설계만 꼼꼼하게 잘 해놓으면 개발은 어렵지 않을 것이라고 했다.
HTML 템플릿은 여기에서 구매했다.
우리 팀은 erd cloud 홈페이지를 통해 ERD를 다음과 같이 생성했다.
설계하는 과정에서 인기가 많은 게시글을 보여주는 기능을 하는 Trending
테이블을 삭제했는데, 이는 Post
테이블에서 SQL문으로 조건을 통해 상위 N개만 가져오는 것으로 처리를 해도 될 것 같다고 판단했기 때문이다.
사용자 이미지와 게시글에 들어가는 이미지를 관리할 UserImg
와 PostImg
테이블도 삭제했다.
대신 User
테이블에profileImg
필드를 추가했고, 게시글 관련 이미지 파일은 html에서 직접 처리하기로 했다.
Follow
테이블에는 팔로우하는 유저들의 정보가 담겨있다.
(00 가 00 를 팔로우)
1) 피드에 보일 정보는 "내"가 팔로우하는 사람들의 게시글만 보이면 되기 때문에, Follow 테이블의 userId
를 기준으로 팔로우 하고있는 사용자들의 리스트를 조회하면 된다.
2) 템플릿으로만 봤을 때 친구 목록을 보여주는 기능은 없는 것 같지만, 있다고 해도 1번과 같은 방식으로 처리하면 된다.
이러한 이유로 친구 목록을 관리하는 Friend
테이블도 삭제했다. 자꾸 삭제만 하는 ㅎ
멘토님께 DB 설계에 대한 피드백를 받고 더 보완해서 다시 정리하도록 하겠다!