당신만의 미라클 타임을 찾아드려요.
JDK 17
Spring 3.0.2
MySQL 8.0.32
git clone https://github.com/do-sopkathon-android-2/android-2-server.git
cd android-2-server/sokathon-server
./gradlew build -x test
cd build/libs
java -jar [JAR 파일 이름]
└── 🗂️ src
├── 🗂️ main
│ ├── 🗂️ java/org/sopt/sopkathonserver
│ │ ├── 🗂️ common
│ │ │ └── 🗂️ advice
│ │ ├── 🗂️ controller
│ │ │ └── 🗂️ dto
│ │ │ ├── 🗂️ request
│ │ │ └── 🗂️ response
│ │ ├── 🗂️ domain
│ │ │ └── 🗂️ enums
│ │ ├── 🗂️ exception
│ │ │ └── 🗂️ model
│ │ ├── 🗂️ repository
│ │ └── 🗂️ service
│ └── 🗂️ resources
└── 🗂️ test| 도소현 | 이나경 |
|---|---|
![]() |
![]() |
| DO SOPT 서버파트 OB | DO SOPT 서버파트 YB |
- To-do 당 1개의 이슈 생성
- Git-Flow 전략
**main**: 프로덕션용 브랜치 (배포 시 사용될 버전만 존재)**develop**: 개발 전용 브랜치**이슈 기반 브랜치**- 생성된 이슈 번호로 브랜치를 생성한다
- 이슈번호 뒤에
-해야 할 기능 요약(자유롭게 정의) - feat/#{이슈번호}-aaa
- ex. feat/#1-aaa,
- ex. hotfix/#3-signin-password
--------main--------
\
--------feat/1-aaa------
\
--------feat/2-aaa------- PR이 Merge되면 해당 브랜치는 삭제한다.
#이슈번호 [feat] 커밋 내용 요약 블라블라
ex. #123 [feat] 로그인 구현
| tag | description |
|---|---|
| feat | 새로운 기능 추가 |
| fix | 자잘한 수정 |
| bugfix | 버그 수정 |
| refactor | 코드 리팩토링 시에만 사용 |
| chore | config 및 라이브러리, 빌드 관련 파일 수정 (프로덕션 코드 수정 x) |
| rename | 파일명, 변수명 수정 |
| docs | 문서 수정 |
| comment | 주석 추가 및 수정 |
| remove | 기능 삭제 및 파일 삭제 |
| test | 테스트 코드 작성 |
| !HOTFIX | hotfix |
- 최대한 관련 커밋 tag에 맞게 커밋 분리해서 push 하기
- lowerCamelCase 사용
- 클래스, 인터페이스, db스키마의 경우 UpperCamelCase
- 함수명 : 동사+명사
- API와 직결되는 함수는 CRUD 명칭을 앞에 달기
- ex. Create → create000 Read → get000 (getUserById, getUsers) Update → update000 Delete → delete000
- API와 직결되는 함수는 CRUD 명칭을 앞에 달기
- 변수명 : 명사+명사 or 형용사+명사
- 명사는 단수로 쓰지 않되 개수를 나타내는 단어 꼭 적어주기
- ex. 복수 : getUsers() / 단수 : getUser()
- 폴더명
- 소문자 사용
- 패키지
- controller
- service
- repository
-
Exception
- 서비스 로직에 관련된 예외는 서비스 단에서 던지기
- validation 관련 예외는 컨트롤러 단에서 던지기
-
Type Assertion
- type 지정 필수
- 변수, 함수 모두
- 서비스 단에서 스키마와 관련된 변수 및 함수 타입 단언은 경우의 따라 단언을 하지 않을 수 있다.
- type 지정 필수
-
주석 작성 시 띄어쓰기 넣기
// 이렇게 /** * 여기에 이렇게 합시다 */
- 들여쓰기에는 탭(tab) 대신 4개의 space를 사용합니다.
- 클래스 내 변수는 한 줄 공백을 두고 작성합니다.
-
함수 정의가
**최대 길이를 초과하는 경우**에는 아래와 같이 줄바꿈합니다.public static UserResponseDto of(Long id, String nickName, Rank userRank, int point, int coupon, long interest, int waiting, int finish, int ready, int delivering, int delivered, String address, String phoneNumber) { ... } }
Dto명
- Entity명 + Response or Request + Dto
ex) UserResponseDto
메소드명
- HTTPMethod + Entity명
ex) getUsers
- Entity명 + Service
ex) UserSevice
- Entity명 + Controller
ex) UserController
그 외 모든 변수명은 lowerCamelCase 사용


