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

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

[ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/Java ] ๋ชจ์˜๊ณ ์‚ฌ ๋ฌธ์ œ ์„ค๋ช…https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=java ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr ์ˆ˜ํฌ์ž๋Š” ์ˆ˜ํ•™์„ ํฌ๊ธฐํ•œ ์‚ฌ๋žŒ์˜ ์ค€๋ง์ž…๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž ์‚ผ์ธ๋ฐฉ์€ ๋ชจ์˜๊ณ ์‚ฌ์— ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ์ „๋ถ€ ์ฐ์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž๋Š” 1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฐ์Šต๋‹ˆ๋‹ค.1๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...2๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...3๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๋ฐฉ์‹: 3, 3, 1, 1.. 2025. 1. 15.
[ TIL ] JPA ์‹ฌํ™”_Day 1 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง JPA ์‹ฌํ™” 1, 2์ฃผ์ฐจ ๊ฐ•์˜ ๋“ฃ๊ธฐDB ์‚ฌ์šฉ ๋ฐฉ์‹ 3๊ฐ€์ง€Server Mode (ํ˜„์—…์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹)In-memory Mode (์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด๋ถ€์˜ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹)Embedded Mode (์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด๋ถ€์˜ ์—”์ง„์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ํœ˜๋ฐœ์„ฑ์ด ์—†์Œ)ModeH2 ๋‹ค์šด๋กœ๋“œ ์—ฌ๋ถ€์‹คํ–‰ ์ฃผ์ฒดDB ์ €์žฅ ์œ„์น˜์‚ฌ์šฉ ์šฉ๋„Server ModeO์™ธ๋ถ€๋กœ์ปฌ(ํŒŒ์ผ ์‹œ์Šคํ…œ)๋ฐฐํฌ ์šฉ๋„In-Memory ModeX์Šคํ”„๋ง๋ฉ”๋ชจ๋ฆฌํ…Œ์ŠคํŠธ ์šฉ๋„Embedded ModeX์Šคํ”„๋ง๋กœ์ปฌ(ํŒŒ์ผ ์‹œ์Šคํ…œ)๊ฐœ๋ฐœ ์šฉ๋„SQLDDL: CREATE, ALTER, DROPDML: SELECT, INSERT, UPDATE, DELETE, ORDER BY, GROUP BY, JOINํŠธ๋žœ์žญ์…˜ (์›์ž์„ฑ, ์ผ๊ด€์„ฑ, ๋…๋ฆฝ์„ฑ)DCL: BEGIN, C.. 2025. 1. 14.
[ ํŒ€ KPT ํšŒ๊ณ  ] ์•„์›ƒ์†Œ์‹ฑ ํ”„๋กœ์ ํŠธ ์•„์›ƒ์†Œ์‹ฑ ํ”„๋กœ์ ํŠธ Keep: ์ด๋ฒˆ ๊ณผ์ œ์—์„œ ์œ ์ง€ํ–ˆ์œผ๋ฉด ํ•˜๋Š” ๋ถ€๋ถ„์†Œํ†ต ๊ด€๋ จํŒ€์› ๊ฐ„์˜ ์›ํ™œํ•œ ์†Œํ†ต ๋•๋ถ„์— ์ถฉ๋Œ์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆœ์กฐ๋กญ๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ด ํŽธ์•ˆํ•ด์„œ ์˜๊ฒฌ์„ ์ œ์•ˆํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์˜๊ฒฌ์„ ์ˆ˜์šฉํ•˜๋Š” ๊ณผ์ •์ด ๋งค์šฐ ๊ธ์ •์ ์ด์—ˆ๋‹ค.ํ”„๋กœ์ ํŠธ ์ ๊ทน์„ฑ๋ชจ๋‘๊ฐ€ ํ”„๋กœ์ ํŠธ์— ์ ๊ทน์ ์œผ๋กœ ์ฐธ์—ฌํ•˜๋ฉฐ ์ฑ…์ž„๊ฐ์„ ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค.GitHubFork๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ์ž Repository์—์„œ ์ž‘์—…ํ•œ ๋’ค Pull Request๋กœ ํ•ฉ์น˜๋Š” ์ „๋žต์ด ํ˜‘์—…์— ํšจ๊ณผ์ ์ด์—ˆ๋‹ค.์ฝ”๋“œ ์ปจ๋ฒค์…˜์ •ํ•ด์ง„ ์ฝ”๋“œ ์ปจ๋ฒค์…˜์„ ์ฒ ์ €ํžˆ ์ค€์ˆ˜ํ•ด ์ฝ”๋“œ ๋ฆฌ๋ทฐ์™€ ์ดํ•ด๊ฐ€ ์ˆ˜์›”ํ–ˆ๋‹ค. Problem: ๊ฐœ์„ ์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„๋ฌธ์ œ์ : API ์ˆ˜์ •์ฒ˜์Œ ์„ค๊ณ„ํ–ˆ๋˜ API๋ฅผ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘ ์—ฌ๋Ÿฌ ๋ฒˆ ์ˆ˜์ •ํ•ด์•ผ ํ–ˆ๊ณ , ์ด๋กœ ์ธํ•ด ๊ฐœ๋ฐœ ์ผ์ •์— ์˜ํ–ฅ์„ ๋ฐ›์•˜๋‹ค.๋ฌธ์ œ์ : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ…Œ.. 2025. 1. 13.
[ TIL ] ์ฃผํŠน๊ธฐ ์‹ฌํ™”_Day 12 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ์ฃผ๋ฌธ ์ƒํƒœ ๋ณ€๊ฒฝ API ์ˆ˜์ •์ฃผ๋ฌธ ์ˆ˜๋ฝ, ๋ฐฐ๋‹ฌ ์ค‘์ธ ์ƒํƒœ์—์„œ ์ทจ์†Œ ์ƒํƒœ๋กœ ๋ณ€๊ฒฝํ•  ๊ฒฝ์šฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์ˆ˜์ •๋œ API ๋ช…์„ธ์„œ์™€ ๋™์ผํ•˜๊ฒŒ ์ฃผ๋ฌธ API ๊ด€๋ จ Response ์ˆ˜์ •{ ”orderId” : 1, “orderStatus”: “REQUESTED”, “quantity”: 2, “customer”: { “customerName”: “๊ณ ๊ฐ ์ด๋ฆ„” }}ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ์ฃผ๋ฌธ ์ƒ์„ฑ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ ์˜ค๋Š˜ ํ•˜๋ฃจ ์ •๋ฆฌ โœ๏ธ์˜ค๋Š˜๊นŒ์ง€ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ตฌํ˜„์„ ์™„๋ฃŒํ–ˆ๋‹ค!ํŒ€์›๋“ค๊ณผ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ merge ํ•˜๊ณ  ํŒ€์žฅ๋‹˜ ํ™”๋ฉด์—์„œ Postman์„ ์‹คํ–‰ํ–ˆ๋‹ค. API ๋ช…์„ธ์„œ์™€ ๋‹ค๋ฅธ ๋ถ€๋ถ„๋“ค์„ ์ˆ˜์ •ํ•˜๊ณ  ์—๋Ÿฌ ๋‚˜๋Š” ๋ถ€๋ถ„๋“ค์„ ์ˆ˜์ •ํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์ณค๋‹ค.์ดํ›„ ์ถ”๊ฐ€๋กœ ๋” ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ์ฝ”.. 2025. 1. 10.
[ TIL ] ์ฃผํŠน๊ธฐ ์‹ฌํ™”_Day 11 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง API ๋ช…์„ธ์„œ Response ๋ถ€๋ถ„ ์ˆ˜์ • ์ˆ˜์ •๋œ API ๋ช…์„ธ์„œ ์ฐธ๊ณ ํ•ด์„œ ์ฃผ๋ฌธ ๊ด€๋ จ ๊ธฐ๋Šฅ ์ˆ˜์ •๊ฐ€๊ฒŒ ์ƒ์„ฑ API ๋ฆฌํŒฉํ† ๋ง๊ฐ€๊ฒŒ ์ˆ˜์ • API ์ƒ์„ฑ๊ฐ€๊ฒŒ ์กฐํšŒ(๋‹ค๊ฑด) API ์ƒ์„ฑ๊ฐ€๊ฒŒ ํ์—… API ์ƒ์„ฑ๊ฐ€๊ฒŒ ์ˆ˜์ • API ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•ด๋‹น ๊ฐ€๊ฒŒ์˜ ์‚ฌ์žฅ๋‹˜์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์ˆ˜์ • ๋ถˆ๊ฐ€๋Šฅ๊ฐ€๊ฒŒ ํ์—… API ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•ด๋‹น ๊ฐ€๊ฒŒ์˜ ์‚ฌ์žฅ๋‹˜์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์‚ญ์ œ ๋ถˆ๊ฐ€๋Šฅ๊ฐ€๊ฒŒ ์กฐํšŒ(๋‹ค๊ฑด) API ๋ฆฌํŒฉํ† ๋ง๋‹จ์–ด ๊ฒ€์ƒ‰์œผ๋กœ ๊ฐ€๊ฒŒ ์กฐํšŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜์ •๊ฐ€๊ฒŒ ์กฐํšŒ(๋‹จ๊ฑด) API ์ƒ์„ฑ ๋‚ด์ผ ๊ณ„ํš โฐ๊ธฐ๋Šฅ ์ž˜ ๊ตฌํ˜„๋˜๋Š”์ง€ Postman์œผ๋กœ ํ™•์ธ+์ถ”๊ฐ€ ๊ณ„ํš์ด ์ƒ๊ธธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค~_~ 2025. 1. 9.
[ TIL ] ์ฃผํŠน๊ธฐ ์‹ฌํ™”_Day 10 ์˜ค๋Š˜ ํ•œ ๊ณต๋ถ€ ๐Ÿง ํŒ€ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์ฃผ๋ฌธ ์ƒ์„ฑ API ์ƒ์„ฑ์ตœ์†Œ ์ฃผ๋ฌธ ๊ธˆ์•ก์„ ๋„˜์ง€ ๋ชปํ•˜๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์˜คํ”ˆ/๋งˆ๊ฐ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ฃผ๋ฌธ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์ฃผ๋ฌธ ์ƒํƒœ ๋ณ€๊ฒฝ API ์ƒ์„ฑ๋ฐฐ๋‹ฌ ์™„๋ฃŒ, ์ทจ์†Œ๋œ ์ฃผ๋ฌธ์— ๋Œ€ํ•œ ์ƒํƒœ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์ฃผ๋ฌธ ์ƒํƒœ๋ฅผ ์ „ ๋‹จ๊ณ„๋กœ ๋˜๋Œ์•„๊ฐ€๋Š” ์š”์ฒญ ๋ถˆ๊ฐ€๋Šฅ ์˜ˆ์™ธ ์ฒ˜๋ฆฌHTTP ๋ฉ”์„œ๋“œ๋ฅผ PUT์—์„œ PATCH๋กœ ์ˆ˜์ •์„œ๋น„์Šค Layer์—์„œ ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜๋˜ ์˜ˆ์™ธ๋ฅผ GlobalExceptionHandler๋ฅผ ํ™œ์šฉํ•ด์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌERD์˜ ๊ฐ ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ์ปฌ๋Ÿผ๋ช…์„ ์ข€ ๋” ์ง๊ด€์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ˆ˜์ •์ง„ํ–‰ํ–ˆ๋˜ ๋ถ€๋ถ„ Pull Request ์‹คํ–‰๋ชฐ๋ž๋˜ ๋‚ด์šฉEnum ๊ฐ’์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋‹ค!ordinal( )๋ฅผ ํ™œ์šฉํ•ด์„œ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋‹ค.LocalTime ํƒ€์ž…์€ isBefore, isA.. 2025. 1. 8.