synee
@synee
Students
1,995
Reviews
118
Course Rating
4.9
์ฃผ์ ์ด๋ ฅ
๊ตญ๊ฐ ํต์ฌ ๋ง ๊ด๋ฆฌ: ๋๋ฒ์ ๋ฐ ์กฐ๋ฌ์ฒญ ์์คํ ์ด์ยท์ต์ ํ ์ ๋ฌธ๊ฐ
์ฐจ์ธ๋ ๊ณต๊ณต ํ๋ซํผ ๊ตฌ์ถ: ์ง๋ฅํ ๋์ด์ค(NEIS) ์์ฉ SW ๊ฐ๋ฐ ๋ฐ ์ํคํ ์ฒ ์ค๊ณ
ํ์คํ ์ ๋ฌธ ๊ต์ก์: K์ฌ ๋ถํธ์บ ํ ๋ฑ ๋ค์์ ๊ฐ์๋ฅผ ํตํ ์ค์ ๊ธฐ์ ์ ์
์ํฐํ๋ผ์ด์ฆ ์๋ฃจ์ ์ ๋ฌธ๊ฐ: ๋๊ท๋ชจ ์์คํ ์ ์ง๋ณด์ ๋ฐ ๊ณ ๋ํ ์ค๊ณ ์ญ๋ ๋ณด์
์๋
ํ์ธ์! ๊ฐ๋ฐ์๋ก ์์ํด ์ง๊ธ์ ๊ต์ก์๋ก ํ๋ํ๊ณ ์๋ JSCODE ์๋์
๋๋ค.
๊ตญ๊ฐ ์ค์ ์์คํ ์ ์ง์ ๋ง๋ค๊ณ ์ด์๋ ํด๋ดค์ง๋ง, ์ฌ์ค ์ ๊ฐ ๊ฐ์ฅ ์ํ๋ ๊ฑด "๊ทธ ์ด๋ ค์ด ๊ฑธ ๋๊ตฌ๋ ์ดํดํ๊ฒ ์ค๋ช ํ๋ ๊ฒ" ์ ๋๋ค.
์ค๋ฌด ํ์ฅ์ ์๋ ๊ฑฐ์น ๊ณ ๋ณต์กํฉ๋๋ค. ๐คฏ
ํ์ง๋ง ๋ฐฐ์ฐ๋ ๊ณผ์ ๊น์ง ๊ทธ๋ด ํ์๋ ์์์์?
์ฌ๋ฌ๋ถ์ด ์ง๊ธ ๋น์ฅ ๋ฐฐ์ฐ๊ณ ์ถ์ ์คํ์ด ๋ฌด์์ด๋ ์๊ด์์ด์.
์ค๋ฌด ํ์ฅ์ ๋ณต์กํ ๊ธฐ์ ๋ค์ ์ฌ๋ฌ๋ถ์ ๋๋์ด์ ๋ง์ถฐ ์์ฃผ ์ฝ๊ฒ ์น์ด์ ๋ ๋จน์ฌ ๋๋ฆด๊ฒ์! ๐
๋จธ๋ฆฟ์์๋ง ์๋ ๋ณต์กํ ์๊ฐ๋ค์ด ์ค์ ๋์๊ฐ๋ ์๋น์ค๋ก ๋ฐ๋๋ ์ ๊ธฐํ ๊ฒฝํ, ์ ๋ ๊ฐ์ด ์ฝ๊ณ ์ฌ๋ฐ๊ฒ ์์ํด ๋ด์!
Courses
Reviews
- Introduction to Spring Batch: Fundamentals of Large-Scale Processing in 3 Hours
- Log Management and Monitoring - ELK, Prometheus, Grafana
- Log Management and Monitoring - ELK, Prometheus, Grafana
- (Free Live) 2026 Backend Developer Job Strategy Briefing Session
- (Free Live) 2026 Backend Developer Job Strategy Briefing Session
Posts
Q&A
๋ง์ดํฌ๋ก๋ฏธํฐ๋ ๋ณ๋ ์ค์ ์ด ์์ด๋ ๋๋์?
์๋ ํ์ธ์ gibbs๋! ใ ใ JSCODE ์๋ ์ ๋๋ค~! ์์ง ์ค์ต์ ๋ชปํด๋ณด๊ณ ์์๋ง ๋ณด๋ ์ค์ด์๊ตฐ์! ์ ์ฒด์ ์ธ ํ๋ฆ์ ๋จผ์ ํ์ ํ์๋ ๊ฒ๋ ์์ฃผ ์ข์ ํ์ต ๋ฐฉ๋ฒ์ ๋๋ค.๊ฒฐ๋ก ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด, ์์กด์ฑ์ ์ถ๊ฐํ๋ฉด ๋ง์ดํฌ๋ก๋ฏธํฐ๊ฐ ์๋์ผ๋ก ๊ธฐ๋ณธ ์งํ๋ค์ ์์งํ์ง๋ง, ์ด ๋ฐ์ดํฐ๋ฅผ ํ๋ก๋ฉํ ์ฐ์ค๊ฐ ๊ฐ์ ธ๊ฐ ์ ์๋๋ก(Scraping) ๊ธธ์ ์ด์ด์ฃผ๋ ์ค์ ํ์ผ(application.yml) ์์ ์ด ๋ฐ๋์ ํ์ํฉ๋๋ค!๊ฐ์์์ ๋ค๋ฃจ๊ณ ์๋ ์ค์ ์ ๊ธฐ์ค์ผ๋ก ์ค๋ช ํด ๋๋ฆด๊ฒ์! ใ ใ 1. ์์กด์ฑ ์ถ๊ฐimplementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'io.micrometer:micrometer-registry-prometheus' ์ด ๋ ๊ฐ์ง ์์กด์ฑ์ ์ถ๊ฐํ๋ฉด ์คํ๋ง ๋ถํธ๊ฐ ์ค๊ฐ์์ ๋ง์ดํฌ๋ก๋ฏธํฐ์ ๊ด๋ จ๋ ์ค์ ๋ค์ ์๋์ผ๋ก ์ฒ๋ฆฌํ๊ณ , JVM, CPU, ์น ์์ฒญ ๋ฑ ๋ค์ํ ๊ธฐ๋ณธ ์งํ๋ฅผ ์์งํ๊ธฐ ์์ํฉ๋๋ค. 2. ์๋ํฌ์ธํธ ๋ ธ์ถ ๋ฐ ์ถ๊ฐ ์ค์ (application.yml)๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์๋๋ผ๋ ๋ณด์์ ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์ธ๋ถ์์ ์ ๊ทผํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํ๋ก๋ฉํ ์ฐ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์งํ ์ ์๋๋ก ์๋์ ๊ฐ์ด ์ค์ ์ ์ถ๊ฐํด์ฃผ์ด์ผ ํฉ๋๋ค.spring: application: name: waiting-api management: endpoints: web: exposure: include: prometheus,health,info,metrics,env,loggers metrics: tags: application: waiting-api endpoint: health: show-details: always ์ด ์ค์ ์ ํตํด /actuator/prometheus ๋ฑ์ ์๋ํฌ์ธํธ๋ฅผ ์ธ๋ถ์ ๋ ธ์ถํ๊ณ , ์์ง๋๋ ๋ชจ๋ ์งํ์ application: waiting-api๋ผ๋ ๊ณตํต ํ๊ทธ๋ฅผ ๋ถ์ฌ ํ๋ก๋ฉํ ์ฐ์ค์์ ์๋ณํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด ์ค๋๋ค.์ดํ ์ค์ต์ ์งํํ์๋ฉด์ ์ค์ ํ์ผ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ์ง์ ํ์ธํด ๋ณด์๋ฉด ๊ตฌ์กฐ๊ฐ ํจ์ฌ ๋ช ํํ๊ฒ ์ดํด๋์ค ๊ฑฐ์์!ใ ใ ๊ฐ์ ์๊ฐํ์๋ค๊ฐ ๋ ๊ถ๊ธํ ์ ์ด ์๊ธฐ๋ฉด ์ธ์ ๋ ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์ธ์~!! ํ์ดํ ํ์๊ณ ์ข์ํ๋ฃจ ๋ณด๋ด์ธ์~!!
- 0
- 1
- 19
Q&A
์์ค์ฝ๋ ๋นํ์ผ ๋ฌธ์
dsadadsa๋ ์๋ ํ์ธ์! JSCODE ์๋ ์ ๋๋ค~์๋ฃ ๋ค์ด๋ก๋๊ฐ ์๋ผ์ ๊ต์ฅํ ๋ต๋ตํ์ จ๊ฒ ๋ค์! ใ ใ ์ ๊ฐ ๋ฐฉ๊ธ ๋ค์ ๋ค์ด๋ก๋ ํด๋ณด์๋๋ฐ, ์ PC์์๋(์ฌ์ง)์ด๋ ๊ฒ ํด๋ ๋ฐ ํ์ผ๋ค์ด ์ ๋ณด์ด๊ณ ์์ด์ ์กฐ์น๋ฐฉ๋ฒ ์๋ด๋๋ฆฝ๋๋ค.ํน์ ๋ชฐ๋ผ ์ง์ ์ธํ๋ฐ ๋ฌธ์ํด๋ณด๋ ํ์ฌ ์ ์ ๋ค์ด๋ก๋ ๋๋๊ฒ์ผ๋ก ํ์ธ ๋์์ต๋๋ค!ํด๋น ์ฆ์์ ๊ฒฝ์ฐ ์บ์ ๋ฌธ์ ์ผ ๊ฐ๋ฅ์ฑ์ด ๋์์ ์บ์ ์ญ์ ํ ์ฌ ๋ค์ด๋ก๋ ์งํํด๋ณด์๊ณ ์บ์ ์ญ์ ํ์๋ ๋์ผ ๋ฌธ์ ๋ฐ์์ ์ธํ๋ฐ ์ฑ๋ํก์ผ๋ก ๋ฌธ์์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค!ํน์๋ผ๋ ์งํ์ด ์ ์๋์ ๋ค๋ฉด 1:1 ๊ฐ์ธ ์ฑํ ๋ฐฉ์ผ๋ก ์ด๋ฉ์ผ ๋จ๊ฒจ์ฃผ์ธ์! ํ์ผ ๋ณด๋ด๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค~!!
- 0
- 1
- 34
Q&A
jobParameter๋ฅผ ํตํ ๋ฉฑ๋ฑ์ฑ ์ง๋ฌธ
iii๋ ์๋ ํ์ธ์! JSCODE ์๋์ ๋๋ค~ ์ฐ์ ๊ฐ์๋ฅผ ์ฌ๋ฏธ์๊ฒ ๋ค์ด์ฃผ์๊ณ , ์ค๊ธ ๊ฐ์๊น์ง ๊ธฐ๋ํด ์ฃผ์ ๋ค๋ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค! ใ ใ ๋จ๊ฒจ์ฃผ์ ์ง๋ฌธ๋ค์ ์ฝ์ด๋ณด๋, ๋ฐฐ์น ํ๋ก์ธ์ค ์ค๊ณ์ ํต์ฌ์ด์ ๊ฐ์ฅ ๊น๋ค๋ก์ด ๋ถ๋ถ ์ค ํ๋์ธ ๋ฉฑ๋ฑ์ฑ๊ณผ ์คํจ ๋ณต๊ตฌ์ ๋ํด ์์ฃผ ์ ํํ๊ณ ๊น์ด ์๋ ๊ณ ๋ฏผ์ ํ๊ณ ๊ณ์ ๊ฒ ๊ฐ์์~! ์ง๋ฌธ์ฃผ์ ๋ด์ฉ์ ์ค์ ์ค๋ฌด์์ ๋ฐฐ์น๋ฅผ ์ค๊ณํ ๋ ๋ฐ๋์ ๊ณ ๋ คํด์ผ ํ๋ ํฌ์ธํธ๋ค ์ ๋๋ค! ใ ใ iii๋์ด ์ง๋ฌธ ์ฃผ์ ์ธ ๊ฐ์ง ์ง๋ฌธ์ ๋ํด ํ๋์ฉ ๋ต๋ณ ๋๋ฆฌ๊ฒ ์ต๋๋ค! 1. ์คํจ ์ง์ ๋ถํฐ ์ฌ์คํํ ๋์ ํ๋ผ๋ฏธํฐ ์ ์ง ์ฌ๋ถ"๋ง์ฝ์ job์ ์คํจ์ง์ ๋ถํฐ ์ฌ์คํ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ์๋ targetDate ๋ฟ๋ง ์๋๋ผ ์คํจํ ์๊ฐ๋์ time ํ๋ผ๋ฏธํฐ๊น์ง ๋ฃ์ด์ ์ฌ์์์ ํด์ผํ๋ ๊ฒ์ธ๊ฐ์?"๋ค! ์ ํํ ๋ง์ต๋๋ค.Spring Batch์์ ๋์ผํ Job์ ์๋ณํ๋ ๊ธฐ์ค์ Job Parameters ์ ๋๋ค. ํ๋ผ๋ฏธํฐ๊ฐ ์๋ฒฝํ๊ฒ ๋์ผํด์ผ Spring Batch๋ ์ด๋ฅผ ์๋ก์ด ์คํ์ด ์๋ ๊ธฐ์กด JobInstance์ ์ฌ์คํ์ผ๋ก ์ธ์ํฉ๋๋ค!๋ฐ๋ผ์, ์คํ๋์ค ์คํจํ Job์ ์ฒ์๋ถํฐ๊ฐ ์๋ ์คํจํ ์ง์ (Chunk) ๋ถํฐ ์ด์ด์ ์ฌ์คํ ํ๊ณ ์ถ๋ค๋ฉด, targetDate๋ ๋ฌผ๋ก ์ด๊ณ ์คํจํ๋ ๋น์์ time ํ๋ผ๋ฏธํฐ ๊ฐ๊น์ง ๋๊ฐ์ด ๋ฃ์ด์ ์คํํ์ ์ผ ํฉ๋๋ค!๋ง์ฝ time ๊ฐ์ ์กฐ๊ธ์ด๋ผ๋ ๋ค๋ฅด๊ฒ ๋ถ์ฌํ๋ฉด, Spring Batch๋ ์ด๋ฅผ ์์ ํ ์๋ก์ด JobInstance๋ก ํ๋จํ์ฌ ์ฒ์๋ถํฐ ์๋ก์ด ์์ ์ ์์ํ๊ฒ ๋ฉ๋๋ค~! 2.๋ค๋ฅธ time ํ๋ผ๋ฏธํฐ๋ก ์ฌ์คํ์ DELETE Step ๋ถ๋ฆฌ ์ฌ๋ถ"์ ์ฐ ํ ์ด๋ธ์์ targetDate์ ํด๋นํ๋ ๊ฐ์ DELETE๋ฅผ ํ๊ณ INSERT๋ฅผ ์งํํด์ผ ๋ฉฑ๋ฑ์ฑ์ด ์ ์ง๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ด ๊ฒฝ์ฐ DELETE ๊ฐ์ ๊ฒฝ์ฐ๋ Settlement INSERT ์์ ์ด์ ์ ๋ณ๋์ Step์ผ๋ก ๊ตฌ์ฑ์ด ๋์ผํ ๊น์?"๋ค ๋ง์ต๋๋ค!์ด์ ์คํ์ด ์๋ฃ๋์๊ฑฐ๋, ์คํจํ๋๋ผ๋ ์ฒ์๋ถํฐ ์์ ํ ๋ค์ ๋๋ฆฌ๊ณ ์ถ์ด ์๋ก์ด time ํ๋ผ๋ฏธํฐ๋ฅผ ๋ถ์ฌํ์ฌ ์คํํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์ด๋ ๊ธฐ์กด์ ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๊ฐ ๋จ์์๋ค๋ฉด ์ค๋ณต ์ ์ฐ์ด ๋ฐ์ํ๋ฏ๋ก ๋ฉฑ๋ฑ์ฑ์ด ๊นจ์ง๊ฒ ๋ฉ๋๋ค..!์ด๋ฐ ์ํฉ์์ ๋ฉฑ๋ฑ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด iii๋๊ป์ ๋ง์์ฃผ์ ๊ฒ ์ฒ๋ผ INSERT ์ด์ ์ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ DELETE ํ๋ ์์ ์ด ํ์์ ์ ๋๋ค.๊ทธ๋ฆฌ๊ณ ์ด DELETE ์์ ์ ๋ณ๋์ Step(์๋ฅผ ๋ค๋ฉด deleteSettlementStep) ์ผ๋ก ๊ตฌ์ฑํ์ฌINSERT Step ๋ฐ๋ก ์ง์ ์ ๋ฐฐ์นํ๋ ๊ฒ์ด ๊ฐ์ฅ ๊ถ์ฅ๋๋ ์ค๊ณ ๋ฐฉ์์ ๋๋ค.์ด๋ ๊ฒ Step์ ๋ถ๋ฆฌํ๋ฉด ์ญํ ์ด ๋ช ํํด์ง๊ณ , ํธ๋์ญ์ ๊ด๋ฆฌ๋ ํจ์ฌ ๊น๋ํด์ง๊ฑฐ์์!ใ ใ 3.DELETE ์คํ ๋ฐฉ์ (ํ ๋ฒ์ ์ญ์ OR ๋๋์ด์ ์ญ์ )"๋ง์ฝ์ DELETE๋ฅผ ํด์ผํ๋ค๋ฉด DELETE์ ๊ฒฝ์ฐ์๋ targetDate์ ํด๋น ํ๋ ๊ฐ์ ํ๋ฒ์ ์ ๋ถ ์ง์ฐ๊ณ INSERT๋ฅผ ์์ํ๋์ง ๊ถ๊ธํฉ๋๋ค..!"์ผ๋ฐ์ ์ผ๋ก๋ targetDate์ ํด๋นํ๋ ๊ฐ์ ํ ๋ฒ์ ๋ฒํฌ์ฐ์ฐ์ผ๋ก ์ ๋ถ ์ง์ฐ๊ณ ์์ํ๋ ๊ฒ์ด ๋ง์ต๋๋ค.์ ์ฐ ๋ฐฐ์น์ ํน์ฑ์ ํด๋น ๋ ์ง(targetDate)์ ์ ์ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ์๋ถํฐ ๋ค์ ๋ง๋ ๋ค๋ ์๋ฏธ์ด๋ฏ๋ก,ํน์ ๋ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ด๊ธฐํ ํ๋ ๊ฐ๋ ์ ๋๋ค. ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ์ฟผ๋ฆฌ๋ฅผ ์์ฑํด์ ์ญ์ ํ๋ ๋ฐฉ์์ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค.DELETE FROM settlement WHERE target_date = :targetDate๋จ, ์ค๋ฌด์์ ์์ ์ ํ๋ค๋ณด๋ฉด ์ญ์ ํด์ผํ targetDate์ ํ๋ฃจ์น ๋ฐ์ดํฐ๊ฐ ์์ฒ๋ง๊ฑด ์ด์ ์ด์ฌ์ ํ๋ฒ์ DELETE ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฌ๊ฒ ๋๋ฉด DB๋ฝ์ด ๊ฑธ๋ฆฌ๊ฒ ๋๊ฑฐ๋ ์ฑ๋ฅ์ ์ด์๊ฐ ๋ฐ์ํ ์๋ ์์ต๋๋ค..!์ด๋๋ ์์ธ์ ์ผ๋ก ์ญ์ ์์ ๋ Chunk ๋จ์๋ก ๋๋์ด ์ง์ฐ๊ฑฐ๋, ํํฐ์ ๋์ ๊ณ ๋ คํด์ผ ํ ์๋ ์์ต๋๋ค.ํ์ง๋ง ์ ๊ฒฝํ์ ์ผ๋ฐ์ ์ธ ์ค๋ฌด ํ๊ฒฝ์์๋ ๋ ์ง ์กฐ๊ฑด ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ์ฌ ๋ฒํฌ ์ฐ์ฐ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ๊ฐ ๊ฐ์ฅ ๋ง์๋ ๊ฒ ๊ฐ์ต๋๋ค.์ ๊ฐ iii๋์ ์ง๋ฌธ์ ์ ์ดํดํ๊ณ ๋ต๋ณ์ ๋ฌ์๋๋ ธ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค์~! ํน์๋ผ๋ ์ ํด๊ฒฐ์ด ๋์ง ์๋ ๋ถ๋ถ์ด ์๋ค๋ฉด ์ธ์ ๋ ํธํ๊ฒ ๊ฒ์ํ์ ๋จ๊ฒจ์ฃผ์ธ์!์ต๋ํ ๋น ๋ฅด๊ฒ ํ์ธ ํ ๋ต๋ณ๋๋ฆฌ๋๋ก ํ๊ฒ ์ต๋๋ค~! ์ค๋๋ ์ฆ๊ฑฐ์ด ํ๋ฃจ ๋ณด๋ด์ธ์! ใ ใ
- 1
- 2
- 52
Q&A
bootRun FAILED ์ ๋ํ ๋ฌธ์
์ฟ ์นด์ด๋ ๋ ์๋ ํ์ธ์~ JSCODE ์๋ ์ ๋๋ค!๋ฐฐ์น ์คํจ ์ ๋ฉ์ผ ์ ์ก ์์ ๋ค์ผ์๋ค๊ฐ ๊ถ๊ธํ์ ์ด ์๊ฒจ ๋ง์ด ๋ต๋ตํ์ จ์ ๊ฒ ๊ฐ์์! ์บก์ณํด์ฃผ์ ์ฌ์ง์ ํ์ธํด๋ณด๋, ๊ฒฐ๊ณผ ํ๋ฉด์ด ์ ์ ๋ค๋ฅด๊ฒ bootRun FAILED๋ก ๋์ค์ จ๋ค์!์ด ํ์์ ์์ธ์ ๋ฐ๋ก main ๋ฉ์๋์ ์ค์ ์ฐจ์ด ๋๋ฌธ์ ๋๋ค~!์๋ง ์ฟ ์นด์ด๋ ๋ ๊ฐ์ ๊ฒฝ์ฐ๋ ์ค์ตํ์๋ฉด์ main ๋ฉ์๋๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ์ จ์ ๊ฑฐ์์. System.exit(SpringApplication.exit(SpringApplication.run(SyBatchSystemApplication.class, args))); ๊ทธ๋ฌ๋ ์ ๋ ํด๋น ์ค์ต์ ์งํํ ๋ main ๋ฉ์๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๊ธฐ๋ณธ ์ํ ๊ทธ๋๋ก ์ฌ์ฉ ํ์ต๋๋ค! :)SpringApplication.run(SyBatchSystemApplication.class, args); ์คํ๋ง ๋ถํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ์์ธ๊ฐ ๋ฐ์ํด ํ๋ก๊ทธ๋จ์ด ์ฃฝ๋๋ผ๋(์ฐ๋ฆฌ์ ๊ฒฝ์ฐ์ฃ !), ํ๋ก์ธ์ค ์ข ๋ฃ ์ฝ๋(Exit Code)๋ฅผ 0(์ ์ ์ข ๋ฃ)์ผ๋ก ๋ฐํํ๋ฉฐ ๋๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.! ์ฟ ์นด์ด๋ ๋์ด ์์ฑํ์ System.exit(...) ์ฝ๋๋ ์คํ๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์ข ๋ฃ ์ฝ๋๋ฅผ ์ฝ์ด์์ OS(์ด์์ฒด์ )์ ์ ํํ ์ํ๋ฅผ ์ ๋ฌํด ์ฃผ๋ ์ญํ ์ ํฉ๋๋ค! ์ฆ, ๋ฐฐ์น๊ฐ ์คํจ(์์ธ ๋ฐ์)ํ์ผ๋ ๋น์ ์ ์ข ๋ฃ ์ฝ๋๋ฅผ ๋ฐํํ๊ฒ ๋๊ณ , ๊ทธ ๊ฒฐ๊ณผ Gradle์ด ์ด๋ฅผ ๊ฐ์งํด์ > Task :bootRun FAILED๋ผ๊ณ ๋ช ํํ๊ฒ ๋น๋ ์คํจ ์๋ฌ๋ฅผ ์ถ๋ ฅํ ๊ฒ์ด์ฃ !๋ฐ๋ฉด, ์ ๊ฐ ์ค์ตํ ๊ธฐ๋ณธ ์ฝ๋์์๋ ์ด ์์ธ์ ๋ฐ๋ฅธ ๋น์ ์ ์ข ๋ฃ ์ฝ๋๋ฅผ ์์คํ ์ผ๋ก ๋ช ์์ ์ผ๋ก ์ ๋ฌํ์ง ์์๊ธฐ ๋๋ฌธ์, ๊ฒฐ๊ณผ ํ๋ฉด์ด ๋ค๋ฅด๊ฒ ๋ํ๋ฌ๋ ๊ฑฐ๋ผ๊ณ ์ดํดํด์ฃผ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค! ๊ฒฐ๋ก ์ ์ผ๋ก ์ฟ ์นด์ด๋ ๋์ด ์์ฑํ์ ์ฝ๋๊ฐ ์ค์ ์ด์ ํ๊ฒฝ์์ ๋ฐฐ์น์ ์ฑ๊ณต/์คํจ ์ฌ๋ถ๋ฅผ ์์คํ ์ด๋ ์ค์ผ์ค๋ฌ์ ์ ํํ ์๋ฆฌ๊ธฐ ์ํด ๊ผญ ํ์ํ ๊ถ์ฅ ๋ฐฉ์์ด๋, ์์ฃผ ์ ์ ์ฉํ์ ๊ฒ๋๋ค! ใ ใ ์์ธํ์ฌํญ์ ์ ํฌ ๋ ธ์ ๊ฐ์์๋ฃ ์น์ 3 - '[์ค์ต] ์คํ๋ง ๋ฐฐ์น ํ๋ก์ ํธ ์์ฑ(Spring Boot 4.x & Gradle)' ํ์ด์ง์ 4๋ฒ ํญ๋ชฉ์ธ ๋ฉ์ธ ๋ฉ์๋ ๋ณ๊ฒฝ ํํธ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์๋ฉด ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค! ใ ใ ์ค๋๋ ์ข์ ํ๋ฃจ ๋ณด๋ด์๊ณ , ์์ผ๋ก๋ ๋ฐฐ์น๋ฅผ ๊ณต๋ถํ์๋ค๊ฐ ๊ถ๊ธํ ์ ์ด ์๊ธฐ๋ฉด ์ธ์ ๋ ํธํ๊ฒ ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์ธ์!
- 1
- 2
- 59
Q&A
[์ฐธ๊ณ ] Tasklet ์ธํฐํ์ด์ค๋ก ๋จ์ผ ๋ฐฐ์น ์์ ์ฒ๋ฆฌ ์์ ์ ๋์จ ์ฝ๋ ๋๋ฆฌ๋ ๋ฐฉ๋ฒ
์ฟ ์นด์ด๋ ๋ ์๋ ํ์ธ์! JSCODE ์๋ ์ ๋๋ค~์ง์ ์ฝ๋๊น์ง ์์ฑํด์ฃผ์๊ณ ๊ณต์ ํด์ฃผ์๋ ์ด์ ๋๋ฌด ๋ฉ์ง๋๋ค!! ๐ ์์ ์์ ๋ค๋ฃฌ Tasklet์ ๊ฐ๋ ๋ ์ ์ดํดํ๊ณ ์์ฑํ์ ๊ฒ ๊ฐ์์ ๋๋์ฑ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค!๋ค๋ฅธ ์๊ฐ์ ๋ถ๋ค๊ป๋ ํฐ ๋์์ด ๋ ๊ฒ ๊ฐ์์! ๋ค๋ฅธ ์๊ฐ์ ๋ถ๋ค๋ ์ฟ ์นด์ด๋ ๋์ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ์ ์ Step => Tasklet์ผ๋ก ์ด์ด์ง๋ ์คํ๋ง ๋ฐฐ์น์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์ค์ตํด๋ณด์๋ฉด ๊ณต๋ถ์ ํฐ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค! ์ข์ ์๋ฃ ๊ณต์ ํด์ฃผ์ ์ ๋๋ฌด ๊ฐ์ฌํฉ๋๋ค!๊ณต๋ถํ์๋ค ๊ถ๊ธํ ์ ์๊ธฐ์๋ฉด ์ธ์ ๋ ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์ธ์! ใ ใ ํญ์ ์์ํ๊ฒ ์ต๋๋ค~!!
- 2
- 2
- 60
Q&A
batch_db ์์ฑ ๊ด๋ จ ๋ฌธ์ ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์ solarscw85๋! JSCODE ์๋ ์ ๋๋ค.๊ฐ์ ์ ๋ค์ด์ฃผ์๊ณ , ์ค๋ฌด ์ ์ฉ์ ์ํ ์ค์ํ ์ง๋ฌธ๊น์ง ๋จ๊ฒจ์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค.๊ฒฐ๋ก ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด, Spring Batch๊ฐ ์ ๊ณตํ๋ ๋ฉํ ๋ฐ์ดํฐ ํ ์ด๋ธ(์คํค๋ง)๋ค์ ์ค๋ฌด ํ๊ฒฝ์์๋ ๋ฐ๋์ ์์ฑํด์ฃผ์ ์ผ ํฉ๋๋ค!Spring Batch๊ฐ ๋จ์ํ ์ฝ๋๋ฅผ ๋ฐ๋ณต ์คํํ๋ ๊ฒ์ ๋์ด, ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ๋ฐํํ๋ ํต์ฌ์ด ๋ฐ๋ก ์ด ํ ์ด๋ธ๋ค์ ์๊ธฐ ๋๋ฌธ์ธ๋ฐ์~ Spring Batch๋ ์ด ํ ์ด๋ธ๋ค์ ํตํด ๋ค์๊ณผ ๊ฐ์ ์ ๋ณด๋ค์ ๊ด๋ฆฌํ๊ณ ์์ต๋๋ค.์คํ ์ด๋ ฅ ๊ด๋ฆฌ: ๋ฐฐ์น๊ฐ ์ธ์ ์์ํด์ ์ธ์ ๋๋ฌ๋์ง, ์ฑ๊ณตํ๋์ง ์คํจํ๋์ง ๊ธฐ๋ก์ฌ์์(Restart) ์ง์: ๋ฐฐ์น๊ฐ ์คํจํ์ ๋, ์ด๋์๋ถํฐ ๋ค์ ์์ํด์ผ ํ๋์ง ํ๋จ (์ด๊ฒ ๋ฐฐ์น์ ํต์ฌ ๊ธฐ๋ฅ์ ๋๋ค! :))์ค๋ณต ์คํ ๋ฐฉ์ง: ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ก ์ค๋ณตํด์ ์คํ๋๋ ๊ฒ์ ๋ง์๋ง์ฝ ์ด ํ ์ด๋ธ๋ค์ด ์๋ค๋ฉด, Spring Batch๋ ๋ฐฐ์น์ ์ํ๋ฅผ ๊ธฐ์ตํ ์ ์์ด(In-memory ๋ฐฉ์ ์ ์ธ) ์ค๋ฌด์์ ์๊ตฌํ๋ ์์ ์ ์ธ ๋ฐฐ์น ์ด์์ด ๋ถ๊ฐ๋ฅํด์ง๋๋ค..! ๋ง์ํ์ ๋๋ก ์ค๋ฌด์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋์ผ๋ก ํ ์ด๋ธ์ ์์ฑ(ddl-auto ๋ฑ)ํ๋๋ก ๋๋ ๊ฒ์ ๊ถ์ฅ๋์ง ์์ต๋๋ค. ๊ทธ๋์ ๋ณดํต ๋ค์๊ณผ ๊ฐ์ ์ ์ฐจ๋ก ์งํํฉ๋๋ค. SQL ์คํฌ๋ฆฝํธ ํ๋ณด: Spring Batch ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ด๋ถ์๋ ์ด๋ฏธ ๊ฐ DB ๋ฒค๋(Oracle, MySQL, PostgreSQL ๋ฑ)์ ๋ง๋ ํ ์ด๋ธ ์์ฑ SQL ํ์ผ์ด ํฌํจ๋์ด ์์ต๋๋ค. (์ด์ ํ๊ฒฝ์ ๋ง๋ ์ฟผ๋ฆฌ๋ก ์ ํํ์๋ฉด ๋ฉ๋๋ค!)ํ์ผ๋ช ์์: schema-mysql.sql, schema-oracle.sqlIDE์์ ํ์ผ ๊ฒ์(Ctrl+Shift+N ๋ฑ)์ผ๋ก ํด๋น ํ์ผ์ ์ฐพ๊ฑฐ๋, Spring Batch ๊ณต์ GitHub์์๋ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.DBA ์์ฒญ: ์์์ ์ฐพ์ SQL ์คํฌ๋ฆฝํธ ๋ด์ฉ์ DBA๋ถ๊ป ์ ๋ฌ๋ฆฌ๊ณ , ๋ฐฐ์น ํ๋ ์์ํฌ ๊ตฌ๋์ ์ํ ํ์ ๋ฉํ ํ ์ด๋ธ ์์ฑ์ ์์ฒญ ํ์๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค!์ค์ ๋ณ๊ฒฝ: ๊ทธ๋ฆฌ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ค์ (application.yml)์์๋ ์๋ ์์ฑ ์ต์ ์ ๋๊ณ ๋ฐฐํฌํ์๋ฉด ๋ฉ๋๋ค. spring: batch: jdbc: initialize-schema: never # ํน์ validate์ค๋ฌด ์ ์ฉ์ ์๋๊ณ ๊ณ์ ๋งํผ, ์ด ๋ฉํ ํ ์ด๋ธ๋ค์ด ๋ฐฐ์น์ '๋ธ๋๋ฐ์ค' ์ญํ ์ ํด์ค๋ค๊ณ ์๊ฐํ์๋ฉด ์ดํด๊ฐ ํธํ์ค ๊ฑฐ์์.๋์์ด ๋์ จ๊ธธ ๋ฐ๋ผ๋ฉฐ, ์ค๋ฌด์์๋ ์ฑ๊ณต์ ์ผ๋ก ์ ์ฉํ์๊ธธ ์์ํ๊ฒ ์ต๋๋ค! ๋ ๊ถ๊ธํ ์ ์์ผ์๋ฉด ์ธ์ ๋ ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์ธ์. :)
- 1
- 1
- 93




