데브코스 1차 프로젝트 회고

Socra·2025년 3월 19일
0

https://github.com/prgrms-be-devcourse/NBE4-5-1-Team07

이번 프로젝트는 모든 팀이 동일한 주제인 ‘커피 원두 쇼핑몰’을 개발하는 방식으로 진행되었으며, 개발 기간이 일주일로 짧았음에도 불구하고 팀원들의 참여도가 높아 많은 기능을 추가할 수 있었다.

특히 프로젝트 이전부터 매일 스크럼을 빠뜨리지 않고 진행해 팀원들 간 서로를 이해할 수 있는 시간이 많았다. 이러한 과정이 프로젝트 기간에서도 의사소통 비용을 줄이면서 협업의 효율성을 높이는 데 큰 도움이 되었다.


프로젝트에서 좋았던 점

1. 공통 용어 정리

프로젝트 초반에 Order, User 등 주요 도메인 용어를 팀원들과 논의하여 정리한 후 개발을 진행했다. 코드 레벨까지 반영하려고 노력한 덕분에 코드를 읽기 편했고, 팀원 간 의사소통도 원활하게 이루어졌다.

2. 역할 분배 및 협업 방식

팀원별로 담당 역할과 기능을 명확하게 분리하여 각자의 업무를 집중적으로 수행할 수 있었다. 또한, IntelliJ code with me로 페어 프로그래밍을 적극적으로 활용하면서 서로의 코드에 대해 피드백을 주고받으며 더 나은 방식으로 개선할 수 있었다.

3. 진행 상황 공유의 원활함

스크럼과 GitHub Projects의 칸반 보드를 통해 각자 자신의 진행 상황을 지속적으로 공유했고, 문제 발생 시에도 빠르게 공유하고 신속하게 해결할 수 있었다.

4. 발표 자료 및 발표 완성도

팀장님, 팀원들이 마지막까지 발표 자료를 열심히 준비하고, 순서도, 다이어그램을 활용해 발표의 완성도를 높이는 데 집중했다. 결과적으로 프로젝트의 주요 기능과 개발 과정을 효과적으로 전달할 수 있었다.


개선이 필요한 점

1. 인증/인가 등 중복되는 모듈의 분리 부족

  • 인증 및 인가 기능이 체계적으로 분리되지 않아 UserService의 변경이 다른 도메인의 코드에도 영향을 미치는 문제가 발생했다.
  • 인증/인가 기능이 여러 영역에서 사용되면서 코드 충돌이 빈번하게 발생했다.
  • 해결책: 인증, 인가 방식은 문제 발생 이후 멘토링에서 추천받은 커스텀 애너테이션을 만들어 해결할 수 있었다. 앞으로 여러 도메인에서 필요한 기능은 커스텀 애너테이션이나 인터페이스를 활용하여 사용 방식을 사전에 정의하고, 이를 바탕으로 개발을 진행하면 변경 사항을 최소화할 수 있을 것 같다.

2. RESTful API 설계의 어려움

  • 프론트엔드 경험이 부족한 상태에서 RESTful API 설계에 집중하다 보니, 한 페이지에서 너무 많은 요청을 처리해야 하는 상황이 발생했다.
  • 특정 페이지에서 필요한 데이터가 API 응답에 포함되지 않아 API를 수정하는 일이 잦았다.
  • RESTful 원칙을 따르는 리소스 중심의 API 설계는 적절하지만, 실제 웹 애플리케이션 개발에서는 적용이 어려운 부분도 있었다.
  • 서버 간 통신에 RESTful은 적합한 것 같지만, 프론트엔드만을 위한 백엔드 일 경우 융통성을 발휘하는 것도 좋을 것 같다고 느꼈다.
  • 해결책: 차후 프로젝트에서는 각 페이지에서 필요한 데이터를 유연하게 제공할 수 있도록 API를 설계하고, 웹 애플리케이션 전용 API를 구축하는 것이 더 적절할 것 같다.

3. 데이터 중심 설계의 한계

  • 프로젝트 초기에 ERD(Entity-Relationship Diagram)를 작성하고 엔티티 구조를 먼저 정의한 후 개발을 진행했다.
  • 하지만 개발이 진행되면서 엔티티 설계의 오류를 뒤늦게 발견하는 경우가 발생했고, 이를 수정하는 데 시간이 소요되었다.
  • 도메인 주도 설계(DDD)에 대한 개념적 이해가 부족하여 "엔티티 없이 어떻게 로직을 개발할 수 있을까?" 하는 혼란이 있었다.
  • 해결책: DDD 방식에서는 엔티티를 먼저 정의하는 것이 아니라, 도메인의 규칙, 행위, 속성을 우선적으로 고려한 후 엔티티와 데이터베이스 모델을 설계하는 것이 핵심임을 배우게 되었다.

마무리하며

짧은 기간 동안 진행된 프로젝트였지만, GitHub Flow, 협업 방식, API 설계, 인증/인가, 데이터 설계 등 여러 부분을 경험해볼 수 있었다. 특히, 기능을 구현하는 것만큼 설계와 구조적 접근이 중요함을 절감한 프로젝트였다.

✅ 인증/인가 같이 전반에 걸쳐 있는 기능을 명확하게 분리하고, 재사용성을 높이는 설계를 고려할 것
✅ RESTful API의 장단점을 고려해, 필요할 경우 프론트엔드 중심의 API 설계를 적용할 것
✅ 데이터 중심이 아닌 도메인 중심의 설계 방식을 더 깊이 이해하고 적용할 것

다음 프로젝트에서는 이러한 점들을 개선하여 더 나은 결과물을 만들어낼 수 있도록 노력해야겠다.


마지막으로, 프로젝트에 적극적으로 참여해 준 팀원들에게 감사의 마음을 전하고 싶다. 팀원들 모두 각자의 장점을 갖고 있었고, 특히 팀장님이 열정적으로 팀을 이끌어 프로젝트를 더욱 즐겁게 진행할 수 있었다. 😃

팀원들 모두 개발 역량이 탄탄해서 초기 역할 분배에 따라 원활하게 개발이 진행되었고, 협업을 통해 하나의 결과물을 만들어가는 과정에서 큰 보람을 느낄 수 있었다.

2개의 댓글

comment-user-thumbnail
2025년 3월 22일

2차 회고는 안하시나요? ㅋㅋㅋㅋ

1개의 답글

관련 채용 정보