패스트캠퍼스 백엔드 과정 4기 부트캠프 #06. 미니프로젝트 회고 🗓️

yerim·2023년 5월 30일
0

🗓️ Panrty

연차/당직 관리 시스템

프로젝트 주제

🔥 주제: 연차/당직 프로젝트 만들기


프로젝트 기간

  • 프로젝트 설명 : 2023년 4월 25일(화)
  • 총 기간 : 2023년 5월 2일(화) - 2023년 5월 19일(금)
  • 결과물 제출: 2023년 5월 16일(화) ~15:00
  • 발표회 / 공유회 기간: 2023년 5월 17일(수) - 2023년 5월 19일(금)
  • 진행 장소 : 온라인(줌) / 오프라인 강의장

주요 기능

🔐 로그인 / 회원가입 / 유저 관리권한

  • JWT 토큰 발급을 이용한 로그인 구현
  • user/admin api 구분
  • 회원가입시 가입 요청대기

📇 연차 / 당직 신청

  • 날짜 선택 및 연차/당직 신청
  • 연차 보유개수보다 신청 연차일이 더 많으면 신청불가

📨 연차 / 당직 승인

  • Admin결재 -> 승인/반려
  • 승인시 연차 보유개수 다시 한 번 검증, 문제 없다면 신청일 만큼 보유개수에서 차감
  • 승인 리스트 검색 가능

🗓️ 모든 유저 연차/당직 월별 조회


프로젝트 구조


Tech Stack

웹 서버 (프로젝트 요구사항)
Spring boot 2.7.11
JDK 11
Gradle 7.6.1

환경 세팅
Docker

데이터 베이스
MySQL 5.7
H2(테스트)

이미지 처리
AWS S3
Thumbnailator

인증 관리
JWT

배포
AWS EC2
CI/CD
Github Actions

테스트
JUnit
Mokito

문서화
Asciidoctor
Rest Docs

로그 모니터링
Sentry


프로젝트 결과물

API 명세서

💡 User - 회원관련 기능

API PathHTTP Method기능
/api/signupPOST🌟 회원가입
/api/loginPOST🌟 로그인
/api/emailGET🌟 이메일 중복체크
/api/user/usersGET🌟 유저 리스트
/api/user/users/{id}GET🌟 유저 상세정보
/api/user/myinfoGET🌟 마이페이지
/api/user/myinfoPOST🌟 내 정보 수정

💡 Admin - 회원관련 기능

API PathHTTP Method기능
/api/admin/signupGET💖 회원가입 요청 리스트
/api/admin/statusPOST💖 회원가입 승인
/api/admin/role/listGET💖 전체유저 정보리스트
/api/admin/role/updateGET💖 회원권한 업데이트
/api/admin/searchGET💖 회원 검색(유저정보 출력)

💡 User - 연차/당직관련 기능

API PathHTTP Method기능
/api/user/myannualGET🌟 내 연차 리스트
/api/user/mydutyGET🌟 내 당직 리스트
/api/user/nexteventGET🌟 가장 빠른 연차당직 (D-day계산)
/api/user/event/addPOST🌟 연차/당직 신청
/api/user/event/cancelPOST🌟 연차/당직 신청취소(결재 전에만 가능)
/api/user/event/modifyPOST🌟 연차/당직 신청수정(결재 전에만 가능)
/api/user/event/listGET🌟 모든 유저 연차/당직 리스트(월별조회)

💡 Admin - 연차/당직관련 기능

API PathHTTP Method기능
/api/admin/annual/orderPOST💖 연차 승인
/api/admin/duty/orderPOST💖 당직 승인
/api/admin/annual/requestGET💖 연차신청 리스트
/api/admin/duty/requestGET💖 당직신청 리스트
/api/admin/annual/approvalGET💖 결재된 연차 리스트
/api/admin/duty/approvalGET💖 결재된 당직 리스트

화면구성

로그인/회원가입

로그인

회원가입

유저 페이지

메인 페이지 연차 / 당직 현황

마이 페이지

메인 페이지 모달 캘린더

관리자 페이지

관리자 권한 수정

계정 승인

연차/당직 승인


회고

프로젝트가 모두 끝나고 FE와 BE팀원들이 모여 프로젝트 기간동안 아쉬웠던 점을 얘기해보며 회고하는 시간도 가졌다!
아래는 내가 아쉬웠던 점이다.

아쉬운 점

  1. 피그마페이지를 보고 대략적으로 API명세서 작성하고 기능을 구현하려고 하니 정확히 어떤 데이터가 필요한지 모르겠었고 그로인해 변동사항도 수정사항이 점점 많아졌던 점
  2. 기능구현 유무에만 집중을 하고 DB에서 데이터를 더 효율적으로 가져오는 것과 같은 백엔드에서 고려해야할 사항들에 대해서는 신경쓰지 못했던 점
  3. 역할분담을 도메인별로 하지않고 user, admin으로 나눠서 로직이 서로 겹치거나 같은 레포지토리에 접근해 같은 메소드를 썼는데 변경사항이 생겼을때 오류가 나서 다시 만들어야했던 점
  4. 프론트와 협의 후 어떤 페이지에 무슨 데이터가 필요한지 정확하게 물어봤어야 함
  5. 기능 구현뿐만 아니라 성능에도 신경쓰며 개발해야함 , 리팩토링 과정 필요
  6. 요구사항을 정확히 파악하고 역할분담을 좀 더 효율적으로 배분

프로젝트를 마치며

처음해보는 프론트와의 협업이였는데 사실 백엔드 멘토분이 앞 기수 파이널 프로젝트 중인데 프론트와 백끼리 트러블이 많아 고민중이라고 하셔서 처음에 걱정을 많이 했었는데 다행히 우리조는 큰 트러블 없이 프로젝트를 마무리 할 수 있었다.

아쉬운 부분들도 많았지만 그래도 배울 점이 훨씬 많은 프로젝트여서 난 만족한다 !
과정이 모두 끝나고 아쉬운 부분들은 추후에 개인적으로라도 리팩토링 과정을 거쳐 더 완벽하게 만들고 싶은 마음이다:)
지금 파이널 프로젝트를 진행하고 있는데 이것도 화이팅이다 !

0개의 댓글