32nd GoSopt WebJam ๐ณLesson ๐Notification ๐Service
![](https://private-user-images.githubusercontent.com/100409061/252206647-d9ba9eb3-fbbc-4e11-9ebc-59ea2ec19f56.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMTI5NzYsIm5iZiI6MTczOTIxMjY3NiwicGF0aCI6Ii8xMDA0MDkwNjEvMjUyMjA2NjQ3LWQ5YmE5ZWIzLWZiYmMtNGUxMS05ZWJjLTU5ZWEyZWMxOWY1Ni5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQxODM3NTZaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hZThkYjBjMzdkMGRjMzhkMmQyZDgyZDQxNjIzOTI3YTNmYTY1NGMzN2RhMDhjYWFiZTg0ZDhjOThkZmJmZGJmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.q22btOgpoCtnnyhjZp1AMskr1p_2yuapHDaeuCXrh4s)
๐ ์ฌ์ด ์์
๊ด๋ฆฌ๋ก ์ด๋ฆฌ๋ ์ ํํ ๋์ ๊ฒฐ์ค ๐ณ
๊ณผ์ธ์ ์ถ๊ฒฐ ์ฒดํฌ๋ถํฐ ์์
๋น ๊ด๋ฆฌ๊น์ง ํ๋ฒ์ ํด๋ฆญ์ผ๋ก ์ฝ๊ฒ ๊ด๋ฆฌํ๋ ์๋น์ค
![]() |
![]() |
---|---|
๐์ ์ํ๐ | ๐๋ฐ์์ ๐ |
๐ FCM ์๋ฆผ ๊ตฌํ | ๐ ๋์ปค&์ ํจ์ค CI/CD |
๐ Lesson ๊ด๋ จ api | ๐ ๋ก์ปฌ ๋ก๊ทธ์ธ&ํ์๊ฐ์ |
๐ Payment ๊ด๋ จ api | ๐ Schedule ๊ด๋ จ api |
โโโ ๐ย main
โโโ ๐๏ธย resources
โโโ ๐ย application.yaml
โโโ ๐ย domain
โโโ ๐ย entity(์ํฐํฐ)
โโโ ๐ย controller(์ปจํธ๋กค๋ฌ ํ์ผ)
โโโ ๐ repository(๋ ํฌ์งํ ๋ฆฌ ํด๋)
โโโ ๐ย service(์๋น์ค ํ์ผ)
โโโ ๐ย exception(Exception class ํ์ผ)
โโโโ ๐๏ธย advice
โโโ ๐ย dto(dto ํ์ผ)
โโโ ๐๏ธย request
โโโ ๐๏ธย response
โโโ ๐๏ธ assembler
โโโ ๐ย common(๊ณต์ฉ ํด๋์ค ๊ด๋ฆฌ)
โโโ ๐๏ธย entity(๊ณตํต ์ํฐํฐ)
โโโ ๐๏ธย dto (๊ณตํต DTO)
โโโ ๐๏ธย exception (๊ณตํต exception enum, BasicException)
โโโ ๐๏ธย advice
โโโ ๐๏ธย resolver
โโโ ๐ย external(์ธ๋ถ ๊ด๋ฆฌ)
โโโ ๐ย config(์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)
โโโ ๐ย test
![แแ
ณแแ
ณแ
แ
ตแซแแ
ฃแบ 2024-04-05 แแ
ฉแแ
ฎ 6 25 31](https://private-user-images.githubusercontent.com/65851554/319935338-5dfc23bf-2cec-487c-b5c0-1677073f68fe.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMTI5NzYsIm5iZiI6MTczOTIxMjY3NiwicGF0aCI6Ii82NTg1MTU1NC8zMTk5MzUzMzgtNWRmYzIzYmYtMmNlYy00ODdjLWI1YzAtMTY3NzA3M2Y2OGZlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDE4Mzc1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY5N2QzNTZmMDc3MDM3YmNmODk3NmMzYzdkMDI5MzYyMDgzMTYxMDg3Y2NmZTUxMjM4NWY5MWE3NWQ3MmY3MzMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.zjoqdMI6ie4jL62U2NGvEXZ_7sKGKZEpm0vGCQ9E3Gs)
![แแ
ณแแ
ณแ
แ
ตแซแแ
ฃแบ 2024-04-05 แแ
ฉแแ
ฎ 6 26 23](https://private-user-images.githubusercontent.com/65851554/319935545-6d0a4a84-6e7f-4ead-988c-daca44b054e9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMTI5NzYsIm5iZiI6MTczOTIxMjY3NiwicGF0aCI6Ii82NTg1MTU1NC8zMTk5MzU1NDUtNmQwYTRhODQtNmU3Zi00ZWFkLTk4OGMtZGFjYTQ0YjA1NGU5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDE4Mzc1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM1MDMwMGQxNDQ5MmVhZTA2NjZhMWYyM2EwYTA5YWVjM2ZiMGFjYzBiNmE5ZmZiYjBlM2IyMzFkYTkwZjgyZGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.p757GljvgrIblzRY_bEhaaNGLiQIKV24Ghh2ZN0d_FA)
![แแ
ณแแ
ณแ
แ
ตแซแแ
ฃแบ 2024-04-05 แแ
ฉแแ
ฎ 6 26 55](https://private-user-images.githubusercontent.com/65851554/319935703-ec85fefa-3a3a-4eb3-882a-56c6d43beee0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMTI5NzYsIm5iZiI6MTczOTIxMjY3NiwicGF0aCI6Ii82NTg1MTU1NC8zMTk5MzU3MDMtZWM4NWZlZmEtM2EzYS00ZWIzLTg4MmEtNTZjNmQ0M2JlZWUwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDE4Mzc1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNjN2M3ZTY2NDM0MDZhYTE3NWQyYWRkM2Y1MmU1NTIzMDRkMjlkZmZlZTk1ODcxMzdlNDU0MmZhOGM2YmExNTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.-c3TrEIm1b8DydDnHmf8B_9K5O1gAoB5x77L2sVsip8)
![แแ
ณแแ
ณแ
แ
ตแซแแ
ฃแบ 2024-04-05 แแ
ฉแแ
ฎ 6 27 40](https://private-user-images.githubusercontent.com/65851554/319935910-0a87bd87-be59-4206-bdef-129d5a764d1f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMTI5NzYsIm5iZiI6MTczOTIxMjY3NiwicGF0aCI6Ii82NTg1MTU1NC8zMTk5MzU5MTAtMGE4N2JkODctYmU1OS00MjA2LWJkZWYtMTI5ZDVhNzY0ZDFmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDE4Mzc1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRkNDYyZDBiZTk1Y2UyZWI2YmQ3MzdjMmE4OGI2MDA4Mzc4NGQzMmJlN2M4YTczNTBhNWYxMGJhNDIyMDA5YTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.0g7kFbMNi60GMm-KHjD9cgWMxDwWs2xzEkPi8HJ5Kuk)
๐ก ๋๋ฃ๋ค๊ณผ ๋งํฌ๋ฅผ ํต์ผํ๊ธฐ ์ํด ์ปจ๋ฒค์ ์ ์ง์ ํฉ๋๋ค. ์คํฉ์ง์กธ์ ์ฝ๋๊ฐ ์๋, ํ ์ฌ๋์ด ์ง ๊ฒ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ถํ ์ ์ง๋ณด์๋ ํ์ ์์ ๋์์ด ๋ฉ๋๋ค. ๋ด๊ฐ ์ฝ๋๋ฅผ ์๊ฐํ๋ฉด์ ์งค ์ ์๋๋ก ํด์ฃผ๋ ๋ฃฐ์ด๋ผ๊ณ ์๊ฐํด๋ ์ข์ต๋๋ค!
๋ช ๋ช ๊ท์น(Naming Conventions)
-
์ด๋ฆ์ผ๋ก๋ถํฐ ์๋๊ฐ ์ฝํ์ง ์ ์๊ฒ ์ด๋ค.
-
๋จ์๋ฅผ ๊ธฐ๋ณธํ์ผ๋ก ํ๋ค.
- ๊ธฐ๋ฅ ์์ฒด์์ ๋จ์, ๋ณต์๋ฅผ ๊ตฌ๋ถํ๋ ๊ฒฝ์ฐ์๋ง ๋ณต์ ์ฌ์ฉ ex. ๋ค์ค์ญ์ , ๋จ์ผ์ญ์
-
DB์ ํ ์ด๋ธ, ํด๋์ค์๋
PascalCase
๋ฅผ ์ฌ์ฉํ๋ค. -
๋ณ์, ๋ฉ์๋์๋
camelCase
๋ฅผ ์ฌ์ฉํ๋ค. -
DB์ ํ ์ด๋ธ์ ์นผ๋ผ์๋
snake_case
๋ฅผ ์ฌ์ฉํ๋ค. -
์์, enum์๋
UPPER_SNAKE_CASE
๋ฅผ ์ฌ์ฉํ๋ค. -
๋ฉ์๋๋
crud + http method
(๋์ฌ) + ๋ช ์ฌ ํํ๋ก ์์ฑํ๋ค.- c : ex.
createUser
- r : ex.
getUser
- u : ex.
updateUser
- d : ex.
deleteUser
- c : ex.
-
์ฝ์ด ์ฌ์ฉ์ ์ต๋ํ ์ง์ํ๋ค.
-
์ด๋ฆ์ ๋ค ๋จ์ด ์ด์์ด ๋ค์ด๊ฐ๋ฉด ํ์๊ณผ ์์๋ฅผ ๊ฑฐ์น ํ ์ฌ์ฉํ๋ค.
์ฃผ์(Comment)
-
ํด๋น ๋ฉ์๋๊ฐ ์ด๋์ ์ฐ์ด๋์ง ์ค๋ช ํ๋ค.
-
ํด๋น ๋ถ๊ธฐ๋ฌธ์ด ์ด๋ค ๋ถ๊ธฐ์ธ์ง ์ค๋ช ํ๋ค.
-
๋ฐ๋ณต๋ฌธ์์ ์ด๋ค ์กฐ๊ฑด์์ ๋ฐ๋ณต๋๋์ง ์ค๋ช ํ๋ค.
-
์ ๋ ฌํ๊ณ ํํฐ๋งํ ๋ ์ด๋ค ์กฐ๊ฑด์ ์ ๋ ฌ๊ณผ ํํฐ๋ง์ธ์ง ์ค๋ช ํ๋ค.
๐ฑ git branch ์ ๋ต
main branch
: ๋ฐฐํฌ ๋จ์ branch
dev branch
: ์ฃผ์ ๊ฐ๋ฐ branch, main merge ์ ๊ฑฐ์น๋ branch
feat branch
: ๊ฐ์ ๊ฐ๋ฐ branch
- ํ ์ผ issue ๋ฑ๋ก ํ issue ๋ฒํธ์ isuue ์ด๋ฆ์ผ๋ก branch ์์ฑ ํ ์์
- ex) feat/#
issue num
-isuue name(๊ธฐ๋ฅ์์ฝ)
- ex) feat/#
- ํด๋น branch ์์
์๋ฃ ํ PR ๋ณด๋ด๊ธฐ
- ํญ์ local์์ ์ถฉ๋ ํด๊ฒฐ ํ โ remote์ ์ฌ๋ฆฌ๊ธฐ
- reviewer์ ์๋ก tagํ code-review
- comment ์ merge ๋ถ๊ฐ!
- review๋ฐ์ ํ, ๋ณธ์ธ์ด merge.
- main
- dev
- feat
โโโ #1-isuue name1
โโโ #2-isuue name2
๐ git commit message convention
- ์ปค๋ฐ์ ํ๊ธ๋ก ์์ฑํ๋ค.
ex) (#13)๐feat : ๋ณ๊ฒฝ ๋ด์ฉ
- ๐ feat: (์ํ๊ฐ) ์๋ก์ด ๊ธฐ๋ฅ ๊ตฌํ
- ๐ feat: (์์ ์ด๊ฐ) ์๋ก์ด ๊ธฐ๋ฅ ๊ตฌํ
- ๐ fix: ๋ฒ๊ทธ, ์ค๋ฅ ํด๊ฒฐ
- ๐งน chore: src ๋๋ test ํ์ผ์ ์์ ํ์ง ์๋ ๊ธฐํ ๋ณ๊ฒฝ ์ฌํญ ( ์๋ก์ด ํ์ผ ์์ฑ, ํ์ผ ์ด๋, ์ด๋ฆ ๋ณ๊ฒฝ ๋ฑ )
- โป๏ธ refactor: ๋ฒ๊ทธ ์์ ์ด๋ ๊ธฐ๋ฅ ์ถ๊ฐ๊ฐ ์๋ ์ฝ๋ ๋ณ๊ฒฝ ( ์ฝ๋ ๊ตฌ์กฐ ๋ณ๊ฒฝ ๋ฑ์ ๋ฆฌํฉํ ๋ง )
- ๐๏ธ build: ๋น๋ ์์คํ
๋๋ ์ธ๋ถ์ ์ํฅ์ ๋ฏธ์น๋ ๋ณ๊ฒฝ ์ฌํญ ์ข
์์ฑ ( ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ ๋ฑ )
- ๐ perf: ์ฑ๋ฅ์ ํฅ์ ์ํค๊ธฐ ์ํ ์ฝ๋ ๋ณ๊ฒฝ
- ๐งช test: ํ
์คํธ ์ถ๊ฐ ๋๋ ์ด์ ํ
์คํธ ์์
- ๐ docs: README๋ WIKI ๋ฑ์ ๋ฌธ์ ๊ฐ์
- โช๏ธ revert: ์ด์ ์ปค๋ฐ์ ๋๋๋ฆฌ๋ ๊ฒฝ์ฐ
- ๐ฆ ci: CI ๊ตฌ์ฑ ํ์ผ ๋ฐ ์คํฌ๋ฆฝํธ ๋ณ๊ฒฝ
- ๐๏ธย merge: ๋ค๋ฅธ๋ธ๋ ์น๋ฅผ mergeํ๋ ๊ฒฝ์ฐ
- ๐ย init : Initial commit์ ํ๋ ๊ฒฝ์ฐ