본 프로젝트는 구디 아카데미의 파이널 프로젝트로서, 헬스/짐 관련 지점 관리 및 사용자들이 일정을 예약할 수 있는 서비스를 구현하는 것을 목표로 합니다. 대부분의 기능은 CRUD 기반으로 구현되었으며, 실제 서비스를 구현하는 과정에서 발생할 수 있는 문제점들을 최소화하기 위해 체계적인 브랜치 전략을 채택하였습니다.
브랜치 전략의 주요 목적은 프로젝트의 코드베이스 안정성을 유지하고, 효율적인 팀 협업을 가능하게 하는 것입니다. 각 팀원은 개별적인 작업 브랜치에서 개발을 진행하며, 안정적이고 검증된 변경 사항만 develop
브랜치로 통합합니다.
- 본 프로젝트의 브랜치 전략은 코드베이스의 안정성을 유지하면서 효율적인 협업을 가능하게 하는 것을 목표로 합니다.
- 이를 위해 각 팀원은 개별적인 작업 브랜치에서 개발을 진행하며, 안정적이고 검증된 변경 사항만
develop
브랜치로 통합합니다.
-
개별 브랜치 작업: 각 팀원은 자신의 이름이나 기능에 따라 명명된 개별 브랜치에서 작업을 진행합니다. 이는 코드의 충돌을 방지하고, 작업의 분리를 돕습니다.
-
코드 리뷰 및 테스트: 작업이 완료되면, 해당 브랜치의 변경 사항을
develop
브랜치로 병합하기 전에 코드 리뷰와 테스트를 진행합니다. 이 과정을 통해 오류를 사전에 발견하고, 코드 품질을 유지합니다. -
품질 기록: 테스트 과정에서 발생되는 이슈들은 깃헙 이슈 기능을 이용해 과정을 기록했습니다.
-
Pull Request: 오류가 없고, 코드 리뷰를 통과한 경우에만
develop
브랜치에 Pull Request(PR)를 생성합니다. PR은 팀원들의 추가 리뷰를 거쳐 승인됩니다. -
develop
브랜치로 병합: PR이 승인되면, 안정적인 코드만develop
브랜치로 병합됩니다. 이를 통해develop
브랜치는 항상 최신이면서 안정적인 상태를 유지합니다.
이러한 브랜치 전략은 다음과 같은 이점을 제공합니다:
- 충돌 최소화: 각 팀원이 독립된 브랜치에서 작업함으로써 코드 충돌의 가능성을 크게 줄일 수 있습니다.
- 코드 품질 유지: 코드 리뷰와 테스트 과정을 거치며, 오류를 사전에 제거하고 코드의 안정성을 높입니다.
- 지속적인 통합: 안정적인 변경 사항만이
develop
브랜치에 통합되므로, 프로젝트의 지속적인 통합 및 배포에 유리합니다. - 이 전략은 프로젝트의 효율적인 관리와 팀원 간의 원활한 협업을 지원합니다.
- 시작일: 2023년 12월 21일
- 종료일: 2024년 1월 19일
- 유지보수 및 지속적인 보완: 프로젝트 종료 후에도 지속적인 업데이트 및 보완 작업 예정
본 프로젝트는 GYM 관련 간단한 ERP 시스템을 제공합니다. 주요 기능은 다음과 같습니다:
- 회원가입, 로그인, 내 정보 확인 및 수정, 비밀번호 변경, 계정 탈퇴 등의 기능 제공
- 멤버십 결제 및 간략한 결제 기능 구현
- 결제 후 운동 프로그램 선택 및 예약
- 출석 여부 조회 및 해당 프로그램에 대한 리뷰 작성
- 모든 회원 계정에 대한 문의 내용 작성 및 공지사항 조회
- 최상위 관리자 계정으로 로그인 후 다른 관리자 계정 추가 및 소속 지점 선택 기능
- 공지사항 작성 및 회원 문의사항에 대한 답변 기능
- 회원 리뷰에 대한 답변 및 멤버십 종류 관리 (추가/삭제/수정)
- 운동 프로그램 관리 (추가/삭제/수정)
- 지점별 운동 장비 발주 및 재고 확인 기능
본 프로젝트에서 사용된 주요 기술은 다음과 같습니다:
- 백엔드: Java, Spring Boot, JSP
- 프론트엔드: HTML5, CSS, JavaScript, jQuery, Vue3, Axios, Element-plus
- 데이터베이스: MariaDB, MyBatis
- 웹 어플리케이션 서버 (WAS): Tomcat
- 서버: AWS Lightsail
- 형상 관리: Git, GitHub
프로젝트에 참여한 팀 멤버와 그들의 역할은 다음과 같습니다:
- 권도헌: [역할 설명]
- 주가희: 소모품, 프로그램 관련 CRUD, 발주/폐기 기능 , 지점별 재고 확인, 소모품 파일 업로드
- 박겨레: 직원 계정 및 세션 관련 CRUD, 공지사항 입력 및 답변, 지점 정보 관리
- 김지산: 회원 계정 및 세션 관련 CRUD, 문의사항 및 리뷰 관리, 멤버십 관리, 결제 및 결제 취소 기능, 회원 결제 정보 관리
본 프로젝트의 구조는 다음과 같이 구성되어 있으며, 각 디렉토리와 파일의 주요 역할을 아래에 설명합니다.
src/
: 소스 코드를 포함하는 디렉토리.main/java/
: Java 소스 파일을 포함.main/resources/
: 정적 자원 및 설정 파일을 포함.test/
: 테스트 코드를 포함.
web/
: 웹 관련 파일을 포함하는 디렉토리.WEB-INF/
: 서버에 의해 사용되는 구성 파일 및 JSP 파일을 포함.
docs/
: 프로젝트 문서화를 위한 파일을 포함.lib/
: 외부 라이브러리 및 종속성을 포함.
pom.xml
: Maven 프로젝트 관리 및 빌드 설정 파일.application.properties
: Spring Boot 애플리케이션 설정 파일.home.jsp
: 메인 페이지 JSP 파일.- Class
Controller.java
: 각 Class의 관련 기능을 처리하는 컨트롤러.
회원 관리 모듈
: 회원가입, 로그인, 정보 수정 등 회원 관련 기능을 처리.예약 관리 모듈
: 운동 프로그램 예약 및 관리 기능을 담당.