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

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

์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_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.
์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_Day 16 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ๊ฐœ์ธ ๊ณผ์ œ Lv 1 ์™„์„ฑ๊ฐœ์ธ ๊ณผ์ œ Lv 2 ์‹œ์ž‘TIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ๊ฐœ์ธ ๊ณผ์ œํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค!์„ ํƒ ์ผ์ • ์ˆ˜์ • API ์™„์„ฑ : Todo(updateTodo ๋ฉ”์„œ๋“œ ์ƒ์„ฑ), UpdateRequestDto ์ƒ์„ฑ, TodoController(updateTodo ๋ฉ”์„œ๋“œ ์ƒ์„ฑ), TodoService(updateTodo ๋ฉ”์„œ๋“œ ์ƒ์„ฑ)์„ ํƒ ์ผ์ • ์‚ญ์ œ API ์™„์„ฑ : TodoController(deleteTodo ๋ฉ”์„œ๋“œ ์ƒ์„ฑ), TodoService(deleteTodo ๋ฉ”์„œ๋“œ ์ƒ์„ฑ)ํšŒ์› Entity ์ƒ์„ฑํšŒ์› ์ƒ์„ฑ API ์™„์„ฑ : MemberController(saveMember ๋ฉ”์„œ๋“œ ์ƒ์„ฑ), MemberService(saveMember ๋ฉ”์„œ๋“œ ์ƒ์„ฑ), MemberR.. 2024. 12. 14.
์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_Day 15 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ(Java, SQL) 1๋ฌธ์ œ ํ’€์ด & ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ๋ฒ ์ด์ง๋ฐ˜ ์ˆ˜์ค€๋ณ„ ํ•™์Šต๋ฐ˜ ์„ธ์…˜ ๋“ฃ๊ธฐ๊ฐœ์ธ ๊ณผ์ œ ์‹œ์ž‘!! (Lv 1 ์ค‘๊ฐ„๊นŒ์ง€)TIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ๊ฐœ์ธ ๊ณผ์ œํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค!API ๋ช…์„ธ์„œ์™€ ERD๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค! → ์•„์ง ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘์„ฑํ•˜์ง€ ์•Š์•„์„œ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ํ•˜๋Š” ์ค‘๊ฐ„์ค‘๊ฐ„ ์ฑ„์›Œ๋„ฃ์„ ์˜ˆ์ •์ด๋‹ค!Lv 1์„ ์‹œ์ž‘ํ•˜๊ณ  ์ผ์ • ์ƒ์„ฑ, ์ „์ฒด ์ผ์ • ์กฐํšŒ, ์„ ํƒ ์ผ์ • ์กฐํšŒ ๊ธฐ๋Šฅ๊นŒ์ง€ ๊ตฌํ˜„ํ–ˆ๋‹ค!์ผ์ • ์ƒ์„ฑ API : TodoController(saveTodo ๋ฉ”์„œ๋“œ ์ƒ์„ฑ), TodoService(saveTodo ๋ฉ”์„œ๋“œ ์ƒ์„ฑ), TodoRepository( extends JpaRepository)์ „์ฒด ์ผ์ • ์กฐํšŒ API : TodoController(findAll ๋ฉ”์„œ๋“œ ์ƒ์„ฑ).. 2024. 12. 13.
์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_Day 14 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ(Java, SQL) 1๋ฌธ์ œ ํ’€์ด & ๋ธ”๋กœ๊ทธ ์ •๋ฆฌSpring ์ˆ™๋ จ ๊ฐ•์˜ ๋“ฃ๊ธฐ (3์ฃผ์ฐจ ์‹ค์Šต ํŒŒํŠธ)Spring ์ˆ™๋ จ ๊ฐ•์˜ ๋‚ด์šฉ ๋ณต์ŠตTIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ์‹ค์Šต ํŒŒํŠธ ๋ณต์Šตํ•˜๋ฉด์„œ ๋‚ด์šฉ๋“ค ์ˆœ์„œ๋Œ€๋กœ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค.1. JPA ๊ด€๋ จ ์„ค์ •ํ•˜๊ธฐ๋”๋ณด๊ธฐDataSource ์„ค์ •application.propertiesspring.datasource.url=jdbc:mysql://localhost:3306/boardspring.datasource.username=๊ณ„์ •spring.datasource.password=๋น„๋ฐ€๋ฒˆํ˜ธspring.datasource.driver-class-name=com.mysql.cj.jdbc.DriverHibernate ์„ค์ • application.pr.. 2024. 12. 12.
์ฃผํŠน๊ธฐ ์ž…๋ฌธ/์ˆ™๋ จ_Day 13 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ(Java) 1๋ฌธ์ œ ํ’€์ด & ๋ธ”๋กœ๊ทธ ์ •๋ฆฌSpring ์ˆ™๋ จ ๊ฐ•์˜ ๋“ฃ๊ธฐ (2์ฃผ์ฐจ)๋ฒ ์ด์ง๋ฐ˜ ์„ธ์…˜ ๋ธ”๋กœ๊ทธ ์ •๋ฆฌSpring ์ˆ™๋ จ ๊ฐ•์˜ ๋“ฃ๊ธฐ (3์ฃผ์ฐจ ์‹ค์Šต ๊ฐ•์˜ ์ „๊นŒ์ง€)TIL ๋ธ”๋กœ๊ทธ ์ž‘์„ฑ ์˜ค๋Š˜ ์–ป์€ ๋‚ด์šฉ ์ •๋ฆฌ โœ๏ธ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ ์ดํ•ด๊ฐ€ ์•ˆ๋๋˜ ๋ถ€๋ถ„๋“ค ๋”ฐ๋กœ ๊ตฌ๊ธ€๋งํ•ด์„œ ์ •๋ฆฌํ–ˆ๋˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค!์ฆ‰์‹œ ๋กœ๋”ฉ (Immediate Loading)fetch = fetchType.EAGEREntity๋ฅผ ์กฐํšŒํ•  ๋•Œ ํ•ด๋‹น Entity์™€ ์—ฐ๊ด€๋œ ๋ชจ๋“  Entity๋ฅผ ๋™์‹œ์— ์กฐํšŒํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.A Entity์™€ B Entity๊ฐ€ ์—ฐ๊ด€๋˜์–ด ์žˆ์„ ๋•Œ, A๋ฅผ ์กฐํšŒํ•˜๋ฉด B๋„ ํ•จ๊ป˜ ์กฐํšŒ๋œ๋‹ค. ์ด๋กœ ์ธํ•ด ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ•„์š”ํ•œ ์‹œ์ ์— ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.ํ•˜์ง€๋งŒ ์กฐ์ธ ๋“ฑ์˜ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ๊ณ , ๋ถˆํ•„์š”.. 2024. 12. 11.