๋ฐ์ํ IT Blog404 Spring Batch (5) Step, StepExecution ๐ Step, StepExecution ์ง๋ ์๊ฐ์๋ Job, JobInstance, JobParameter, JobExecution์ ๊ฐ๋ ์ ๋ํด ์ดํด๋ณด์์ต๋๋ค. ์ด๋ฒ ์๊ฐ์๋ Job์ ๊ตฌ์ฑํ๋ ์์ ์ ๋จ์์ธ Step, StepExecution ๊ฐ์ฒด์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. (์์ ์ฝ๋๋ GitHub์์ ํ์ธํ ์ ์์ต๋๋ค. ๐) ๐ ํด๋น ํฌ์คํ ์ ๋ชฉํ Spring Batch Step Spring Batch StepExecution ๐ Step ๊ธฐ๋ณธ ๊ฐ๋ Step์ ๋ ๋ฆฝ์ ์ด๊ณ ์์ฐจ์ ์ธ Batch Job์ ์บก์ํํ๋ ๋๋ฉ์ธ ๊ฐ์ฒด Step์๋ ์ค์ Batch ์ฒ๋ฆฌ๋ฅผ ์งํํ๋๋ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ค์ ํฌํจํ๊ณ ์์ Step์ ๊ฐ๋ฐ์๊ฐ ์ํ๋ ๋งํผ ๊ฐ๋จํ๊ฑฐ๋ ๋ณต์กํ ์ ์์ ๋ชจ๋ Job์ ํ๋ ์ด์์ Step์ผ๋ก.. 2022. 11. 3. Spring Batch (4) Job, JobInstance, JobParameters, JobExecution ๐ Job, JobInstance, JobParameters, JobExecution ์ง๋ ์๊ฐ์๋ Spring Batch์ Meta Data Schema์ ๋ํด ์ดํด๋ณด์์ต๋๋ค. ์ด๋ฒ ์๊ฐ์๋ Job์ ์ฌ๋ฌ ๋๋ฉ์ธ ๊ฐ์ฒด์ธ JobInstance, JobParameters, JobExecution ๊ฐ์ฒด์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. (์์ ์ฝ๋๋ GitHub์์ ํ์ธํ ์ ์์ต๋๋ค. ๐) ๐ ํด๋น ํฌ์คํ ์ ๋ชฉํ Spring Batch Job Spring Batch JobInstance Spring Batch JobParameters Spring Batch JobExecution ๐ Job ๊ธฐ๋ณธ ๊ฐ๋ ๋ฐฐ์น ๊ณ์ธต ๊ตฌ์กฐ์์ ์ต์์์ ๊ฐ๋ ์ผ๋ก ์ ์ฒด ๋ฐฐ์น ํ๋ก์ธ์ค๋ฅผ ์บก์ํํ ์ํฐํฐ Job Configuration์ ํตํด ์.. 2022. 11. 1. Spring Batch (3) DB ์คํค๋ง ๐ ํด๋น ํฌ์คํ ์ ๋ชฉํ Spring Batch DB ์คํค๋ง ๋ถ์ ๐ Spring Batch DB ์คํค๋ง ์ง๋ ์๊ฐ์๋ Spring Batch์ ๊ฐ์ ๋ฐ ํ๋ก์ ํธ ๊ตฌ์ฑ, ์ธํ ๋ฐ ๊ฐ๋จํ Job ์คํ์ ๋ํด ์ดํด๋ณด์์ต๋๋ค. ์ด๋ฒ ์๊ฐ์๋ Spring Batch์ Meta Data Schema์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. Meta Data Schema ์คํ๋ง ๋ฐฐ์น์ ์คํ ๋ฐ ๊ด๋ฆฌ๋ฅผ ์ํ ๋ชฉ์ ์ผ๋ก ์ฌ๋ฌ ๋๋ฉ์ธ๋ค(Job, Step, JobParameters ๋ฑ)์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅ, ์ ๋ฐ์ดํธ, ์กฐํ ๋ฑ์ ์์ ์ ํ ์ ์๋ ์คํค๋ง ์ ๊ณต ๊ณผ๊ฑฐ ๋ฐ ํ์ฌ์ Batch ์คํ์ ๋ํ ์ ๋ณด(์ฑ๊ณต, ์คํจ ์ฌ๋ถ)๋ฅผ ๊ด๋ฆฌํจ์ผ๋ก์ ๋ฐฐ์น์ด์ ๋ฐ ์ฅ์ ์ ๊ด๋ จ๋ ๋์ฒ ๊ฐ๋ฅ DB์ ์ฐ๋ํ ๊ฒฝ์ฐ ํ์์ ์ผ๋ก ๋ฉํ ํ ์ด๋ธ์ด ์์ฑ๋์ด์ผ ํจ DB ์คํค.. 2022. 10. 30. [Java DeepDive] - List (ArrayList) ๐ List (ArrayList) ์๋ ํ์ธ์, ์ด๋ฒ ์๊ฐ์๋ Java์ Collection Framework ์ค ํ๋์ธ List์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. List ์ธํฐํ์ด์ค๋ Collection ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ๊ณ ์์ต๋๋ค. Collection ์ธํฐํ์ด์ค๋ ๋ฐ์ดํฐ์ ์ ์ฅ, ์ญ์ , ์ฝ์ ๊ธฐํ ๋ฑ๋ฑ์ ๋ก์ง์ ๋ณด๋ค ํธํ๊ฒ API๋ก ์์ฑํ์ฌ ๊ฐ๋ฐ์๊ฐ ๋ณด๋ค ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ๋ ๋์์ฃผ๋ ์๋ฐ์ ์ปฌ๋ ์ ํ๋ ์์ํฌ์ ๋๋ค. ์ ์ฌ์ง๊ณผ ๊ฐ์ด Collection์ collection hierarchy์ ์ต์์ ์ธํฐํ์ด์ค์ด๋ฉฐ ํ์ ์ธํฐํ์ด์ค์ธ List, Queue, Set ๋ฑ์ด ์ด๋ฅผ ์์๋ฐ๊ณ ์๊ณ , List ์ธํฐํ์ด์ค๋ ArrayList, Vector, LinkedList์ ๊ตฌํ์ฒด๋ค์ด ์กด์ฌํฉ๋๋ค. ์ ๋ List ์ธํฐํ.. 2022. 10. 29. Spring Batch (2) ํ๋ก์ ํธ ๊ตฌ์ฑ ๋ฐ ์์กด์ฑ ์ค์ , Hello World ๐ ํด๋น ํฌ์คํ ์ ๋ชฉํ Spring Batch ํ๋ก์ ํธ ์ค์ Spring Batch ์ค์ ๋ด๋ถ Spring Batch Hello World ๐ Spring Batch ํ๋ก์ ํธ ๊ตฌ์ฑ ํ๋ก์ ํธ ๊ตฌ์ฑ์ IntelliJ, Java 11, Gradle, MySQL(Docker), H2, Spring Boot, Batch ๋ฑ์ ์ฌ์ฉํ ์์ ์ ๋๋ค. (ํ๋ก์ ํธ ์ค์ ๊ด๋ จ ์ค๋ช ์ ์์ผ๋ GitHub๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.) ๐ Spring Batch ์์กด์ฑ ์ค์ ์คํ๋ง ๋ฐฐ์น๋ฅผ ์๋์ํค๊ธฐ ์ํด ๋ฉ์ธ ํด๋์ค์ @EnableBatchProcessing ์ด๋ ธํ ์ด์ ์ ์ ์ธํด์ผ ํฉ๋๋ค. import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;.. 2022. 10. 29. Spring Batch (1) ๊ฐ์ ํ์ฌ์์ Spring Batch ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ค๋ง, ๋์ฉ๋์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ์๋, ๋จ์ 1ํ์ฑ ์๋น์ค๋ฅผ ์คํํ๊ธฐ ์ํด ๋ ๊ฑฐ์ ํ๋ก์ ํธ๋ฅผ Spring Batch ํ๋ก์ ํธ๋ก ์กฐ๊ธ์ฉ ์ด๊ดํ๊ณ ์๋๋ฐ์, ๊ธฐ์กด์ ์์ฑ๋ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ํ์ํ ๋ถ๋ถ๋ง ํ์ ํ ํ ์ฝ๋๋ฅผ ์์ฑํ๋ค๋ณด๋ Spring Batch์ ์ฌ์์ด๋ ๊ฐ๋ , ์ ์ฉํ ๊ธฐ๋ฅ(skip, retry, chunk, listener ๋ฑ๋ฑ)๋ค์ ๋ํด ์์ธํ ์์ง ๋ชปํ์ฑ ๊ฐ๋ฐํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐ๋ผ์ Spring Batch ํ๋ก์ ํธ์ ๋ฐฐ๊ฒฝ๋ถํฐ ๊ฐ๋ , ์ฉ์ด, ๋ค์ํ ๊ธฐ๋ฅ ๋ฑ๋ฑ์ ๋ํด ์ ๋ฆฌํ์ฌ ํ์ตํ๊ณ ์ ํฉ๋๋ค. ํด๋น ํฌ์คํ ์ ๋ชฉํ Spring Batch ์๊ฐ Spring Batch ๋ฐฐ๊ฒฝ Spring Batch ์ํคํ ์ฒ Spring Batch ๊ตฌ.. 2022. 10. 28. [Java DeepDive] - String (2) ๋ด์ฅ ํจ์ ๐ String (2) - ๋ด์ฅ ํจ์ ์๋ ํ์ธ์, ์ง๋ ์๊ฐ์๋ String - ๋ฌธ์์ด ์์ฑ ๊ด๋ จํด์ ์ดํด๋ณด์๋๋ฐ์, ์ด๋ฒ์๋ String ํด๋์ค์ ์กด์ฌํ๋ ๋ฉ์๋๋ค ์ค ์ผ๋ถ ๋ฉ์๋๋ค์ ๋ํด ๋ด๋ถ ์ฝ๋๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. (์์ ์ฝ๋๋ ๊นํ๋ธ์์ ํ์ธํ์ค ์ ์์ผ๋ฉฐ, ๋ฒ์ ์ Java 11์ ์ฌ์ฉํ์ต๋๋ค.) String ํด๋์ค ๋ด์ ๋ฉ์๋๋ค์ ์ ์ฌ์ง์ฒ๋ผ ๊ต์ฅํ ๋ง์ด ์กด์ฌํ๋๋ฐ์, ๊ฐ์ธ์ ์ผ๋ก ์์ฃผ ์ฌ์ฉํ๋ ๋ฉ์๋๋ค์ ๋ํด ์ ๋ฆฌํด ๋ณด๊ฒ ์ต๋๋ค. · String.length() @Stable private final byte[] value; ... static final boolean COMPACT_STRINGS; static { COMPACT_STRINGS = true; } ... public int lengt.. 2022. 10. 23. [Java DeepDive] - String (1) ๋ฌธ์์ด ์์ฑ ๐ String (1) - ๋ฌธ์์ด ์์ฑ ์๋ฐ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ํ์ ์ค ํ๋์ธ ๋ฌธ์์ด(String)์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. (์์ ์ฝ๋๋ ๊นํ๋ธ์์ ํ์ธํ์ค ์ ์์ผ๋ฉฐ, ๋ฒ์ ์ Java 11์ ์ฌ์ฉํ์ต๋๋ค.) String ๋ฌธ์์ด ์์ฑ - new, literal ๋ณดํต ์๋ฐ์์ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋๋ new ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์คํด์ค๋ฅผ ์์ฑํ์ง๋ง, String์ ๊ฒฝ์ฐ ๋ฆฌํฐ๋ด(literal)์ ํตํด ๊ฐ์ ๋ฐ๋ก ํ ๋นํ ์ ์์ต๋๋ค. public static void main(String[] args) { final String str1 = "JuHyun"; // [1] final String str2 = "JuHyun"; // [2] final String str3 = new String("JuHyun"); .. 2022. 10. 10. Spring + MyBatis์์ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ์ ๊ฐ์ฒด๊ฐ ๋งคํ์ด ๋๋ ๊ณผ์ ๐งท Spring + MyBatis์์ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ์ ๊ฐ์ฒด๊ฐ ๋งคํ์ด ๋๋ ๊ณผ์ ์คํ๋ง์์ ๋ง์ด๋ฐํฐ์ค๋ฅผ ์ฌ์ฉํ ๋, Select ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ์ ๊ฐ์ฒด(Dto)๊ฐ ์ด๋ ํ ์์ ์ ํตํด ๋งคํ์ด ๋๋์ง ์ ํํ๊ฒ ํ์ ํ๊ณ ๊ณต์ ํ๊ธฐ ์ํด ๋งคํ ๊ณผ์ ์ ๋ํด ์ ๋ฆฌํด ๋ณด์์ต๋๋ค. (๋น์ฐํ ํ๋ฆฐ ๋ด์ฉ์ด ์กด์ฌํ ์ ์์ผ๋ ํผ๋๋ฐฑ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ๐) ๐ ๊ฐ์ Spring๊ณผ MyBatis์์ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์ ๊ฐ์ฒด์ ๋งคํ์ด ์ด๋ฃจ์ด์ง๋ ๊ณผ์ ์ ๋ํด ์ดํด๋ด ๋๋ค. ์ด์ ๊ด๋ จํ์ฌ ์ด๋ ํ ๋ฐฉ์์ผ๋ก ๋งคํ์ ์งํํ๋์ง, ์ข์ ๋ฐฉ๋ฒ์ด ๋ฌด์์ธ์ง ๋ฑ์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๐ ๊ฒฐ๋ก ํฌ์คํ ์ด ๊ฝค๋ ์ฅ๋ฌธ์ด๊ธฐ์,, ๋งคํ ๊ณผ์ ์ ๋ํด ๊ฒฐ๋ก ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๊ธฐ๋ณธ ์์ฑ์(NoArgs)๋ง ์กด์ฌํ ๊ฒฝ์ฐ, ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์ ๊ฐ์ฒด์ ๋งคํ์ด ์ ์์ ์ผ๋ก ์ง.. 2022. 10. 3. ์ธํ์ฝ 2022 - (๋ ๊ฑฐ์ ์์คํ ) ๊ฐํธ์ ๊ธฐ์ ๐ (๋ ๊ฑฐ์ ์์คํ ) ๊ฐํธ์ ๊ธฐ์ ๋ฐฐ๋ฌ ํ๋ซํผ์์ ๊ฒช์ N๋ฒ์ ๊ฐํธ ๊ฒฝํ๊ธฐ, ์ฐ์ํํ์ ๋ค ๊ถ์ฉ๊ทผ๋ ์ต๊ทผ ํ์ฌ ์ ๋ฌด๋ํ ๋ ๊ฑฐ์ ๋ถ๋ถ๋ค์ ๊ฐ์ ํ๊ณ ํจ์จ์ ์ผ๋ก ์ด์ํ๋ ์์ ์ ์งํํ๊ณ ์๊ธฐ์ ์ธํ์ฝ์์ ๊ฐ์ฅ ๊ด์ฌ์ด ๊ฐ ์น์ ์ค ํ๋์ธ๋ฐ์, ๊ณต๊ฐ๊ฐ๋ ๋ถ๋ถ๋ ๊ต์ฅํ ๋ง๊ณ ๋ด์ฉ์ด ๋งค์ฐ ์ ์ตํ๊ธฐ์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํฉ๋๋ค. (ํน์ ์ด๋ฏธ์ง์ ๊ด๋ จํ์ฌ ๋ฌธ์ ๊ฐ ๋๋ ๋ถ๋ถ์ด ์๋ค๋ฉด ์ญ์ ํ๊ฒ ์ต๋๋ค.) ์ ์ฒด ์น์ ์ ์๋ ๋งํฌ์์ ํ์ธํ ์ ์์ต๋๋ค. ๐ https://www.inflearn.com/course/infcon2022/dashboard [๋ฌด๋ฃ] ์ธํ์ฝ 2022 ๋ค์๋ณด๊ธฐ - ์ธํ๋ฐ | ๊ฐ์ ์ธํ๋ฐ์ ์ฒซ ์คํ๋ผ์ธ ์ฝํผ๋ฐ์ค, ์ธํ์ฝ 2022์์ ์งํ๋ ์คํ๋ ๋ฐ ๋ฐํ ์ธ์ ์ ์์์ผ๋ก ๋ค์ ๋ณด์ค ์ ์์ต๋๋ค., - ๊ฐ์ ์๊ฐ |.. 2022. 9. 24. ์ด์ 1 2 3 4 5 6 7 8 ยทยทยท 41 ๋ค์ ๋ฐ์ํ