[개요] 기다림 없는 축제를 위한 스마트 오더 앱
[기간] 2023.04.10~2023.05.19 (6주)
[소속] SSAFY 8기 2학기 자율 프로젝트
축제를 즐기고싶은 사용자의 입장에서 더욱 편안하게 축제를 즐길 수 있도록 하는 방법과, 부스의 입장에서 더욱 효율적으로 매출을 관리할 수 있는 방법을 고민하며 만들어졌습니다.
BackEnd
- Java 17
- Spring boot 3.0
- Spring Security
- Spring Data JPA
DB
- MySQL
Mobile
- Android Studio
- Kotlin
- Retrofit2
- Google Material Design
- Kakao Login SDK
- Toss Payments SDK
CI/CD & Infra
- jenkins
- Docker
- AWS EC2
- AWS S3
- NGINX
Data
- Fast API
be
├─ festo
│ └─ src
│ ├─ main
│ │ ├─ java
│ │ │ └─ com
│ │ │ └─ example
│ │ │ └─ festo
│ │ │ ├─ alert
│ │ │ │ ├─ adapter
│ │ │ │ │ ├─ in
│ │ │ │ │ │ └─ web
│ │ │ │ │ │ └─ model
│ │ │ │ │ └─ out
│ │ │ │ │ └─ persistence
│ │ │ │ ├─ application
│ │ │ │ │ ├─ port
│ │ │ │ │ │ ├─ in
│ │ │ │ │ │ └─ out
│ │ │ │ │ └─ service
│ │ │ │ └─ domain
│ │ │ ├─ booth
│ │ │ │ ├─ adapter
│ │ │ │ │ ├─ in
│ │ │ │ │ │ └─ web
│ │ │ │ │ │ └─ model
│ │ │ │ │ └─ out
│ │ │ │ │ ├─ AWSS3
│ │ │ │ │ └─ persistence
│ │ │ │ ├─ application
│ │ │ │ │ ├─ port
│ │ │ │ │ │ ├─ in
│ │ │ │ │ │ └─ out
│ │ │ │ │ └─ sevice
│ │ │ │ └─ domain
│ │ │ ├─ common
│ │ │ │ ├─ event
│ │ │ │ ├─ exception
│ │ │ │ ├─ jpa
│ │ │ │ ├─ model
│ │ │ │ ├─ mutipartfile
│ │ │ │ └─ S3
│ │ │ ├─ festival
│ │ │ │ ├─ adapter
│ │ │ │ │ ├─ in
│ │ │ │ │ │ └─ web
│ │ │ │ │ │ └─ model
│ │ │ │ │ └─ out
│ │ │ │ │ ├─ AWSS3
│ │ │ │ │ └─ persistence
│ │ │ │ ├─ application
│ │ │ │ │ ├─ port
│ │ │ │ │ │ ├─ in
│ │ │ │ │ │ └─ out
│ │ │ │ │ └─ service
│ │ │ │ └─ domain
│ │ │ ├─ FestoApplication.java
│ │ │ ├─ global
│ │ │ │ ├─ auth
│ │ │ │ │ └─ model
│ │ │ │ └─ config
│ │ │ ├─ member
│ │ │ │ ├─ adapter
│ │ │ │ │ ├─ in
│ │ │ │ │ │ └─ web
│ │ │ │ │ │ └─ model
│ │ │ │ │ └─ out
│ │ │ │ │ └─ persistence
│ │ │ │ ├─ application
│ │ │ │ │ ├─ port
│ │ │ │ │ │ ├─ in
│ │ │ │ │ │ └─ out
│ │ │ │ │ └─ service
│ │ │ │ └─ domain
│ │ │ ├─ order
│ │ │ │ ├─ adapter
│ │ │ │ │ ├─ in
│ │ │ │ │ │ └─ web
│ │ │ │ │ │ └─ model
│ │ │ │ │ └─ out
│ │ │ │ │ └─ persistence
│ │ │ │ ├─ application
│ │ │ │ │ ├─ port
│ │ │ │ │ │ ├─ in
│ │ │ │ │ │ └─ out
│ │ │ │ │ └─ service
│ │ │ │ └─ domain
│ │ │ └─ product
│ │ │ ├─ adapter
│ │ │ │ ├─ in
│ │ │ │ │ └─ web
│ │ │ │ │ └─ model
│ │ │ │ └─ out
│ │ │ │ ├─ AWSS3
│ │ │ │ └─ persistence
│ │ │ ├─ application
│ │ │ │ ├─ port
│ │ │ │ │ ├─ in
│ │ │ │ │ └─ out
│ │ │ │ └─ service
│ │ │ └─ domain
│ │ └─ resources
│ └─ test
└─ README.md
├─app
│ ├─manifest
│ ├─java
│ │ └─com
│ │ └─nowusee
│ │ └─festo
│ ├─res
│
├─Gradle Scripts
├─dummy_data
│ ├─data.csv
│ ├─store.json
│ └─user_dummy.json
├─db.py
├─main.py
├─model.py
└─requirements.txt
👩💻 김종근 - 팀장, BE
👨💻 이충무 - BE
👨💻 이창민 - 빅데이터 추천
👨💻 장진문 - FE
👨💻 정무남 - FE
👨💻 정채은 - FE
💡 사용 브랜치
- feature - fe_develop에서 feature 분기, 기능 추가 후 fe_develop에 병합
- fe_develop - feature를 병합하기 위해 사용
- main - release 브랜치만 병합
💡 feature 브랜치 생성 및 종료 과정
// feature 브랜치(feature/login)를 'develop' 브랜치에서 분기
git checkout -b feature/login develop
/* ~ feature 브랜치에서 새로운 기능에 대한 코드 작성 ~ */
git add [작성 파일]
git commit -m "type: Subject"
git push origin feature/login
// 'develop' 브랜치로 이동한다.
git checkout develop
// 'develop' 브랜치에 feature/login 브랜치 내용을 병합(merge)한다.
git merge --no-ff feature/login
// Merging 메시지 입력
i 누르기 (INSERT 모드)
# 무시하고 아래로 이동해서 type: Subject 커밋 메시지 입력
입력 후 esc
:wq + enter
// (삭제 안해도됌) -d 옵션: feature/login에 해당하는 브랜치를 삭제한다.
git branch -d feature/login
// 'develop' 브랜치를 원격 중앙 저장소에 올린다.
git push origin develop
커밋 메시지 양식
type: Subject 설명
ex)
feat: Add 로그인 유효성 검사 기능
💡 type 규칙
- feat: 새로운 기능 추가
- fix: 버그 수정
- docs: 문서 수정
- style: 코드 포맷 변경, 세미콜론 누락, 코드 변경 없음
- refactor: 프로덕션 코드 리팩터링
- test: 테스트 추가, 테스트 코드 리팩터링, 프로덕션 코드 변경 없음
- chore: 빌드 테스크 업데이트, 패키지 매니저 환경설정, 프로덕션 코드 변경 없음
💡 Subject 규칙
- 동사(ex. Add, Update, Modify)로 시작
- 첫 글자 대문자
- 끝에 마침표 x