· 오늘 공부한 것
S.A (Starting Assignments) 작업
- ERD 작성
- API명세서 작성
- 와이어 프레임
· 공부한 내용, 궁금한 내용, 부족한 내용
최종 프로젝트전 마지막 팀프로젝트는 Trello와 같은 업무 관리 시스템을 만들어 보는 것이다. 전에 이와 같은 것을 사용해 본 경험으로는 github 레포지토리에서 프로젝트를 생성해서 To do, In progress, Done 영역을 두고 카드를 만들어서 본 것이다. 카드 안에서는 체크리스트와 같은 것을 넣고 주어진 카드를 완료해서 프로젝트가 잘 진행될 수 있도록 사용을 하였다. 그래서 이번 프로젝트에서 보드를 만들고 그 안에 컬럼(To do, In progress, Done 등)을 만들고 그 안에 카드를 넣어서 업무를 관리한다. 그리고 권한에도 3가지를 설정을 하였다.
1. 해당 보드를 만든 유저 (총 관리자)
2. 해당 보드에 초대되어 카드를 만들 수 있는 유저 (매니저)
3. 해당 보드에 초대되어 카드를 부여 받은 유저 (일반 유저)
업무관리 시스템이기 때문에 매니저를 팀장으로 생각하고 일반 유저를 사원으로 보면 이해하기 쉽다. 그래서 권한에 따라 할 수 있는 기능이 정해져 있고 각 권한은 포함관계이기 때문에 일반유저가 할 수 있는 기능은 매니저도 할 수 있고 매니저가 할 수 있는 기능은 총 관리자도 할 수 있다. 이러한 것들을 생각하여 ERD 작성을 해보았다. 관계 설정을 할 때 팀원들과 많은 의논을 거쳤다.
특히 권한을 설정 할 때 중간 테이블을 생각은 했지만 처음에는 유저와 보드, 유저와 칼럼, 유저와 카드, 유저와 체크리스트 등 모두에 중간테이블을 생성해서 관리하려고 접근을 했다. 하지만 생각했을 때 비효율적이라고 판단하여 보드와 유저사이에 중간테이블을 두고 권한테이블을 따로 만들어서 관계설정을 해주었다. 이렇게 함으로써 해당 유저가 어떤 권한을 가졌는지 알 수 있고 그것에 따라 수행할 수 있는 기능을 제한할 수 있다고 판단했다. 또한 Issue를 발행해서 팀원끼리 이슈에 대해서 댓글로 소통할 수 있는 기능도 추가하였다.
그래서 필수적으로 구현할 기능은 다음과 같다.
- 사용자
- 권한 설정
- 보드
- 컬럼
- 카드
- 체크리스트
- 업무 이슈
기능은 간단해 보이지만 각각에 CRUD와 관계까지 생각해 보면 구현할 부분이 많았다. 당장 준비단계에서 API명세서를 작성한 것만 봐도 꽤 많았다. 이후에도 팀원끼리 정해야 할 것이 많았다.
- API 호출 시, 발생가능
- 예외케이스
- 상태코드
- build.gradle 설정
- DTO 를 어떻게 짤 건지
- 반환 DTO??
- package 구성
- 깃허브 브랜치 전략
- Test Config
- ( CI/CD 설정 )
- 예외처리 ::
- ENUM 처리할 건지
- 커스텀 클래스를 팔건지
전 프로젝트 진행시 사전단계를 미흡하게 하고 진행했을 때 나중에 코드작업을 할 때 더 힘들다고 느꼈기 때문에 최종프로젝트 전 마지막 팀프로젝트이기 때문에 확실히 하고 진행하려고 팀원끼리 노력하였다. 그리고 내가 구현해야 할 부분은 체크리스트 부분이다.
· 오늘 서칭 한 자료
https://www.notion.so/API-Reference-5758b834b93243dd877d69cecb5175e1
· 느낀 점
- 사전준비에 확실히 하고 진행하니 든든한 느낌이 든다.
- 필수구현 기능을 빨리 구현하고 챌린지로 둔 것들도 구현해보고 싶다.
- 아직 이해하지 못하고 넘어간 부분이 있는데 코드작업하면서 복습도 확실히 하고 진행해야 할 거 같다. (이거 끝나면 최종프로젝트!!!!)
'Today I Learned' 카테고리의 다른 글
2023-12-28 TIL 업무 관리 시스템 팀프로젝트(3) (0) | 2023.12.29 |
---|---|
2023-12-27 TIL 업무 관리 시스템 팀프로젝트(2) (0) | 2023.12.28 |
2023-12-21 TIL (0) | 2023.12.21 |
2023-12-11(BA클럽 KPT 회고) (0) | 2023.12.11 |
2023-12-07 TIL (0) | 2023.12.07 |