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

์ŠคํŒŒ๋ฅดํƒ€47

๊ธฐ์ดˆ ํ”„๋กœ์ ํŠธ_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.
์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_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.
์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_Day 19 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ๊ฐœ์ธ ๊ณผ์ œ Lv 4 ์™„์„ฑ๊ฐœ์ธ ๊ณผ์ œ Lv 5 ์™„์„ฑ๋ฒ ์ด์ง๋ฐ˜ ์„ธ์…˜ ๋“ฃ๊ธฐBean Validation ๊ฐ•์˜ ๋ณต์ŠตTIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ๊ฐœ์ธ ๊ณผ์ œํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค!Lv 4. ๋กœ๊ทธ์ธ(์ธ์ฆ)LoginReqeustDto ์ƒ์„ฑ(email, password ํ•„๋“œ ์ถ”๊ฐ€), LoginResponseDto ์ƒ์„ฑ(member ํ•„๋“œ ์ถ”๊ฐ€), AuthController ์ƒ์„ฑ(login ๋ฉ”์„œ๋“œ ๊ตฌํ˜„), AuthService ์ƒ์„ฑ(login ๋ฉ”์„œ๋“œ ๊ตฌํ˜„), MemberRepository ์ˆ˜์ •(findByEmailAndPassword ๋ฉ”์„œ๋“œ ๊ตฌํ˜„), LoginFilter(doFilter override), WebConfig(loginFilter ๋“ฑ๋ก)Lv 5. ๋‹ค์–‘ํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ ์šฉํ•˜๊ธฐLv .. 2024. 12. 17.
์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_Day 18 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ(Java) 1๋ฌธ์ œ ํ’€์ด & ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ๊ฐœ์ธ ๊ณผ์ œ Lv 2 ์™„์„ฑ๊ฐœ์ธ ๊ณผ์ œ Lv 3 ์™„์„ฑ๋ฒ ์ด์ง๋ฐ˜ ์„ธ์…˜ ๋ธ”๋กœ๊ทธ ์ •๋ฆฌSession, Filter ๊ด€๋ จ ๊ฐ•์˜ ๋ณต์ŠตTIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ๊ฐœ์ธ ๊ณผ์ œํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค!Lv 2์˜ ์„ ํƒ ํšŒ์› ์ˆ˜์ •, ์„ ํƒ ํšŒ์› ์‚ญ์ œ API ์ถ”๊ฐ€!Lv 3์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•„๋“œ ์ถ”๊ฐ€!Lv 4์—์„œ ๋ง‰ํ˜€๋ฒ„๋ ธ๋‹ค......๊ทธ๋ž˜์„œ ๋ฒ ์ด์ง๋ฐ˜ ์„ธ์…˜์˜ ๋…นํ™”๋ณธ๊ณผ Spring ์ˆ™๋ จ ๊ฐ•์˜๋ฅผ ๋‹ค์‹œ ๋ณด๋ฉด์„œ Session๊ณผ Filter์˜ ๊ฐœ๋…์„ ๋‹ค์‹œ ์žก๋Š”๋ฐ ์ง‘์ค‘ํ–ˆ๋‹ค!๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๋‚ด์šฉ์€ Session์€ ๋กœ๊ทธ์ธ์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ณ  ๋กœ๊ทธ์ธํ•˜๋ฉด์„œ ์„ธ์…˜ ์ €์žฅ์†Œ์— Session์ด ์ €์žฅ๋˜๊ณ  ์ธ์ฆ์ธ๊ฐ€ ๊ณผ์ •์—์„œ Session์„ ๋‹ค์‹œ ์ฐพ์•„๋ณด๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๋Š” ๊ฒƒ์œผ๋กœ ์ดํ•ดํ–ˆ.. 2024. 12. 16.
์ˆ˜์ค€๋ณ„ ํ•™์Šต๋ฐ˜_๋ฒ ์ด์ง๋ฐ˜ 3ํšŒ์ฐจ ์„ธ์…˜ ๋ฒ ์ด์ง๋ฐ˜์ธ์ฆ์ธ๊ฐ€12/13 14:00 ~ 15:40 (์•ฝ 1์‹œ๊ฐ„ 40๋ถ„ ์ง„ํ–‰) ์ค‘์š” ํ‚ค์›Œ๋“œ์ฟ ํ‚ค์ฟ ํ‚ค ์ธ์ฆ ๋ฐฉ์‹์„ธ์…˜์„ธ์…˜ ์ธ์ฆ ๋ฐฉ์‹ํ† ํฐํ† ํฐ ์ธ์ฆ ๋ฐฉ์‹ํ•„ํ„ฐ์ฟ ํ‚ค, ์„ธ์…˜, ํ† ํฐ ์ธ์ฆ ๋ฐฉ์‹์€ ๊ฐœ๋ฐœ์„ ํ•˜๋ ค๋ฉด ๋ฌด์กฐ๊ฑด ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ๋‚ด์šฉ์ด๋‹ค!์ธ์ฆ ๋ฐฉ์‹์„ ๋น„๊ตํ•ด๋ณด๋Š” ๊ฒƒ์ด ์ข€ ๋” ์ดํ•ด๊ฐ€ ์‰ฝ๋‹ค. ์ฟ ํ‚ค ์ธ์ฆ ๋ฐฉ์‹์ฟ ํ‚ค๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ ‘์†ํ–ˆ์„ ๋•Œ, ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋„ ์‚ฌ์šฉ๋œ๋‹ค.์‚ฌ์šฉ์ž์˜ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ์ž‘์€ ๊ณต๊ฐ„์ด๋‹ค.๊ทธ๋ ‡๋‹ค๋ฉด ์™œ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅ ๊ณต๊ฐ„์ด ํ•„์š”ํ• ๊นŒ?!์‚ฌ์šฉ์„ฑ๊ฐœ์ธํ™”๋œ ๊ฒฝํ—˜ ์ œ๊ณต → ๋งž์ถคํ˜• ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.์„ฑ๋Šฅ ์ตœ์ ํ™” → ๋ธŒ๋ผ์šฐ์ €, ์ฟ ํ‚ค์—์„œ ๋ฐ”๋กœ ๊บผ๋‚ด์„œ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค.์˜คํ”„๋ผ์ธ ์ง€์›์ฟ ํ‚ค๋ฅผ ํ™œ์šฉํ•œ ๊ธฐ๋Šฅ๋ธŒ๋ผ์šฐ์ €์—์„œ ์š”์ฒญ์ด ๊ฐˆ ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ Request Header์— ๊ทธ ๊ฐ’๋“ค์ด ํฌํ•จ๋˜์–ด์„œ ์„œ๋ฒ„.. 2024. 12. 16.