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

โœ๏ธ Today I Learned(TIL)/๐ŸŒฑ ์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„71

[ TIL ] ์ฃผํŠน๊ธฐ ์‹ฌํ™”_Day 1 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ํ”„๋กœ์ ํŠธ ๋ฐœ์ œ ๋“ฃ๊ธฐ์‹ฌํ™” Spring 1์ฃผ์ฐจ ๊ฐ•์˜ ๋“ฃ๊ธฐ์ˆ˜์ค€๋ณ„ ํ•™์Šต๋ฐ˜ ์Šคํƒ ๋‹ค๋“œ๋ฐ˜ ์„ธ์…˜ ๋“ฃ๊ธฐํŠœํ„ฐ๋‹˜์˜ ๋ฏธ๋‹ˆ ์„ธ์…˜(์ด๋ ฅ์„œ ํŠน๊ฐ•) ๋“ฃ๊ธฐTIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ์‹ฌํ™” Spring 1์ฃผ์ฐจ ๊ฐ•์˜HttpMessageConverter → ์šฐ์„  ์ˆœ์œ„์™€ ๋™์ž‘ ์ˆœ์„œArgumentResolverRequestMappingHandlerAdapterReturnValueHandlerTypeConverterํƒ€์ž… ๋ณ€ํ™˜Converter Interface์ˆ˜์ค€๋ณ„ ํ•™์Šต๋ฐ˜ - ์Šคํƒ ๋‹ค๋“œ๋ฐ˜ ์„ธ์…˜JWT & ์„ธ์…˜์ด๋ ฅ์„œ ๋ฏธ๋‹ˆ ์„ธ์…˜๋‚จ๋“ค๊ณผ๋Š” ๋‹ค๋ฅธ ๋ชจ์Šต์„ ๋ณด์—ฌ์ค˜์•ผ ํ•œ๋‹ค. ์ฐจ๋ณ„์ ์„ ๋‘ฌ์•ผ ํ•œ๋‹ค.ํ‰๊ฐ€์ž์˜ ์ƒํ™ฉ์„ ์ƒ๊ฐํ•ด์•ผ ํ•œ๋‹ค.์• ๋งคํ•œ ์‚ฌ๋žŒ์€ ๋ฝ‘์ง€ ์•Š๋Š”๋‹ค.๋ฌด์–ธ๊ฐ€๋ฅผ ์ฆ๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ทผ๊ฑฐ๊ฐ€ ํ•จ๊ป˜ ๋˜์–ด์•ผ ํ•œ๋‹ค.๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋ฅผ ์ ๋Š” ๊ฒƒ๋„ ๊ต‰.. 2024. 12. 30.
๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ_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.
๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ_Day 1 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ํ”„๋กœ์ ํŠธ ๋ฐœ์ œ ๋“ฃ๊ธฐ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ S.A ์ž‘์„ฑ๊นƒ ๋ฉ”์‹œ์ง€ ๊ด€๋ จ ๋ฏธ๋‹ˆ ์„ธ์…˜ ๋“ฃ๊ธฐTIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ (๋‰ด์Šคํ”ผ๋“œ ๋งŒ๋“ค๊ธฐ ํ”„๋กœ์ ํŠธ)application.yml ํŒŒ์ผapplication.properties ํŒŒ์ผ์˜ ๋‹ค๋ฅธ ๋ฒ„์ „ → ํŒ€ ํ”„๋กœ์ ํŠธ ์‹œ ์„œ๋กœ์˜ ํ™˜๊ฒฝ์„ ์ž์œ ๋กญ๊ฒŒ ์ž‘์„ฑํ•˜๊ณ  gitignore๋ฅผ ํ†ตํ•ด commit์—์„œ ์ œ์™ธ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.ERD ๊ด€๋ จ ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋œ ๋‚ด์šฉ์—ฐ๊ด€๊ด€๊ณ„ ์—ฐ๊ฒฐ์„ ํ•˜์ง€ ์•Š๊ณ ๋„ id์™€ type ๊ฐ’์„ ์ด์šฉํ•ด์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.๋ฏธ๋‹ˆ ์„ธ์…˜: ๋‚ด์šฉ → ex) Feat: Add Level 1............์ปค๋ฐ‹์— ๋Œ€ํ•œ ๋‚ด์šฉ ์ž‘์„ฑ : ๋ฌด์Šจ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋Š”์ง€, ๋ญ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋Š”์ง€ ๊ตฌ์ฒด์ ์œผ๋กœ ์ ์„์ˆ˜๋ก ํŒ€์›๋“ค์ด ๋ณด๊ธฐ ์‰ฝ๋‹ค!์š”์ฆ˜์€ ๊นƒ๋ชจ์ง€๋ฅผ ์ด์šฉํ•ด์„œ ๋‚˜ํƒ€๋‚ด๊ธฐ๋„ .. 2024. 12. 20.
์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_Day 20 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ๊ฐœ์ธ ๊ณผ์ œ Lv 5 ์™„์„ฑ๊ฐœ์ธ ๊ณผ์ œ Lv 6 ์™„์„ฑ๊ฐœ์ธ ๊ณผ์ œ Lv 7 ์™„์„ฑAPI ๋ช…์„ธ์„œ & ERD ์ˆ˜์ •TIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ๊ฐœ์ธ ๊ณผ์ œํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค!Lv 6. ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™” ๊ณผ์ œ ์š”๊ตฌ์‚ฌํ•ญ์— ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•ด์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•”ํ˜ธํ™”ํ•ด์„œ ์ €์žฅํ–ˆ๋‹ค.PasswordEncoder์˜ Encode, matches ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•ด์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™” ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ผ์น˜ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ–ˆ๋‹ค.Lv 7. ๋Œ“๊ธ€ CRUDcomment Entity๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค.member Entity์™€ todo Entity ๊ฐ„์˜ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ์„ค์ •ํ–ˆ๋‹ค.๊ทธ ํ›„ ๋Œ“๊ธ€ ์ƒ์„ฑ, ์ „์ฒด ๋Œ“๊ธ€ ์กฐํšŒ, ์„ ํƒ ์ผ์ •์˜ ์ „์ฒด ๋Œ“๊ธ€ ์กฐํšŒ, ์„ ํƒ ๋Œ“๊ธ€ ์ˆ˜์ •, ์„ ํƒ ๋Œ“๊ธ€ ์‚ญ์ œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค.API ๋ช…์„ธ์„œ์™€ ERD ์ˆ˜์ •  ์˜ค๋Š˜ ํ•˜๋ฃจ .. 2024. 12. 18.