스파르타 코딩클럽_내일 배움 캠프 spring 트랙 6기
[프로젝트] Trello 만들기
2023.08.07 ~ 2023.08.14
<프로젝트 정보>
개발도구 : IntelliJ
프로그래밍 언어 : Java
데이터베이스 : MySQL
프레임워크 : Spring
저장소 : GitHub
기타서비스 : Postman
<프로젝트 내용>
Trello에서 제공하는 기능들을 직접 구현해보는 프로젝트
가입한 회원들을 대상으로 프로젝트를 관리할 수 있는 보드, 칼럼, 카드를 만들고 타 회원을 초대해서 협업에 사용할 수도 있는 기능을구현하기로 했다.
사용자 관리, 보드 관리, 칼럼관리, 카드 관리, 카드 댓글관리 5개의 필수 구현 사항이 주어졌다.
내가 맡은 기능은 칼럼 관리로 칼럼 조회(조회 시 카드 리스트도 같이 조회가 되야한다.), 칼럼 생성, 칼럼 이름 수정, 칼럼 이동, 칼럼 삭제다.
[칼럼 관리 API]
· 칼럼 조회 : GET - Http://localhost:8080/column
· 칼럼 생성 : POST - Http://localhost:8080/column
· 칼럼 이름 수정 : PUT - Http://localhost:8080/column/{id}
· 칼럼 조회 : DELETE - Http://localhost:8080/column/{id}
[칼럼 관리 ERD]
ERD를 짜면서 고민이었던게 타 회원을 초대해서 협업에 사용할 수도 있는 기능에 대해 권한을 어떻게 부여할 것인가?에 대해 고민하게 되었다.
이건 팀원들이랑 그룹 기반의 권한과 각 보드별 기반의 권한으로 나눠서 각각의 장단점을 고민해보고
튜터님께 찾아가서 질문을 드렸더니 구현을 어떻게 할 것인가에 따라 달라지기 때문에 정답은 없다하셨다.
그룹 기반 권한을 설정하게 된다면 그룹 단위로 권한 관리가 용이하지만 사용자마다 각각의 다른 권한을 부여하기가 어려울 수 있고
보드 기반 권한을 설정하게 된다면 각 보드마다 세밀한 권한 여부가 조정이 가능 한 대신 보드가 늘어나게 된다면 관리 자체가 복잡해진다.
-> 1안(왼쪽) : group을 생성 후, 인증객체를 만들 때 그룹권한을 user에게 부여
-> 2안(오른쪽) : Board를 만들 때 user를 초대하므로, Board의 Entity에 Userlist 설정.
각 기준 별로 Entity를 짜보고 2안으로 팀원들이랑 상의해서 2안으로 진행하기로 결정했다.
백엔드 코드는 하루만에 뚝딱! 작성했으나, 포스트맨에서 실행이 안되서 마저 수정하고 실행이 되는 코드로 올려야겠다.
'🏕️내일배움캠프 > 📂Trello 만들기(23.08.07)' 카테고리의 다른 글
Trello 만들기 2일 _ 백엔드 코드 포스트맨 구동 확인 및 프론트엔드 제작 (0) | 2023.08.11 |
---|