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

์ „์ฒด ๊ธ€128

[JAVA] ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ๋ฌด์—‡์ด๋ฉฐ, Junit5 ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด์„œ ๋ฌด์—‡๋ณด๋‹ค๋„ ์ค‘์š”ํ•œ ์  ์ค‘ ํ•˜๋‚˜๋Š” ์•ˆ์ •์ ์ธ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•ˆ์ •์ ์ธ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—ฌ๋Ÿฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด์•ผ ํ•˜๊ณ , ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋‚˜๋ˆ„์–ด ์ด์ƒ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹ค๋ฌด์—์„œ ๊ธด๊ธ‰ํ•œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด๋‚˜ ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ•œ ๋ฒ„๊ทธ๋Š” ๊ฐœ๋ฐœ์ž๋“ค์„ ๊ดด๋กญํž™๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ์‹œ๊ฐ„์— ์ซ“๊ฒจ ํ…Œ์ŠคํŠธ๋ฅผ ์ œ๋Œ€๋กœ ํ•˜์ง€ ๋ชปํ•˜๊ณ  ๊ตฌ์ถ•ํ•˜์‹  ๊ฒฝํ—˜๋„ ์žˆ์œผ์‹ค ๊ฒ๋‹ˆ๋‹ค. ์ €๋Š” SI ๊ธฐ์—…์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์‹  ๊ฒฝํ—˜์ด ์žˆ๊ณ , '๊ธฐํ•œ์ผ์ด ์ด‰๋ฐ•ํ•˜๋‹ค' ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์œ ๋กœ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์ง€ ์•Š๊ณ  ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•œ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ฌ์ง€์–ด ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ๋กœ๋งŒ ์ง„ํ–‰ํ•˜์‹  ๋ถ„๋“ค๋„ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค. ๊ณผ์—ฐ ์šด์˜ ์ค‘์— ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ์„๊นŒ์š”? ์—ฌ๋Ÿฌ ์„œ๋น„์Šค ๊ธฐ์—…์—์„œ๋Š” TDD (ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ)์„ ์ง„ํ–‰ ์ค‘์ด๋ฉฐ, ๋‹จ์œ„ ํ…Œ์Šค.. 2023. 11. 29.
[Spring Batch] ํ™˜์œจ ์ •๋ณด API ๋ฅผ ๊ฐ„๋‹จํ•œ ๋ฐฐ์น˜ ์Šค์ผ€์ค„๋Ÿฌ ์ถ”๊ฐ€ - ์˜ˆ์ œํŽธ ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ ์ง€๋‚œ ์‹œ๊ฐ„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ๋˜ Batch์— Scheduler(์Šค์ผ€์ค„๋Ÿฌ)์™€ Log๋ฅผ ์ถ”๊ฐ€ํ•œ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์Šคํ”„๋ง ๋ฐฐ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์–ธ์ œ, ์–ด๋–ป๊ฒŒ ํ˜ธ์ถœํ•˜๊ณ  ์‹คํ–‰์‹œํ‚ฌ์ง€์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์น˜๋Š” ์ผ๊ด„์ ์ธ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉ๋˜๊ธฐ๋„ ํ•˜์ง€๋งŒ ์‹ค์ œ ์—…๋ฌด์—์„œ๋Š” ์Šค์ผ€์ค„๋Ÿฌ์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์„ ์ž์ฃผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์Šค์ผ€์ค„๋Ÿฌ ์ด์™ธ์— ์–ด๋–ค ๊ฒฝ์šฐ์— ๋ฐฐ์น˜๋ฅผ ํ˜ธ์ถœํ• ๊นŒ์š”? ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํŠน์ • URL ์ฃผ์†Œ๋ฅผ ์ ‘๊ทผํ•˜๊ฒŒ ๋˜์—ˆ์„ ๋•Œ์—๋„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋‚ด Controller์—์„œ ํ•ด๋‹น Service๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  Service์— ํŠน์ • Batch๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์น˜(Batch)๋ผ๊ณ  ๋– ์˜ฌ๋ฆฌ์‹ค ๋•Œ 'ํŠน์ • ์‹œ๊ฐ„์— ํŠน์ • ์ž‘์—…์„ ํ•˜๋Š” ๊ฒƒ'์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋ฐฐ์น˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ์ผ๊ด„์ ์œผ๋กœ.. 2023. 11. 24.
[Spring Batch] ํ™˜์œจ ์ •๋ณด Open API๋ฅผ ํ™œ์šฉํ•œ ๊ฐ„๋‹จํ•œ ๋ฐฐ์น˜ ๋งŒ๋“ค๊ธฐ - ์˜ˆ์ œํŽธ ๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ ์ด์ „ ๋ธ”๋กœ๊ทธ ๊ธ€์— ์•„๋ž˜์™€ ๊ฐ™์€ ๊ธ€์„ ๋‚จ๊ฒผ์Šต๋‹ˆ๋‹ค. 2023.11.15 - [๊ฐœ๋ฐœ/Spring & SpringBoot] - [Spring Boot] ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด Batch๋ฅผ ์•Œ์•„๋ณด์ž - ์ด๋ก  ํŽธ [Spring Boot] ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด Batch ๋ฅผ ์•Œ์•„๋ณด์ž - ์ด๋ก ํŽธ ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ, ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋ฐ–์— ์—†๋Š” ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ณ„์ •๊ณ„ ์—…๋ฌด์—์„œ๋Š” ๋ฐฐ์น˜๋ฅผ ์Šค์ผ€์ฅด๋Ÿฌ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •๋œ ์‹œ๊ฐ„์— ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์žฌ๋ฌด ํŒŒํŠธ seodeveloper.tistory.com ์ด๋ก  ํŽธ์—์„œ ์‹ค์ „ ํŽธ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „์— ๋ฐฐ์น˜์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ, ํ•œ๊ตญ์ˆ˜์ถœ์ž…์€ํ–‰์˜ ํ™˜์œจ์ •๋ณด Open API๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฐ„๋‹จํ•œ ๋ฐฐ์น˜ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์–ด.. 2023. 11. 23.
[Spring Batch] ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด Batch ๋ฅผ ์•Œ์•„๋ณด์ž - ์ด๋ก ํŽธ ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ, ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋ฐ–์— ์—†๋Š” ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ณ„์ •๊ณ„ ์—…๋ฌด์—์„œ๋Š” ๋ฐฐ์น˜๋ฅผ ์Šค์ผ€์ฅด๋Ÿฌ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •๋œ ์‹œ๊ฐ„์— ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์žฌ๋ฌด ํŒŒํŠธ์—์„œ๋Š”, ์€ํ–‰ ๋งˆ๊ฐ ์‹œ ์ฐจ๋ณ€๊ณผ ๋Œ€๋ณ€์˜ ๊ธˆ์•ก์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ ๋ฐฐ์น˜๋ฅผ ์‹คํ–‰์‹œ์ผœ ์•Œ๋ฆผ์„ ์•Œ๋ ค์ฃผ๊ณ , ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํŠน์ • ์ผ์ž๋‚˜ ํŠน์ • ์‹œ๊ฐ„์— ๋งž์ถฐ ๋ฉ”์ผ ๋ฐœ์†ก์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋กœ์ง์„ ๊ตฌ์„ฑํ•œ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ์˜ ๊ธฐ์ค€์€ ์‚ฌ๋žŒ๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ๋Š” 100๋งŒ ๊ฑด์ด๋‚˜ 1์–ต ์ด์ƒ๊ฑด์ด ๋Œ€๋ถ€๋ถ„์ด์ง€๋งŒ ๊ฐœ๋ฐœ์ž๋‚˜ ํšŒ์‚ฌ๋งˆ๋‹ค ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅด๊ณ  ๊ณผ๊ฑฐ์™€ ๋‹ค๋ฅด๊ฒŒ ์ง€๊ธˆ์€ ์ ์  ๋” ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜๋ฉด์„œ ๊ธฐ์ค€์„ ์กฐ๊ธˆ ๋” ๋†’๊ฒŒ ์žก๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ๊ธฐ์ค€ - Okky OKKY - ๋Œ€์šฉ๋Ÿ‰์˜ ๊ธฐ์ค€์— ๋Œ€ํ•ด์„œ ์งˆ๋ฌธ.. 2023. 11. 15.
[์žฌ๋ฌด] ์žฌ๋ฌดํšŒ๊ณ„ vs ๊ด€๋ฆฌํšŒ๊ณ„, ์ถฉ๋‹น๋ถ€์ฑ„ vs ๋Œ€์†์ถฉ๋‹น๊ธˆ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—, ์žฌ๋ฌด ์‹œ์Šคํ…œ์„ ์šด์˜ํ•˜๋ฉด์„œ ์•Œ์•„์•ผ ํ•  ์šฉ์–ด๋‚˜ ํ—ท๊ฐˆ๋ฆฌ๋Š” ๊ฒƒ๋“ค์„ ์ž‘์„ฑํ•ด ๋†“์€ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ด ์ „์— ์ž‘์„ฑํ•ด ๋†“์€ ๊ธ€๋“ค๊ณผ ์•ฝ๊ฐ„์˜ ์ค‘๋ณต์ด ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ์  ์ฐธ๊ณ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์žฌ๋ฌดํšŒ๊ณ„ vs ๊ด€๋ฆฌํšŒ๊ณ„ ์žฌ๋ฌดํšŒ๊ณ„ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋ฅผ ์ฑ„์šฉํ•˜๋Š” ๊ณต๊ณ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๊ด€๋ฆฌํšŒ๊ณ„ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋ฅผ ์ฑ„์šฉํ•˜๋Š” ๊ณต๊ณ ๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ํšŒ๊ณ„ ๋ฐฉ์‹์— ์ฐจ์ด์ ์ด ๊ถ๊ธˆํ•˜์—ฌ ์ž‘์„ฑํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ตฌ๋ถ„ ์žฌ๋ฌดํšŒ๊ณ„ ๊ด€๋ฆฌํšŒ๊ณ„ ์˜์˜ 1. ๊ธฐ์—…์˜ ์žฌ๋ฌด์ƒํƒœ, ์žฌ๋ฌด์„ฑ๊ณผ, ์ž๋ณธ๋ณ€๋™, ํ˜„๊ธˆํ๋ฆ„์˜ ํ‘œ์‹œ 2. ์™ธ๋ถ€๋ณด๊ณ  1. ์˜์‚ฌ๊ฒฐ์ •์„ ์œ„ํ•œ ์ •๋ณด์˜ ์ œ๊ณต 2. ๊ฒฝ์˜๊ณ„ํš ๋ฐ ํ†ต์ œ๋ฅผ ์œ„ํ•œ ํšŒ๊ณ„ 3. ๋‚ด๋ถ€๋ณด๊ณ  ๋ชฉ์  ์™ธ๋ถ€์ •๋ณด์ด์šฉ์ž์˜ ๊ฒฝ์ œ์  ์˜์‚ฌ๊ฒฐ์ •์— ์œ ์šฉํ•œ ์ •๋ณด์˜ ์ œ๊ณต (ํˆฌ์ž๊ฒฐ์ •, ์‹ ์šฉ๊ฒฐ์ • ๋“ฑ) ๊ฒฝ์˜์ž์˜ ๊ด€๋ฆฌ์  ์˜์‚ฌ๊ฒฐ์ •์— ์œ ์šฉํ•œ ์ •๋ณด์˜ ์ œ๊ณต ๋ณด๊ณ ๋Œ€์ƒ ํˆฌ.. 2023. 11. 7.
[JAVA] ReentrantLock ์ด๋ž€? ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ, ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•˜์—ฌ synchronized ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋‹ˆ, ํ•ด๋‹น ํ‚ค์›Œ๋“œ ๋ง๊ณ  ๋‹ค๋ฅธ ๊ฒƒ๋“ค์€ ๋ฌด์—‡์ด ์žˆ์„๊นŒ ์ฐพ์•„๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ๋ฐœ๊ฒฌํ•œ ๊ฒƒ์ด ReentrantLock์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ธ€์—์„œ๋Š” ์•„๋ž˜ 3๊ฐ€์ง€ ์งˆ๋ฌธ์œผ๋กœ ๊ตฌ๋ถ„ ์ง€์–ด ์ž‘์„ฑํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ReentrantLock ์ด๋ž€? ReentrantLock ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ฐ ์˜ˆ์‹œ ReentrantLock VS synchronized ์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ด ์žˆ๋‚˜์š”? 1. ReentrantLock ์ด๋ž€? JAVA ์—์„œ ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ๋™๊ธฐํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ˆ˜๋™์œผ๋กœ ์ž ๊ธˆ ์˜์—ญ(Lock) ์˜ ์‹œ์ž‘์ ๊ณผ ๋์ ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์œ ์—ฐํ•œ ๋™๊ธฐํ™”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. 2. ReentrantL.. 2023. 11. 1.
728x90
๋ฐ˜์‘ํ˜•