๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ199

๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ_Day 5 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ ํŽ˜์ด์ง• ์กฐํšŒ ๊ธฐ๋Šฅ ํŒ€์›๋“ค๊ณผ ์ƒ์„ฑ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ ๋ณ‘ํ•ฉ ์ถฉ๋Œ ๊ณผ์ • ํ•ด๊ฒฐ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ ์„œ๋ฒ„ ๋ฐฐํฌ(๊ตฌ๊ฒฝ)์ˆ˜์ค€๋ณ„ ํ•™์Šต๋ฐ˜ ๋ฒ ์ด์ง๋ฐ˜ ์„ธ์…˜ ๋“ฃ๊ธฐTIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ (๋‰ด์Šคํ”ผ๋“œ ๋งŒ๋“ค๊ธฐ ํ”„๋กœ์ ํŠธ)ํ”ผ๋“œ ํŽ˜์ด์ง• ์กฐํšŒ ๊ธฐ๋Šฅ ํŒ€์›๋“ค๊ณผ ํ•จ๊ป˜ ์ƒ์„ฑํŒ€์›๋ถ„์ด ํ™”๋ฉด ๊ณต์œ  ํ•ด์ฃผ์‹œ๊ณ  ํ•จ๊ป˜ ํ”ผ๋“œ ์ „์ฒด๋ฅผ ํŽ˜์ด์ง• ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค.์ฒ˜์Œ ๋ณด๋Š” pageable๊ณผ page ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํŽ˜์ด์ง• ์กฐํšŒ๋ฅผ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.GitHub ๋ณ‘ํ•ฉ ๊ณผ์ •์—์„œ์˜ ์ถฉ๋Œ ๋ฐœ์ƒ๋Œ“๊ธ€ ๊ด€๋ จ ๊ธฐ๋Šฅ์„ 2๋ช…์ด์„œ ๋‹ด๋‹นํ–ˆ๋Š”๋ฐ ์ƒ์„ฑ, ์กฐํšŒ / ์ˆ˜์ •, ์‚ญ์ œ ๋‹ด๋‹นํ•ด์„œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค.๊ฐ์ž ๊ตฌํ˜„์— ์„ฑ๊ณตํ•˜๊ณ  GitHub์— Pull Request, fetch, rebaseํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ณ‘ํ•ฉ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.In.. 2024. 12. 26.
๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ_Day 7 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ ํŒ”๋กœ์šฐ ๊ธฐ๋Šฅ ์ˆ˜์ •์ˆ˜์ค€๋ณ„ ํ•™์Šต๋ฐ˜ ๋ฒ ์ด์ง๋ฐ˜ ์„ธ์…˜ ๋“ฃ๊ธฐ์ˆ˜์ค€๋ณ„ ํ•™์Šต๋ฐ˜ ์Šคํƒ ๋‹ค๋“œ๋ฐ˜ ์„ธ์…˜ ๋“ฃ๊ธฐ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…(GitHub ๊ด€๋ จ) ์ž‘์„ฑTIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ (๋‰ด์Šคํ”ผ๋“œ ๋งŒ๋“ค๊ธฐ ํ”„๋กœ์ ํŠธ)ํŒ”๋กœ์šฐ ๊ธฐ๋Šฅ ์ˆ˜์ •ํŒ”๋กœ์ž‰๋งŒ ์กฐํšŒ๊ฐ€ ๊ฐ€๋Šฅํ•ด์„œ ํŒ”๋กœ์›Œ ์ „์ฒด ์กฐํšŒ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค.ํŒ”๋กœ์šฐ๋ฅผ ๊ณ„์† ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•ด์„œ ํ•œ ๋ฒˆ๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์—ˆ๋‹ค.๋ฒ ์ด์ง๋ฐ˜ ์„ธ์…˜์ธ์ฆ์ธ๊ฐ€ํ™œ์šฉ(ํ† ํฐ์ธ์ฆ๋ฐฉ์‹: JWT)์Šคํƒ ๋‹ค๋“œ๋ฐ˜ ์„ธ์…˜์Šค๋ ˆ๋“œ์˜ ๋ชจ๋“  ๊ฒƒ ์˜ค๋Š˜ ํ•˜๋ฃจ ์ •๋ฆฌ โœ๏ธ์˜ค๋Š˜ ํ•˜๋ฃจ๋ฅผ ์ •๋ฆฌํ•˜์ž๋ฉด ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ์˜ ๋งˆ๋ฌด๋ฆฌ...? ๋‹จ๊ณ„์˜€๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๋‚ด์ผ ์˜ˆ์ •๋˜์–ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ๋ฐœํ‘œ๋ฅผ ์œ„ํ•ด ๊ธฐ๋Šฅ์„ ์ ๊ฒ€ํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค.๋‚ด๊ฐ€ ๋งก์•˜๋˜ ํŒ”๋กœ์šฐ ๊ธฐ๋Šฅ์—์„œ ํŒ”๋กœ์ž‰์„ ์กฐํšŒํ•˜๋Š” .. 2024. 12. 26.
๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ_Day 4 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ๊ธฐ์ดˆํ”„๋กœ์ ํŠธ ํŒ”๋กœ์šฐ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ ํŒ”๋กœ์šฐ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ ํŠน์ • ๋ฉค๋ฒ„์˜ ํŒ”๋กœ์šฐ ์ „์ฒด ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„TIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ (๋‰ด์Šคํ”ผ๋“œ ๋งŒ๋“ค๊ธฐ ํ”„๋กœ์ ํŠธ)ํŒ”๋กœ์šฐ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„Follow Entity ์ƒ์„ฑ ํ›„ ํŒ”๋กœ์šฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค.member_id(PathVariable)์™€ following_id)๋ฅผ ๋ฐ›์•„ ํŒ”๋กœ์šฐ ๊ด€๊ณ„๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ ์„ฑ๊ณตํ–ˆ๋‹ค.ํŒ”๋กœ์šฐ ์‚ญ์ œ ๊ธฐ๋Šฅ ๊ตฌํ˜„member_id(PathVariable)์™€ follow_id(Pathvariable)๋ฅผ ๋ฐ›์•„ ํŒ”๋กœ์šฐ ๊ด€๊ณ„๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ ์„ฑ๊ณตํ–ˆ๋‹ค.ํŠน์ • ๋ฉค๋ฒ„์˜ ํŒ”๋กœ์šฐ ์ „์ฒด ์กฐํšŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„member_id(PathVariable)๋ฅผ ๋ฐ›์•„ ํŒ”๋กœ์ž‰ ๋ฉค๋ฒ„๋ฅผ ์ „์ฒด .. 2024. 12. 23.
[ GitHub ] Pull Request ๊ณต๋ถ€ํ•˜๊ฒŒ ๋œ ์ƒํ™ฉ์ƒˆ๋กœ์šด ํŒ€ ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹œ์ž‘๋˜๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด Git Repository๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค.๊ทผ๋ฐ ์ด์ œ๋ถ€ํ„ฐ main ๋ธŒ๋žœ์น˜๊ฐ€ ์•„๋‹Œ ๊ฐ๊ฐ์˜ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•ด์„œ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ณ  Pull Request๋ฅผ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.๊ทธ๋ž˜์„œ Pull Reqeust๋ฅผ ์ž˜ ๋ชจ๋ฅด๋Š” ๋‚˜์™€ ํŒ€์›์„ ์œ„ํ•ด ํŒ€์žฅ๋‹˜์ด ์„ค๋ช…ํ•ด์ฃผ์…จ๊ณ  ์ดํ•ด๊ฐ€ ์ž˜๋˜์„œ Pull Request์˜ ํ๋ฆ„๊นŒ์ง€ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.1. ํŒ€์›๋ถ„์˜ Pull Request๋ฅผ ํ†ตํ•ด dev ๋ธŒ๋žœ์น˜๊ฐ€ ์—…๋ฐ์ดํŠธ๋œ๋‹ค.2. ๋‚ด๊ฐ€ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜์—์„œ ์ž‘์—…์„ ํ•˜๋‹ค๊ฐ€ git pull origin dev๋กœ ๋‚ด Local์„ ์ตœ์‹ ํ™”ํ•œ๋‹ค.3. ํ˜„์žฌ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ๋ธŒ๋žœ์น˜์—์„œ git rebase dev ๋ช…๋ น์–ด๋กœ ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ๋ธŒ๋žœ์น˜๋„ ์ตœ์‹ ํ™”ํ•œ๋‹ค.4. ์ž‘์—…ํ•˜๊ณ  ์žˆ๋Š” ๋ธŒ๋žœ์น˜๋ฅผ Git.. 2024. 12. 22.
๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ_Day 1 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ํ”„๋กœ์ ํŠธ ๋ฐœ์ œ ๋“ฃ๊ธฐ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ S.A ์ž‘์„ฑ๊นƒ ๋ฉ”์‹œ์ง€ ๊ด€๋ จ ๋ฏธ๋‹ˆ ์„ธ์…˜ ๋“ฃ๊ธฐTIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ (๋‰ด์Šคํ”ผ๋“œ ๋งŒ๋“ค๊ธฐ ํ”„๋กœ์ ํŠธ)application.yml ํŒŒ์ผapplication.properties ํŒŒ์ผ์˜ ๋‹ค๋ฅธ ๋ฒ„์ „ → ํŒ€ ํ”„๋กœ์ ํŠธ ์‹œ ์„œ๋กœ์˜ ํ™˜๊ฒฝ์„ ์ž์œ ๋กญ๊ฒŒ ์ž‘์„ฑํ•˜๊ณ  gitignore๋ฅผ ํ†ตํ•ด commit์—์„œ ์ œ์™ธ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.ERD ๊ด€๋ จ ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋œ ๋‚ด์šฉ์—ฐ๊ด€๊ด€๊ณ„ ์—ฐ๊ฒฐ์„ ํ•˜์ง€ ์•Š๊ณ ๋„ id์™€ type ๊ฐ’์„ ์ด์šฉํ•ด์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.๋ฏธ๋‹ˆ ์„ธ์…˜: ๋‚ด์šฉ → ex) Feat: Add Level 1............์ปค๋ฐ‹์— ๋Œ€ํ•œ ๋‚ด์šฉ ์ž‘์„ฑ : ๋ฌด์Šจ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋Š”์ง€, ๋ญ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋Š”์ง€ ๊ตฌ์ฒด์ ์œผ๋กœ ์ ์„์ˆ˜๋ก ํŒ€์›๋“ค์ด ๋ณด๊ธฐ ์‰ฝ๋‹ค!์š”์ฆ˜์€ ๊นƒ๋ชจ์ง€๋ฅผ ์ด์šฉํ•ด์„œ ๋‚˜ํƒ€๋‚ด๊ธฐ๋„ .. 2024. 12. 20.
[ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ… ]์ผ์ • ๊ด€๋ฆฌ ์•ฑ Develop_ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ… ๊ณผ์ œ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ… ๋ฌธ์ œ ์ƒํ™ฉ์ผ์ • ์ƒ์„ฑ API๋ฅผ ์™„์„ฑํ•˜๊ณ  Postman์œผ๋กœ ํ…Œ์ŠคํŠธํ–ˆ์ง€๋งŒ 500 Internal Server Error๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.๋ฌธ์ œ ์›์ธ์ฝ”๋“œ์—์„œ @EntityListeners ์–ด๋…ธํ…Œ์ด์…˜์ด ์ž˜๋ชป๋œ ํด๋ž˜์Šค๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์—ˆ๋‹ค.์ž˜๋ชป๋œ ์ฝ”๋“œ@EntityListeners(EntityListener.class)์ด๋กœ ์ธํ•ด EntityListener๊ฐ€ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์•„ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•@EntityListeners ์–ด๋…ธํ…Œ์ด์…˜์„ ์˜ฌ๋ฐ”๋ฅธ ํด๋ž˜์Šค์ธ AuditingEntityListener๋กœ ์ˆ˜์ •ํ–ˆ๋‹ค.์ˆ˜์ •๋œ ์ฝ”๋“œ@EntityListeners(AuditingEntityListener.class)์ˆ˜์ • ํ›„ Postman์œผ๋กœ ๋‹ค์‹œ ์š”์ฒญ์„ ๋ณด๋ƒˆ๊ณ , ์ •์ƒ์ ์œผ๋กœ ์ผ์ •์ด ์ƒ์„ฑ๋˜์—ˆ๋‹ค.๊ฒฐ๋ก  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์–ด๋…ธํ…Œ์ด.. 2024. 12. 19.