오늘은 팀 프로젝트 첫날로,
요구사항 명세서를 기반으로 프로젝트 설계를 진행했다.
🎈 오늘 한 일
기획자로부터 요구사항 명세서를 받았다는 설정! 그리고 팀원들과 함께 아래 작업을 진행했다.
1. ERD 작성
2. 테이블 명세서 작성
3. API 명세서 작성
4. 인프라 설계도 작성
오늘 하루 종일 팀원들과 함께 늦게까지 설계 작업을 진행했다. 솔직히 힘들고 어려운 시간이었지만, 최대한 좋은 설계를 도출하기 위해 정말 열심히 노력했다. 😢 내일 튜터님께 피드백을 받아 부족한 부분을 보완할 예정이다.
💻 ERD 설계과정
- 프로젝트의 요구사항을 분석하여 핵심 테이블들을 도출하고, 각 테이블 간의 관계를 정의했다.
- 테이블 간의 관계(1:N, M:N)를 설정하면서 연관성을 어떻게 구성할지 논의했다.
- API 설계 및 비즈니스 로직 구현을 고려해서 테이블을 설계하는 것이 굉장히 중요하다는 것을 깨달았다.
🤝 팀원들과의 협업 과정
- 각 도메인별로 역할을 나눴다.
나는 (Security와 JWT 관련 부분을 맡기로 했다. 사실 아직 자신은 없지만, 잘해지고 싶어서 도전했다! 😂
- 특정 테이블 관계 설정에서 의견 차이가 발생했다.
고민 끝에 튜터님께 조언을 구했고, 결국 정답은 없었고 정답이 정해진 것이 아니라 요구사항과 사용자의 라이프스타일에 따라 다를 수 있다는 점을 배웠다.
- 최적의 설계를 도출하기 위해 여러 방향으로 생각해보며 논의하는 과정이 유익했다.
📝 API 명세서 작성 과정
- 각자 맡은 도메인의 API 명세서를 작성하면서 요청과 응답의 데이터 구조를 좀 더 고민하는 좋은 시간이였다.
- 단순히 기능을 나열하는 것이 아니라, 실제로 데이터를 주고받는 과정까지 상세하게 설계하는 것이 중요하다는 것을 느꼈다.
오늘 배운 점 & 개선할 점
- 비즈니스 로직에 따라 ERD 구조가 달라질 수 있다 !
- 같은 요구사항이라도 어떤 방식으로 데이터를 처리할지에 따라 테이블 개수와 관계 설정이 완전히 달라질 수 있다.
- 이론만으로는 답을 찾기 어렵고, 실제 서비스에서 어떻게 동작할지를 고민하는 과정이 필요하다.
- JPA에 대한 이해가 부족한 나..😭
- 팀원들이 JPA 매핑 방식(OneToMany, ManyToOne, JoinColumn 등)에 대해 설명했는데,
아직 개념이 부족해서 일부 로직을 완전히 이해하지 못했다.
- 따라서, JPA의 다양한 매핑 전략과 실제 데이터베이스에서 어떻게 동작하는지 학습할 필요성을 느꼈다.
- 목표!
- JPA 매핑 및 데이터베이스 설계 개념 보완해서 추후 ERD 설계 과정에서 적극적으로 기여하기
- Security와 JWT 부분 완벽히 익혀서, 프로젝트에서 문제없이 구현할 수 있도록 노력하기!
마무리
오늘 하루 진짜 길었지만, 협업을 통해 고민하고 성장할 수 있었던 시간이었다.
내일은 피드백을 반영하고, 보완해야 할 부분을 공부하면서 더 발전하는 하루를 만들어야겠다!