ํ๋ก์ ํธ ๊ธฐ๊ฐ ๋์ ํ ๊ฒ ์ ๋ฆฌํ๋ ๊ธ
Back-end | ๋ก๊ทธ์ธ์ธ์ฆ | ํ์CRUD | ์ถ์ฒ ๋ถ๋งํฌ ์์คํ | OPENAPI ์์ฒญ |
Finished | 6/14~6/18 | 6/9~6/11 | 6/9~6/24 | 6/10~6/11 |
Front-end | ๋ก๊ทธ์ธ | ํ์๊ฐ์ | ๋ง์ดํ์ด์ง | (๊ด๋ฆฌ์) ํ์๋ชฉ๋ก |
์ ๋ณด ๋ฆฌ์คํธ | ์ ๋ณด ์ธ๋ถ | ๋ฉ์ธ (๋ถ๋งํฌ๊ธฐ๋ฐ ์ถ์ฒ) |
Finished | 6/14~6/16 | 6/14~6/17 | 6/22 | 6/22 | 6/14~6/16 | 6/14~6/16 | 6/24 |
6์ 8์ผ
GitHub ์ฌ์ฉ๋ฒ ์ตํ๊ธฐ: ๊นํ๋ธ์ ์ดํด๋ฆฝ์ค ์ฐ๋ ๋ฐ pull / push
OpenApi ๋ ๋ฌด์์ธ๊ฐ... ์ดํดํ๊ธฐ
์ค๊ณ ๋ถ๋งํฌ ๊ตฌ์กฐ ์ค๊ณ, Member์ Bookmark ํ์ํ ํ ์ด๋ธ entity ๋ช ์ธ
6์ 9์ผ
๊ธฐํ ๊ธฐํ์ ์์ฑ, ์ถ๊ฐ ๊ธฐ๋ฅ ์๊ฐ - ๊ธ ์์ฑ ์ ํ๊ทธ ๊ธฐ๋ฅ, ์์ด๋ ์ฐพ๊ธฐ, ์ฌํ์ง ์ถ์ฒ
์๊ฐ ๋ก๊ทธ์ธ ํ ํฐ? ์ธ์ ? ๋ญ ์ฌ์ฉํ์ง?
์ค๊ณ OPENAPI์์ ๊ฐ์ ธ์ค๋ ์ ๋ณด๋ ๊ทธ๋๋ก front-end๋ก ๋ณด๋ด๊ณ ๊ฑฐ๊ธฐ์ ์ฒ๋ฆฌํ๊ธฐ๋ก ํจ
๊ฐ๋ฐ
Member Entity, Service, Controller ๊ตฌํ (๋ก๊ทธ์ธ ์ ์ธ)
Bookmark Entity, Service, Controller ๊ตฌํ - ์ํฐํฐ ๊ตฌ์กฐ ์กฐ๊ธ ๋ณ๊ฒฝํจ
6์ 10์ผ
์๊ฐ
- DB์์ ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ๊ณผ (Select * ~) ์ผ๋ถ ํ๋๋ง ๊ฐ์ ธ์ค๋ ๊ฒ(Select A, B ~) ๋น์ฐํ ํ์๊ฐ ๋์ ๊ฒ ๊ฐ์๋ฐ, ๊ฐ์ฒด ํฌ๊ธฐ๊ฐ ์๋ค๋ฉด ์ด๋ ์ ๋์ ํธ๋ํฝ๋ถํฐ ๋๋น ์๋ฒ๊ฐ ๋ถ๋ด์ค๋ฌ์ด ๊ฑธ๊น?
- ํ๋ฐํธ์๋ ์์ด ํ ์คํธํ๋ ค๋๊น ๋ฐฑ์๋ Controller๋ก ์ง์ ์์ฒญ์ ๋ณด๋ด์ผ ํจ. Method๊ฐ public์ด๋ผ์ ๊ทธ๋ฐ๊ฐ ๋ชจ๋ ์ ๊ทผ ๊ฐ๋ฅํ๋ฐ ์ผ๋ถ method๋ ๊ด๋ฆฌ์๋ง ์ฌ์ฉํด์ผ ํ๋ค. ๊ด๋ฆฌ์์์ ํ์ธํ๋ ๋ถ๋ถ์ ์ปจํธ๋กค๋ฌ์ ๊ตฌํํด์ผ ํ ๊น? ์๋๋ฉด ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์๊น
- RESTController์์ ๊ฐ ๋ฐํํ ๋, ๋ฆฌ์คํธ๋ ๋งต ๊ฐ์ ๊ฐ์ฒด ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ง ๋๊ฒจ์คฌ๋ค. ๊ทผ๋ฐ ์ด๋ฐ ๋ฐฉ๋ฒ์ ์ง์ํด์ผ ํ๋ค๊ณ ํจ. Model์ด๋ ModelMap์์ view๋ฅผ ๋ช ์ํ์ง ์๊ณ (์๋ํ๋ฉด ํ๋ฉด ์ ํ์ ๋ฐฑ์๋์์ ํด์ค ํ์ ์์ด ํ๋ฐํธ์์ ์ฒ๋ฆฌํ๋๊น) ๋ฐํํ๋ฉด ๋๋ ๊ฑด๊ฐ?
๊ฐ๋ฐ
์คํ API ์์ฒญ, ์ฒ๋ฆฌํ๋ ํด๋์ค ๊ตฌํ. ๊ณตํต๋ถ๋ถ method ์ถ์ถ๊น์ง ํ๋๋ฐ ์ ๋๋ก ํ ๊ฑด์ง ๋ชจ๋ฅด๊ฒ ๋ค.
๋ฌธ์
- API ํ์ ๋ณ ์์ฒญ์ ๊ฐ ์ ๋๋ก ๋ฐ์์ค๋๋ฐ, ์ง์ญ๋ณ ์์ฒญ์ ๊ฐ์ ธ์ค๋ item์ด ์๋ค... ์์ฒญ์ด ์๋ชป๋ ๊ฒ ๊ฐ์๋ฐ
- ์์ด๋ ๊ตณ์ด ๋ง๋ค์ด์ผ ํ๋ ์ถ์ด์ ์ด๋ฉ์ผ ๋ก๊ทธ์ธํ๊ฒ ํ๋๋ฐ, ์์ด๋ ์ฐพ๊ธฐ๋ ์ค๋ณต ์์ด๋ ์ฒดํฌ ๊ตฌํํ ๋ get์ผ๋ก ๋ณด๋๋๋ ์ด๋ฉ์ผ ๊ตฌ์กฐ ๋๋ฌธ์ (ํน์๋ฌธ์...) url ์ฝ๋ค๊ฐ ์๋ฌ ์๊น... ์์ด๋ ํ๋ ์ถ๊ฐํ๋ ๊ฒ๋ณด๋จ ์ด๋ฉ์ผ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ post๋ก ๋ณด๋ด๊ฒ ํด์ผ๊ฒ ์ง?
- NativeSQL ์ฌ์ฉ๋ฒ ์ ๋๋ก ์์งํ๊ณ ์ฐ์...
6์ 11์ผ
ํด๊ฒฐ
- ์ง์ญ ๋ฐ์ดํฐ ๋ฐ์์ค๋ ๋ฐ ๋ฌธ์ ์์. ๋ณ์ ์ค์ ์๋ชปํ ๋จ์ํ ์ค์!
- ์ด๋ฉ์ผ POST๋ก ๋ฐ์์ค๋๊น ์น ๋ฐ์ดํฐ ์ ์ก์๋ ์ ํ ๋ฌธ์ ์๋ค. ๋ค๋ง JPA ๊ตฌ์กฐ ํจ์จ์ฑ ์๊ฐํด๋ด์ผ...
- NativeSQL ๋์ Querydsl ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค. JPQL์ด๋ NativeSQL์ SQL๋ฌธ์ ์ง์ ์์ฑํ๋ ์ชฝ์ธ๋ฐ Mybatis์์ ํ๋ ๋ฐฉ์์ด๊ธฐ๋ ํ๊ณ ์ปดํ์ผ ์์ ์์ sql ์ค๋ฅ ํ์ธํ๊ธฐ๊ฐ ์ด๋ ต๋ค๋ ๋จ์ ์ด ์๋ค. ๋ ๋ค ์ฝ๋์งํฅ์ ์ด๊ณ ๋น๋๋๋์ด์ง๋ง Criteria๋ณด๋ค QueryDSL์ด ์ง๊ด์ ์ด๋ผ๊ณ ํด์ ํ์๋ฅผ ์ฌ์ฉํจ. ๋ฌผ๋ก ๊ฐ์ฅ ํฐ ์ด์ ๋ ์๋ก์ด ๊ฑธ ํด๋ณด๊ณ ์ถ์ด์!
์ด์
- Vue์์ ํ๋ฐํธ์๋ ์ฒ๋ฆฌํด์ผํ๋๋ฐ UI์ ์ฉ๋ถํฐ ๋ง์ฝ์ด๋ค. Vue์ ์ฒ ํ ์ดํดํ๊ณ ๋ผ์ฐํฐ ์ค๊ณ ํด๋ณด๊ธฐ
- ๊ด๋ฆฌ์ ๊ธฐ๋ฅ ์ถ๊ฐํด์ผ ํจ
- ๋ก๊ทธ์ธ ํ ํฐ ๊ตฌํ ๊ด๋ จํด์...
6์ 14์ผ
๊ธฐํ?
- ๊ตฌ์ฒด์ ์ด๊ณ ์์ํ ๊ธฐ๋ฅ๋ค ์ ๋ฆฌํด์ผ ๊ฒ ๋ค.
๊ฐ๋ฐ
- ๋ก๊ทธ์ธ, ํ์ ๊ฐ์ : ํ๋ฐํธ์๋ ๊ธฐ์ด ๊ฐ๋ฐ
- ์ฌํ์ง ๋ฆฌ์คํธ, ์ฌํ์ง ์์ธํ ๋ชฉ๋ก : ํ๋ฐํธ์๋ ๊ธฐ์ด ๊ฐ๋ฐ
- ๋ก๊ทธ์ธ ํ ํฐ: ๋ฐฑ์๋ ๊ตฌํ
์ด์
- ํ๋ฐํธ์์ Json ๊ฐ์ฒด๋ฅผ Vue.js๋ก ์ด๋ป๊ฒ ์ฝ๋ ์ง ๋ชจ๋ฅด๊ฒ ๋ค...
- Vue.js์์ HTML ํ์ด์ง Body ํ๊ทธ ์์ ๋ค์ด๊ฐ๋ JS๋ฅผ ์ธ์ํ๊ฒ ๋ง๋๋ ค๋ฉด ์ด๋ป๊ฒ ํ์ง?
6์ 16์ผ
ํด๊ฒฐ
- ์ฌํ์ง json ๊ฐ์ฒด ์ฝ๋ ๋ฐฉ๋ฒ ์์๋๋ค ใ ใ ์ง๊ด์ ์ด๊ณ ๊ฐ๋จํ๊ฑด๋ฐ ๊ธฐ์ด๊ฐ ๋ถ์กฑํ๋ค. API์์ ๋ฌธ์์ด ํํ๋ก ๋ณด๋ด์ค ๋ฐ์ดํฐ๋ฅผ ํ์ฑํด์ ์ฌ์ฉํ๋ฉด ๋๋ ๊ฑฐ์์
- JWT๋ ์ดํดํ๋ค. ์๋ฒ์ ํ ํฐ ๋ฐ๊ธ > ํด๋ผ์ด์ธํธ: ์ฟ ํค์ ์ ์ฅ > ํด๋ผ์ด์ธํธ: ์ฟ ํค์์ ๊บผ๋ด์ ํค๋์ ๋ฃ์ด์ค ํ ์์ฒญ ์ ์ก
์ฝ๋๋ง ์ ๋๋ก ๋ด๋ ์ ์ ์๋๊ฑด๋ฐ ์ ๊ทธ์ ๊ป ์ดํด๋ฅผ ๋ชป ํ์๊น
๋จ์ ์ผ
- ์ ๊ธฐ๋ฅ์ ๋ง์ดํ์ด์ง ๊ตฌํ(&๋ถ๋งํฌ), ๊ด๋ฆฌ์์ ํ์ ๊ด๋ฆฌ๊ฐ ๋จ์๋ค.
- ํ์์ ์ธ๋ฐ ์ด๋ ค์ด ๊ฒ์ ํด๋ผ์ด์ธํธ ํ ํฐ ํํฐ๋ง(ํ์ด์ง ์ ๊ทผ ์ ์ด), ์๋ฒ ํ ํฐ ํํฐ๋ง(๋ฐ์ดํฐ ์ ๊ทผ ๊ถํ ํ์ธ)
- ํ์์ ์ธ ๊ฒ์ ํ์ ๊ฐ์ ์ ๋ ฅ๊ฐ ๊ฒ์ฆ, ์ฌํ์ง ๋ชฉ๋ก ๋ฆฌ์คํธํ, ์ ๊ณตํ๋ ์ ๋ณด ์กฐ์ ํ๊ธฐ
- ์ถ๊ฐ์ ์ธ ๊ฒ์ ์ด๊ธฐํ๋ฉด์ ์ถ์ฒ ์ฌํ์ง ๋์ฐ๋ ๊ฒ(๋ถ๋งํฌ ๊ธฐ๋ฐ): ์ด๊ฑด ๋ค์ ์ฃผ์ ํด๋ ๋๊ฒ ๋ค.
6์ 17์ผ
ํผ๊ณคํด์ ๊ทธ๋ฅ ์๋ ค๊ณ ํ๋๋ฐ ์จ์ผ๊ฒ ๋ค.
์ด์
- Java์์ ์์ฑํ JWT๋ฅผ Vue๋ก ๋ณด๋ด์ Cookie์ ์ ์ฅ, Vue์์ ์์ฒญ ํค๋์ JWT๋ฅผ ๋ฃ๊ณ Java๋ก ๋ณด๋ด์คฌ๋ค. ๊ทผ๋ฐ ๊ฒ์ฆํ๋ฉด ์ ํจํ์ง ์์ ํ ํฐ์ด๋ผ๊ณ ๋ฌ๋ค. ์? ์ธ์ฝ๋ฉ๋ฌธ์ ์ธ๊ฐ? ๊ธ์๋ง๋ณด๋ฉด identicalํ๋ฐ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์๋ ๋ฏ. ๋งํ๋ค
- ์ค๋ฅ ์ฒดํฌ์ ํ๋ก ํธ์๋์ ๋ณด๋ด์ค ๋ฉ์์ง ์ ์ ํ๋ ๊ฒ ํ์ํ๋ค. ์์ฉํํ๋ค๊ณ ์๊ฐํ๊ณ ์์ํ ๋ถ๋ถ ๊ณ ์น์.
๊ฐ๋ฐ
- ํํฐ์ ์ธํฐ์ ํฐ์ ๊ฐ๋ ์ ์์๋ค. ๋ก๊ทธ์ธ ์ธ์ฆ์ ์ธํฐ์ ํฐ๊ฐ ๋ ์ ํฉํ ๊ฒ ๊ฐ์ ๊ทธ๊ฑธ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค.
- ์ ํจ์ฑ ๊ฒ์ฆ ์คํฌ๋ฆฝํธ ๋ค ์งฐ๋ค. ํ ํฐ์ธ์ฆ๋ณด๋ค ํจ์ฌ ๋ซ๋ค...์...
- ๊ณต์ง์ฌํญ ๊ฒ์ํ ๋ฐฑ์๋ ๊ตฌํํ๋ค. ์ผ๋ฐ ๊ฒ์ํ๋ณด๋ค ๊ธฐ๋ฅ์ด ์์ด์ ์ฌ์ค ๋ณ ๊ฑฐ ์๋ค. ์ธ์ฆ๋ง ํด๊ฒฐํ๋ฉด...
- ๊ฒ์ ๊ฒ์ํ๋ ๋๋๋ค. ๊ทธ๋ฅ openapi ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๋ ๊ฒ ๋์ด๋ผ...
6์ 18์ผ
ํด๊ฒฐ
- JWT ํ ํฐ์ ํค๋์ ๋ฃ์ด์ผ ํ๋๋ฐ, ์ฝ๋๋ฅผ ์๋ชป ์จ์ ๊ทธ๋ฅ ์์ฒญํด๋ฒ๋ ธ๋ค. ์๋ฒ์์๋ ์์ฒญ์ ํค๋๊ฐ ์๋ ์ฟ ํค์ ์กด์ฌํ๋ ๊ฐ์ ์ฌ์ฉํด์ ๊ทธ๋ฐ ๊ฒ์ด์๋ค. ์์ฒญ ๋ณด๋ผ๋๋ง๋ค ์ฟ ํค์ ์ ์ฅ๋ ๊ฐ์ ๊ฐ์ ธ์์ ํค๋์ ์ถ๊ฐํด์ฃผ๊ธฐ๋ก ํ๋ค. ๋ฐ๋ก ์คํฌ๋ฆฝํธ๋ฅผ ๋นผ๋ ๊ฒ ๊ฐ์ฒด์งํฅ์ ์ด๋๊น ๋์ค์ ๋ฆฌํฉํ ๋งํ๊ธฐ!
6์ 22์ผ
๊ฐ๋ฐ
- ๋ง์ดํ์ด์ง: ํ์ ์ ๋ณด ์กฐํ, ์์ ๋ฐ ์ญ์
- ๊ด๋ฆฌ์: ํ์ ์ ๋ณด ์กฐํ ๋ฐ ์ญ์
- ์ ๊ทผ ์ ์ด ๊ตฌํ... ๊ทผ๋ฐ ๋ชจ๋์ฑ ์์ค์ด๋ผ ์๋ฏธ ์์
์ด์
- ๋ถ๋งํฌ ๋ฌธ์ : JPA ํ ์ด๋ธ ์ธ๋ํค ๊ด๋ จ... ์ผํ๋ชฐ ์์ ๋ณด๊ณ ํด๊ฒฐํ๊ธฐ
6์ 24์ผ
๊ฐ๋ฐ
- ๋ถ๋งํฌ ๋ฌธ์ ํด๊ฒฐ! Entity ํด๋์ค ์ธ๋ํค ์ค์ ์์ ํ๊ณ , Custom Repository ๋ฐ๋ก ๋ง๋ค์ด์ ์ฟผ๋ฆฌdsl์ ์๋ดค๋ค. ๋ง๋ค์ด์ง ํ์ผ(ํด๋์ค)์ด ๋ง์์ ๋ณต์กํด๋ณด์ด์ง๋ง ๊ตฌ์กฐํ๋๊ธฐ๋ ํ๋ค. ํ๋ก ํธ์๋๊น์ง ๋ง๋ฌด๋ฆฌํ๋ค!
- ๊ฒ์ ํ์ด์ง ๋์์ธ ์ ์ฉ
- ๋ฉ์ธ ํ์ด์ง ๊ธฐ๋ฅ ๊ตฌํ ์๋ฃ: ๋ถ๋งํฌ ์๊ฐ ๋ง์ ์์๋๋ก (์ผ๋จ ์์ 3๊ฐ๋ง) ๋ฉ์ธ ํ์ด์ง์ ๋ณด์ฌ์ฃผ๊ธฐ๋ก ํ๋ค. queryDSL์์ count()์ ๋ํ orderby ๊ตฌํํ๋ค๊ณ ์ ๋จน์๋ค
๋จ์ ์ผ
- ํ์ ๊ฐ์ ๋์์ธ ์ ์ฉ
- ๋ฉ์ธ ํ์ด์ง ๋์์ธ ์ ์ฉ
- ํ ์คํธ ํด์ผํ ๊ฒ ๊ฐ์๋ฐ ๊ธฐํ์ ๋์ถฉ ํ๋๋...
- ์ต์ข ๋ณด๊ณ ์
- ์ด๋ฏธ์ง ์ฒจ๋ถ ๊ฐ๋ฅํ ์ปค๋ฎค๋ํฐ ๊ฒ์ํ ๋ด๊ฐ ๋ง๋ค์ด์ผ ํ๋?
6์ 29์ผ
ํ ์ผ
- ๋์์ธ ๋ชจ๋ ์ ์ฉ
- PR ์๋ฃ ์์ฑ
์์ ํ์
- ์ด๋ฏธ์ง ์ฒจ๋ถ ๊ฐ๋ฅํ ์ปค๋ฎค๋ํฐ ๊ฒ์ํ
- ๊ด๋ฆฌ์์ ์ ์ ๋ฆฌ์คํธ ํ์ธ: ์ฌ์ฉ์VO ์์ฑํ์ฌ ์ฒ๋ฆฌํ๋๋ก ์์ ํ๊ธฐ. cuz ์ธ๋ํค Json ํ์ฑํ ๋ ์๋ฌ๋จ
'๐ ํ๋ก์ ํธ > 2021-06' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๊ฐํด๋ณด๊ธฐ (0) | 2021.06.08 |
---|---|
ํ๋ก์ ํธ ์์ฑํ๊ธฐ (0) | 2021.06.04 |
๊ฐ๋ฐ ํ๊ฒฝ ์ค์ ํ๊ธฐ (0) | 2021.06.04 |
์น ํ ์ด ํ๋ก์ ํธ - ๊ธฐํ (0) | 2021.06.03 |