petkpetk
๐ ํ๋ก์ ํธ ์๊ฐ
๋๋ฌผ ์ ํธ๊ฐ๋ค์ ์ปค๋ฎค๋ํฐ์ด์ ์จ๋ผ์ธ ์ผํ๋ชฐ์ ๊ฒฐํฉํ ๋ฉํฐ ํ๋ซํผ
๋ฐ๋ ค๋๋ฌผ์ ์ฌ๋ํ๋ ์ฌ๋๋ค์ด ์ง์ ๋ง๋ค์ด๊ฐ๋ โ์ํ ํ๋งค ์ค๊ฐ ์ปค๋ฎค๋ํฐ ํ๋ซํผโ ์
๋๋ค.
๐งโ๐คโ๐ง ํ์ ์๊ฐ
๐๏ธ Architecture
๐พ ERD ๊ตฌ์กฐ
๐ ๏ธ ๊ธฐ์ ์คํ
Collaboration tool
Evironment
Front-End
Back-End
Data
Test
Infra
๐ฑDemo
๐ ํ์๊ฐ์
๊ณผ ๋ก๊ทธ์ธ |
๐ ๋ฉ์ธ ์กฐํ |
|
|
๐ง๐ปโ๐ป ์ํ์กฐํ |
๐ ์ํ ๋ฐ๋ก ๊ฒฐ์ |
|
|
๐ต ์ฅ๋ฐ๊ตฌ๋ ๊ฒฐ์ |
๐ ๋ฆฌ๋ทฐ ์์ฑ / ์์ |
|
|
โ
๊ฒ์๊ธ ๋ฑ๋ก / ์์ |
โ
๊ฒ์๊ธ, ๋๊ธ ์กฐํ |
|
|
๐ 1๋1 ์ง๋ฌธ ๋ฑ๋ก, ์ญ์ |
|
๐ ๊ด๋ฆฌ์ ํ์๊ฐ์
|
๐ ๊ด๋ฆฌ์ ์น์ธ |
|
|
๐ ๊ด๋ฆฌ์ ๋ก๊ทธ์ธ |
๐ ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ |
|
|
๐ ๊ด๋ฆฌ์ qna ๊ด๋ฆฌ |
๐ ๊ด๋ฆฌ์ ๊ณต์ง์ฌํญ ๊ด๋ฆฌ |
|
|
๐ ๊ด๋ฆฌ์ faq ๊ด๋ฆฌ |
๐ ๊ด๋ฆฌ์ ํ์,์์ดํ
,๊ฒ์๊ธ ๊ด๋ฆฌ |
|
|
๐ ํน์ฅ์ ๊ธฐ์
โจ๊ฐ์ฒด์งํฅ&๋๋ฉ์ธ์งํฅ ์ค๊ณ ๋ฐ ๊ตฌํ
- ํ๋์ ๋ฉ์๋๊ฐ ํ๋์ ๊ธฐ๋ฅ์ ์ถฉ์คํ๋๋ก ๊ตฌํ (SRP)
![SRP](https://github.com/10geukbok/petkpetk/assets/110523580/6e0af18c-27c3-4150-8fea-ddb357375bcf)
- ๊ฐ์ฒด ์ค์ค๋ก ์ฒ๋ฆฌํ ์ ์๋ ๋ถ๋ถ์ ๋ํ ์ฑ
์ ๋ถ์ฌ (์บก์ํ)
![์บก์ํ](https://github.com/10geukbok/petkpetk/assets/110523580/5129e5b7-df57-4670-bb6e-7cea48b1090f)
- ํจ์ํ ์ธํฐํ์ด์ค์ ๋๋ค์์ ์ด์ฉํ ์ฑ
์๊ณผ ์ญํ ๋ถ๋ฆฌ (OCP, ISP)
![OCP, ISP](https://github.com/10geukbok/petkpetk/assets/110523580/eedd5120-7199-48c7-9c46-3b9945d7b952)
- ์คํธ๋ฆผ API ์ ๊ทน ์ด์ฉ, if๋ถ๊ธฐ๋ฌธ๊ณผ for๋ฐ๋ณต๋ฌธ ์ง์
![๋ฐ๋ณต๋ฌธ ์ง์](https://github.com/10geukbok/petkpetk/assets/110523580/ca954f1f-41a1-4d6f-ad81-2f4801a489af)
โจ ์ฟผ๋ฆฌ ๋ฉ์๋, ์ฟผ๋ฆฌDsl ์ ๊ทน ํ์ฉ Db๋ก์ง ๊ตฌํ
- ์ฟผ๋ฆฌ ๋ฉ์๋๋ฅผ ํ์ฉํ ๊ฐ๋
์ฑ ์ข๊ณ ์ ์ฐํ ์ฟผ๋ฆฌ ์์ฑ
![์ ์ฐํ ์ฟผ๋ฆฌ ์์ฑ](https://github.com/10geukbok/petkpetk/assets/110523580/993bd234-b04f-462d-a7bb-2f4bf7306f6b)
- ์ฟผ๋ฆฌ Dsl ํ์ฉํ ๋์ ์ฟผ๋ฆฌ ์์ฑ ๋ฐ ์ฟผ๋ฆฌ ์ต์ ํ
![์ฟผ๋ฆฌ ์ต์ ํ1](https://github.com/10geukbok/petkpetk/assets/110523580/66f6865c-2302-45cd-bd90-1334e932ebe8)
![์ฟผ๋ฆฌ ์ต์ ํ2](https://github.com/10geukbok/petkpetk/assets/110523580/21f6b9c0-b159-48db-b87f-8ad66303694d)
๐ ํธ๋ฌ๋ธ ์ํ
- UserAccount ์ํฐํฐ์ RoleType์ ์ด๋ป๊ฒ ํ ๊น?
- Address๋ ๋ญ๊ฐ ๋ง์? ๋ค๋์ผ vs. Embedded
- ์ฆ์ Entity โ Dto ๋ณํ, ์ฝ๊ฒ ํ ์ ์์๊น?
- ์ด๋ฏธ์งโฆ ์ด๋ป๊ฒ ์ฒ๋ฆฌํด์ผ ๊น๋ํ ๊น?
- createdBy์ null์ด ๋ฌ๋ค๊ณ ?
- ์์
์ ์ โฆ ๋ค ์ข์๋ฐ Security ์ธ์ฆ ๊ฐ์ฒด๋ ๋ค๋ฅด์์!
- Google vs. Naver & Kakao ๋ํฌ๋ค ์ ๋ค๋ฅด๋ ?!
- ์ด๋ฉ์ผ ์ธ์ฆ ์ฝ๋, ์ ๊น๋ง ๋ณด๊ดํด์ผ ํ๋๋ฐโฆ
- ์๋ฒ์ ์๋ฒ๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ
- ์ด๋ด ๋๋ flushing ์ด ํ์ํ๋ค๊ณ ?
- @ManyToMany ํด์ํ๊ทธ ๊ตฌํ ์. ๊ทธ๋ฐ๋ฐโฆ
- @ManyToMany ๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ฉด ?
- Security, ๋์ ํด์ค์ ๊ณ ๋ง์ด๋ฐ ์ด๊ฑด ๋ด๊ฐ ํ ๊ฒ
- ํ๋ฒ์ ๋ง์ฃผ์น ์ค ์์์ง, ์๋์ฐ vs. ๋งฅโฆ
- ๋ํ ์ด๋ฏธ์ง๋ง ๊ฐ์ ธ์์ค!
- ๋ฆฌ๋ทฐ ๋ณ์ , ์ํ์ ํ์ ๋น๋ ค๋ณด์
- @ResponseBody ๋ ํ๋๋ก ์ถฉ๋ถํ๊ตฌ๋?
๐ฏ ํ๋ก์ ํธ ์ปจ๋ฒค์
์คํฌ๋ผ ๋ฐ ์ฝ์ดํ์
- ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ AM 10์
- ํ๋ก์ ํธ ์ฝ์ด ํ์ 10 ~ 18
์ปค๋ฐ ๊ท์น
- โจ feat : ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ, ๊ธฐ์กด์ ๊ธฐ๋ฅ์ ์๊ตฌ ์ฌํญ์ ๋ง์ถ์ด ์์
- ๐ fix : ๊ธฐ๋ฅ์ ๋ํ ๋ฒ๊ทธ ์์
- ๐ท build : ๋น๋ ๊ด๋ จ ์์
- ๐ฆ chore : ํจํค์ง ๋งค๋์ ์์ , ๊ทธ ์ธ ๊ธฐํ ์์ ex) .gitignore
- ๐ docs : ๋ฌธ์(์ฃผ์) ์์
- ๐จ style : ์ฝ๋ ์คํ์ผ, ํฌ๋งทํ
์ ๋ํ ์์
- โป๏ธ refactor : ๊ธฐ๋ฅ์ ๋ณํ๊ฐ ์๋ ์ฝ๋ ๋ฆฌํฉํฐ๋ง ex) ๋ณ์ ์ด๋ฆ ๋ณ๊ฒฝ
- ๐ release : ๋ฒ์ ๋ฆด๋ฆฌ์ฆ
- ๐ merge : ๋ณํฉ
- ๐ db : ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ์์
- ๐ฝ api : api ๊ด๋ จ ์์
๊นํ๋ธ
- ๋ธ๋์น ์ ๋ต์ git flow ๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
- Pull Request ๋ก๋ง, merge ํ๋๋ก ํ์ต๋๋ค.
์ฝ๋
์ฝ๋ ์ปจ๋ฒค์
์ naver-intelliJ-formatter ๋ฅผ ์ ์ฉํ์ต๋๋ค.
์ฝ๋ฉ ์ปจ๋ฒค์
์ ์ค์ํ๋ฉด ๊ฐ๋
์ฑ์ด ์ข์์ง๊ณ ์ฑ๋ฅ์ ์ํฅ์ ์ฃผ๊ฑฐ๋ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๋ ์ ์ฌ์ ์ธ ์ํ ์์๋ฅผ ์ค์ฌ์ค ์ ์ง๋ณด์ ๋น์ฉ์ ์ค์ผ ์ ์๊ธฐ ๋๋ฌธ์ Java ์์ ๋์ค์ ์ธ '๋ค์ด๋ฒ์ ์๋ฐ ์ปจ๋ฒค์
' ์ ์ ์ฉํ์์ต๋๋ค.