๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

์ „์ฒด ๊ธ€401

DB Function to Java Application ์ด๊ด€ (feat. ํ”„๋กœ์‹œ์ €) ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ „ ์ง์žฅ์—์„œ ์ง„ํ–‰ํ–ˆ๋˜ DB Function ๋กœ์ง์„ Java Application์œผ๋กœ ์ด๊ด€ํ•˜๋Š” ์ž‘์—…์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ๋‹ค์†Œ ํ˜๋ €์ง€๋งŒ, ์ด ์ž‘์—… ๊ณผ์ •์„ ๋˜๋Œ์•„๋ณด๊ณ ์ž ํ•˜๋Š” ๋ชฉ์ ๋„ ์žˆ๊ณ , ์œ ์‚ฌํ•œ ์ž‘์—…์„ ์ง„ํ–‰ํ•  ๋•Œ ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ๋ฐ ๊ณ ๋ ค ์‚ฌํ•ญ ๋“ฑ์„ ์ •๋ฆฌํ•ด ๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํฌ์ŠคํŒ…์€ ๊ฐœ์š” - ๊ณผ์ • - ๊ฒฐ๊ณผ(์„ฑ๊ณผ) - ํšŒ๊ณ  ์ˆœ์œผ๋กœ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๊ฐœ์š”๊ธฐ์กด์˜ DB Function์€ ์ฟ ํฐ ๋ฐœ๊ธ‰ API๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋กœ, ์™ธ๋ถ€ ์ œํœด์‚ฌ๊ฐ€ ๋ฐœ๊ธ‰ ์š”์ฒญ์„ ํ•˜๋ฉด ๋‚ด๋ถ€์ ์œผ๋กœ ์—ฌ๋Ÿฌ ํ”„๋กœ์‹œ์ €๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ํ˜ธ์ถœํ•˜์—ฌ ๊ฒ€์ฆ, ๋กœ๊น…, INSERT, UPDATE ๋“ฑ ์ฟ ํฐ ๋ฐœ๊ธ‰์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋กœ์ง์—๋Š” ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ , ์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฒˆ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. D.. 2024. 10. 14.
์—…๋ฌด์— ๋ฐ”๋กœ ์“ฐ๋Š” SQL ํŠœ๋‹ 2 - SQL ํŠœ๋‹ ์‹ค์Šต (1) ์ง€๋‚œ ํฌ์ŠคํŒ…์—์„œ SQL ํŠœ๋‹ ์ด๋ก ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด์•˜๋Š”๋ฐ์š”, ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์‹ค์ œ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฟผ๋ฆฌ์˜ ๋ฌธ์ œ์ ์„ ํŒŒ์•…ํ•˜๊ณ , ํŠœ๋‹ํ•˜์—ฌ ๊ฐœ์„ ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.(์‹ค์ œ ํŠœ๋‹ ์ „ SQL ๋ฌธ์„ ํ™•์ธํ•˜์—ฌ ๋ฌด์—‡์ด ๋ฌธ์ œ์ธ์ง€ ํŒŒ์•…ํ•ด๋ณด๊ณ , ์ง์ ‘ ๊ฐœ์„ ํ•ด๋ณด๊ณ  ํŠœ๋‹ ํ›„ SQL ๋ฌธ์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.) ์•…์„ฑ SQL ํŠœ๋‹์œผ๋กœ ์ดˆ๋ณด์ž ํƒˆ์ถœํ•˜๊ธฐ์‹ค๋ฌด์ ์ธ SQL ํŠœ๋‹ ์ ˆ์ฐจ ์ดํ•ดํ•˜๊ธฐ1. SQL ๋ฌธ ์‹คํ–‰ ๊ฒฐ๊ณผ & ํ˜„ํ™ฉ ํŒŒ์•…๊ฒฐ๊ณผ ๋ฐ ์†Œ์š”์‹œ๊ฐ„ ํ™•์ธ์กฐ์ธ / ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ตฌ์กฐ๋™๋“ฑ / ๋ฒ”์œ„ ์กฐ๊ฑด2. ๊ฐ€์‹œ์ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ๊ฑด์ˆ˜SELECT ์ ˆ ์ปฌ๋Ÿผ ๋ถ„์„์กฐ๊ฑด์ ˆ ์ปฌ๋Ÿผ ๋ถ„์„๊ทธ๋ฃจํ•‘ / ์ •๋ ฌ ์ปฌ๋Ÿผ3. ๋น„๊ฐ€์‹œ์ ์‹คํ–‰๊ณ„ํš์ธ๋ฑ์Šค ํ˜„ํ™ฉ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ถ”์ด์—…๋ฌด์  ํŠน์ง•4. ํŠœ๋‹ ๋ฐฉํ–ฅ ํŒ๋‹จ & ๊ฐœ์„  / ์ ์šฉ (ํ…Œ์ŠคํŠธ) SQL ๋ฌธ ๋‹จ์ˆœ ์ˆ˜์ •์œผ๋กœ ์ฐฉํ•œ ์ฟผ๋ฆฌ .. 2024. 10. 8.
์—…๋ฌด์— ๋ฐ”๋กœ ์“ฐ๋Š” SQL ํŠœ๋‹ 1 - SQL ํŠœ๋‹ ์ด๋ก  ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ์—…๋ฌด์— ๋ฐ”๋กœ ์“ฐ๋Š” SQL ํŠœ๋‹ ๋„์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด์ „ ์ง์žฅ์—์„œ๋Š” ์ฃผ๋กœ ์˜ค๋ผํด์„ ์‚ฌ์šฉํ•˜์˜€๊ณ , ์•ž์œผ๋กœ๋Š” MySQL(MariaDB, Postgresql...) ์„ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด๊ธฐ์— ๊ด€๋ จํ•˜์—ฌ ์‹คํ–‰ ๊ณ„ํš ๋ฐ ์—ฌ๋Ÿฌ SQL ํŠœ๋‹ ๊ธฐ๋ฒ•๋“ค์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด ๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ „์— Real MySQL ๋„์„œ๋ฅผ ํ†ตํ•ด ์ด๋ก ์ ์œผ๋กœ ํ•™์Šตํ•˜์˜€์ง€๋งŒ, ์˜ค๋ผํด์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋‹ˆ MySQL์˜ ์ฃผ์š” ์‹คํ–‰ ๊ณ„ํš์— ๋Œ€ํ•ด์„œ๋Š” ์ •๋ฆฌ ์ฐจ์›์—์„œ ๋‹ค์‹œ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฑ…์˜ ์˜ˆ์ œ๋“ค์„ ํ†ตํ•ด ํ‰์†Œ์— ์ด๋ก ์œผ๋กœ๋งŒ ์•Œ๊ณ  ์žˆ์—ˆ๋˜ ๋‚ด์šฉ๋“ค์ด๋‚˜ ๊ฒฝํ—˜์ด ์žˆ์—ˆ๋˜ ํŠœ๋‹๋“ค ๋“ฑ ๋‹ค์–‘ํ•˜๊ฒŒ ๊ฒฝํ—˜ํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค.์ฑ…์˜ ์˜ˆ์ œ๋“ค์„ ํ†ตํ•ด ์ „ํ˜€ ์ƒˆ๋กœ์šด ์ ‘๊ทผ์ด๋‚˜, ํ‰์†Œ์— ์ด๋ก ์œผ๋กœ๋งŒ ์•Œ๊ณ  ์žˆ์—ˆ๋˜ ๋‚ด์šฉ๋“ค, ์กฐ๊ธˆ์ด๋‚˜๋งˆ ๊ฒฝํ—˜์ด ์žˆ์—ˆ๋˜ ์ฟผ๋ฆฌ ๋“ฑ ์ •ํ•ด์ง„ ๋ฐ์ดํ„ฐ ํ˜•์‹์ด๊ธด .. 2024. 10. 7.
Modern Java: An In-Depth Guide from Java 8 to Java 21 Modern Java์— ๋Œ€ํ•ด, Java 8 ~ Java 21๊นŒ์ง€์˜ ๋ณ€๊ฒฝ์ง€์ ์„ ์ •๋ฆฌํ•ด๋ณด๋Š” ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ํฌ์ŠคํŒ…์€ ์•„๋ž˜ ๋ธ”๋กœ๊ทธ๋ฅผ ๋ฒˆ์—ญํ•œ ํฌ์ŠคํŒ…์ž…๋‹ˆ๋‹ค.https://medium.com/@akineralkan/modern-java-an-in-depth-guide-from-version-8-to-21-by-akiner-alkan-f89b50e13c72 Modern Java: An In-Depth Guide from Version 8 to 21 | by Akiner AlkanDiscover Java’s evolution from 8 to 21, unveiling features like lambdas to sealed classes and records.medium.com ์ž๋ฐ” 8์„ ์‹œ์ž‘์œผ๋กœ ํฅ๋ฏธ๋กœ์šด ๊ธฐ๋Šฅ๋“ค์€.. 2024. 9. 8.
"์‹ค๋ฌด๋กœ ํ†ตํ•˜๋Š” ํด๋ฆฐ ์ฝ”๋“œ" ๋„์„œ ๋ฆฌ๋ทฐ ํ•œ๋น›๋ฏธ๋””์–ด์˜ ๋‚˜๋Š”๋ฆฌ๋ทฐ์–ด๋‹ค 2024๋ฅผ ํ†ตํ•ด 8์›”, ์‹ค๋ฌด๋กœ ํ†ตํ•˜๋Š” ํด๋ฆฐ ์ฝ”๋“œ (Clean Code Cookbook) ๋„์„œ๋ฅผ ์ œ๊ณต ๋ฐ›์•„ ์ฝ์–ด๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฑ…์€ ์•ฝ 500p ์ •๋„์˜ ๋ถ„๋Ÿ‰์œผ๋กœ ์–‡์€ ํŽธ์€ ์•„๋‹ˆ๊ณ ์š”, ํด๋ฆฐ ์ฝ”๋“œ์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ๋งŽ๊ธฐ๋„ ํ•˜๊ณ , ์˜ˆ์ „์— ์ฝ์—ˆ๋˜ ํด๋ฆฐ ์ฝ”๋“œ ์ƒ๊ฐ๋„ ๋‚˜์„œ ์ฝ์–ด๋ณด๊ฒŒ ๋˜์—ˆ๋„ค์š”. ์ „๋ถ€ ์ฝ์ง€๋Š” ๋ชปํ–ˆ๊ณ , 60%์ •๋„๋งŒ ์ฝ์€ ์ƒํƒœ์—์„œ ๋” ์ฝ์œผ๋ฉด์„œ ๋‚ด์šฉ์ด ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋ง์”€๋“œ๋ฆฌ๋ฉด ํด๋ฆฐ ์ฝ”๋“œ (Clean Code) ๋„์„œ์™€ ๋น„์Šทํ•œ ๋‚ด์šฉ๋“ค์ด ๋งŽ์•˜์–ด์„œ ํด๋ฆฐ ์ฝ”๋“œ๋ฅผ ์ฝ์—ˆ๋‹ค๋ฉด, ๊ตณ์ด ์ด ์ฑ…์„ ๋ณด์ง€๋Š” ์•Š์•„๋„ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค..(?)  2์žฅ ๊ณต๋ฆฌ ์„ค์ •38p, ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์œผ๋ฉฐ MAPPER (๋งคํผ) ๋ผ๋Š” ์•ฝ์–ด๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.MAPPER (Model: Abstrac.. 2024. 8. 26.
์ผ„ํŠธ ๋ฐฑ์˜ Tidy First? ๋„์„œ ๋ฆฌ๋ทฐ ํ•œ๋น›๋ฏธ๋””์–ด์˜ ๋‚˜๋Š”๋ฆฌ๋ทฐ์–ด๋‹ค2024๋ฅผ ํ†ตํ•ด 5์›”, ์ผ„ํŠธ ๋ฐฑ์˜ Tidy First? ๋„์„œ๋ฅผ ๋ฐ›์•„ ์ฝ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฑ…์€ ๊ต‰์žฅํžˆ ์–‡๊ณ , ์‹ ๊ธฐํ•˜๊ฒŒ 2๊ถŒ์œผ๋กœ ๋˜์–ด์žˆ๋Š”๋ฐ ๊ฐ€๊ฒฉ์€ ๊ฝค๋‚˜ ๋น„์‹ธ๋„ค์š”.๊ทธ๋™์•ˆ ์ฝ”๋“œ ์ •๋ฆฌํ•˜๋Š” ์ž‘์—…์„ ๋งŽ์ด ํ•˜๋‹ค๋ณด๋‹ˆ, ์ฑ…์—์„œ ๊ณต๊ฐ ๊ฐ€๋Š” ๋ถ€๋ถ„์ด ๊ฝค ์กด์žฌํ–ˆ๊ณ , ๊ถ๊ธˆ์ฆ์— ๋Œ€ํ•ด์„œ๋„ ์–ด๋Š์ •๋„ ํ•ด์†Œํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ์žฅ์˜ ์ด๋ก  ๋ถ€๋ถ„์—์„œ๋Š” ๊ธˆ์œต, ์˜ต์…˜ ๋“ฑ์˜ ๊ฐœ๋…์ด ๋‚˜์˜ค๋Š”๋ฐ, ๊ฐœ์ธ์ ์œผ๋กœ ๊ณต๊ฐ๊ฐ€๋Š” ๋ถ€๋ถ„์ด ๋งŽ์ง€๋Š” ์•Š์•„์„œ ๋น ๋ฅด๊ฒŒ ๋„˜๊ฒผ๋˜ ๊ฒƒ ๊ฐ™๋„ค์š”.. ์•„๋ž˜๋Š” ๋„์„œ์—์„œ ๊ดœ์ฐฎ์•˜๋˜, ์ •๋ฆฌํ•ด๋†“์€ ๋ฌธ์žฅ๋“ค์ž…๋‹ˆ๋‹ค.   Part 01, ์ฝ”๋“œ ์ •๋ฆฌ๋ฒ•18p, ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ํ–‰๋™์„ ํ•˜๋ฉด์„œ ๋ถˆ์•ˆํ•ดํ•˜๋Š” ๊ฒƒ์€ ๊ฒฝ์†”ํ•˜๊ฒŒ ์•ˆ์ „์„ ํ™•์‹ ํ•˜๋ฉฐ ์šฐ๋‘”ํ•˜๊ฒŒ ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋‚ซ์Šต๋‹ˆ๋‹ค. ์š”์ฆ˜ ํŠนํžˆ๋‚˜ ๋งŽ์ด ๋Š๋ผ๋Š” ๊ฐ์ •์ด๋ผ ๋”์šฑ ๊ณต๊ฐ์ด ๊ฐ”๋˜ ๋ฌธ์žฅ์ธ ๊ฒƒ ๊ฐ™๋„ค.. 2024. 5. 25.
Spring @RequestBody ํ•„๋“œ ๋ฐ”์ธ๋”ฉ์ด ๋˜์ง€ ์•Š๋Š” ์ด์Šˆ (feat. Lombok, Jackson์˜ ๋„ค์ด๋ฐ ์ฐจ์ด) ๊ฐœ์š” Spring์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ JSON ํ˜•์‹์œผ๋กœ ๋ฐ›๊ณ , @RequestBody๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JSON body์˜ ๋ฐ์ดํ„ฐ๋ฅผ Java Object์˜ ํ•„๋“œ์™€ ์—ญ์ง๋ ฌํ™”(Deserialize)๋ฅผ ํ†ตํ•ด ๊ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋ฐ”์ธ๋”ฉ์ด ์ด๋ฃจ์–ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ํ•„๋“œ์˜ ํŠน์ • ๋„ค์ด๋ฐ + Lombok์˜ @Getter๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐ”์ธ๋”ฉ์ด ์ •์ƒ์ ์œผ๋กœ ๋˜์ง€ ์•Š๋Š” ์ด์Šˆ๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ์š”, ์ด์™€ ๊ด€๋ จํ•˜์—ฌ ๊ฐ„๋žตํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ### Send POST request with json body POST http://localhost:8080/api/v1/test Content-Type: application/json { "pId": "pId", "poId": "poId" } ์˜ˆ๋ฅผ ๋“ค์–ด, ์œ„์™€ ๊ฐ™์€ ์„œ๋ฒ„ ์ฝ”๋“œ๊ฐ€ ์กด์žฌํ•˜๊ณ  ํด๋ผ.. 2024. 3. 20.
Spring Swagger(springdoc-openapi) Unable to render this definition ์˜ค๋ฅ˜ Spring ์—์„œ ๋ฌธ์„œํ™”๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ ์ž Swagger(Springdoc-openapi)๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค. Unable to render this definition ... ์‹ค์ œ api-docs URL๋กœ ์ ‘๊ทผํ•ด๋ณด๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฉ”์‹œ์ง€๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ปจ๋ฒ„ํ„ฐ๊ฐ€ ์•ˆ๋˜์–ด ๋‚˜์˜ค๋Š” ๋“ฏ ํ•œ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” MessageConverter ๋ฅผ Customํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ , ๋Œ€๋žต์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉ์ค‘์ž…๋‹ˆ๋‹ค. @Override public void configureMessageConverters(List 2024. 3. 4.
์‹ ๊ทœ ์‹œ์Šคํ…œ ๊ตฌ์ถ•ํ•˜๊ธฐ (feat. MSA, ๋ฐฑ์˜คํ”ผ์Šค) 2023๋…„, ํŒ€ ๋‚ด๋ถ€์—์„œ๋Š” `ํŒฉํ† ๋ฆฌ` ๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์‹ ๊ทœ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.๊ฐœ๋ฐœ์ž๋กœ์˜ ๊ฒฝ๋ ฅ์ด ๋งŽ์ง€๋Š” ์•Š์ง€๋งŒ, ๊ฐ€์žฅ ๊ฒฝํ—˜์ด ์ข‹์•˜๋˜ ํ”„๋กœ์ ํŠธ์˜€๊ณ , ์ฒ˜์Œ์œผ๋กœ ํ”„๋กœ์ ํŠธ ๋‹ค์šด(?) ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ž‘๋…„ ์ƒ๋ฐ˜๊ธฐ ์ง€๋…ํ•œ ๊ฐœ๋ฐœ ๋ฒˆ์•„์›ƒ์„ ๊ฒช์—ˆ๊ธฐ์—, ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ์—๋Š” ๋งค์šฐ ์†Œ๊ทน์ ์œผ๋กœ ์ž„ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์–ด๋Š ์ •๋„ ๋ฒˆ์•„์›ƒ์„ ํšŒ๋ณตํ•˜๊ณ , ์ ์ฐจ ์ ๊ทน์ ์œผ๋กœ ์ฐธ์—ฌํ•˜๋ฉฐ ์ผ์ •์€ ๋น ๋“ฏํ–ˆ์ง€๋งŒ ๊ต‰์žฅํžˆ ์žฌ๋ฐŒ๊ณ  ์ฆ๊ฒ๊ฒŒ ํ–ˆ์—ˆ๋Š”๋ฐ์š”, ๊ด€๋ จํ•˜์—ฌ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด ๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์‹ ๊ทœ ์‹œ์Šคํ…œ ๋ฐฐ๊ฒฝ๊ธˆ์•ก๊ถŒ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๊ธฐํ”„ํ‹ฐ์ฝ˜์€, ์ •ํ•ด์ง„ ๊ธˆ์•ก ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ์ƒํ’ˆ์ž…๋‹ˆ๋‹ค.์œ„ ์Šคํƒ€๋ฒ…์Šค๋ฅผ ์˜ˆ๋กœ ๋“ค์ž๋ฉด 20,000์› ํ•œ๋„ ๋‚ด์—์„œ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ์Šคํƒ€๋ฒ…์Šค ๊ธˆ์•ก๊ถŒ ์ƒํ’ˆ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ˜„์žฌ ๊ธˆ์•ก๊ถŒ ๊ด€๋ จํ•ด.. 2024. 1. 19.
Spring ์Šค์ผ€์ฅด๋Ÿฌ ๋กœ์ง์ด ๋ฉ€ํ‹ฐ ์„œ๋ฒ„ ์ค‘ ํ•œ ์„œ๋ฒ„์—์„œ๋งŒ ์‹คํ–‰๋˜๋„๋ก ์„ค์ •ํ•˜๊ธฐ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๋ฉด ์ตœ์†Œํ•œ 2๋Œ€ ์ด์ƒ์˜ ๋ฉ€ํ‹ฐ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์šด์˜์„ ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค์—์„œ ํŠน์ • ์‹œ๊ฐ„์—๋งŒ ์ˆ˜ํ–‰๋˜๋Š” ๋ฐฐ์น˜์„ฑ ๋กœ์ง์ด ์กด์žฌํ•œ๋‹ค๋ฉด, ๋ฐฐ์น˜ ์„œ๋ฒ„๋ฅผ ๋ณ„๋„๋กœ ๋‘๊ธฐ๋„ ํ•˜์ง€๋งŒ ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์Šค์ผ€์ฅด๋Ÿฌ๋ฅผ ์„ค์ •ํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์Šค์ผ€์ฅด๋Ÿฌ๋ฅผ ์ ์šฉํ•˜๋ฉด ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ A, B ์„œ๋ฒ„ ๋ชจ๋‘ ์Šค์ผ€์ฅด์ด ๋Œ๋ฉด์„œ ๋กœ์ง์ด 2๋ฒˆ ์‹คํ–‰๋  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”, ์ด์™€ ๊ด€๋ จํ•˜์—ฌ ์กฐ๊ธˆ ์ฐพ์•„๋ณด๋‹ˆ ๋Œ€๋ถ€๋ถ„์˜ ํฌ์ŠคํŒ…์—์„œ ShedLock? ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•˜๋Š” ๋“ฏํ•œ๋ฐ, Spring Profile ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์™€ ๊ฐ™์ด ์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์กด์žฌํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์— @Profile ์„ ์„ค์ •ํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ๋•Œ ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. IntelliJ Run/Debug Configurations Application.. 2023. 12. 30.
๋ฐ˜์‘ํ˜•