๋ฐ์ํ ์ ์ฒด ๊ธ421 [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. JUnit5 assertThat vs assertAll vs assertSoftly ๐ JUnit5 assertThat vs assertAll vs assertSoftly ํ์ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ ๋ assertThat ํน์ assertAll ๋ด๋ถ์ assertThat์ ์์ฑํ์๋๋ฐ์, ์ด๋ฒ์ SoftAssertions์ assertSoftly๋ผ๋ ๊ฒ์ฆ ๋ฉ์๋๋ฅผ ์๊ฒ๋์ด ๊ฐ๋ตํ ์ ๋ฆฌํด๋ณด๊ณ ์ ํฉ๋๋ค. ๐ โ๏ธ ํ ์คํธ ์ฝ๋ import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.SoftAssertions.assertSoftly; import static org.junit.jupiter.api.Assertions.ass.. 2022. 9. 17. Git Sqaush๋ก ์ฌ๋ฌ ๊ฐ์ Commit logs ํฉ์น๊ธฐ(Git Rebase) ๐ Git Sqaush๋ก ์ฌ๋ฌ ๊ฐ์ Commit logs ํฉ์น๊ธฐ(Git Rebase) ์๋ ํ์ธ์, ์ด๋ฒ ํฌ์คํ ์์๋ ์ฌ๋ฌ ์ปค๋ฐ๋ค์ ํ๋๋ก ๋ฌถ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ณดํต git์ ์ฌ์ฉํ๋ค๋ณด๋ฉด ๋ถํ์ํ๊ฒ ์ปค๋ฐ์ ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. (์๋ฅผ ๋ค๋ฉด.. ๊ฐ๋ฐ ์๋ฒ์์ ํ ์คํธ๋ฅผ ์ํด ์ฟผ๋ฆฌ๋ ๋ฐ์ดํฐ ์กฐ์๋ฑ์ ๋ถํ์ํ ์์๊ฐ ์๊ฒ ์ต๋๋ค.) ๋ฌดํผ, ์ด๋ฌํ ํ ์คํธ๋ฅผ ์งํํ๋ ค๋ฉด ํ ์คํธ commit - ๋กค๋ฐฑ commit์ผ๋ก ์ต์ 2๋ฒ ์ด์ ๋ถํ์ํ ์ปค๋ฐ์ ์งํํ๊ฒ ๋ฉ๋๋ค. ์ด ๋, Git Squash๋ฅผ ํตํด ๋ถํ์ํ ์ปค๋ฐ ๋ก๊ทธ๋ฅผ ํ๋๋ก ๋ฌถ์ ์ ์์ต๋๋ค. ๋ํ Squash ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํด Git Rebase๋ฅผ ์ฌ์ฉํด์ผ ํ๋๋ฐ์, ์ด๋ฌํ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ์ด๋ ฅ์ ๋ณด๋ค ๊น๋ํ๊ฒ ์ ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด.. 2022. 9. 15. Github ๋ ํฌ์งํ ๋ฆฌ ์ปค๋ฐ ์ด๋ ฅ ์ ์งํ ์ฑ ๋ค๋ฅธ ๋ ํฌ์งํ ๋ฆฌ์ ๋ณต์ ํ๊ธฐ ๐ Github ๋ ํฌ์งํ ๋ฆฌ ์ปค๋ฐ ์ด๋ ฅ ๋ณด๊ดํ ์ฑ ๋ณต์ ํ๊ธฐ ๊ธฐ์กด ๋ ํฌ์งํ ๋ฆฌ ๋ด์ฉ์ ์๋ก์ด ๋ ํฌ์งํ ๋ฆฌ์ ์ด๋ ฅ์ ๊ทธ๋๋ก ์ ์งํ๋ฉด์ ๋ณต์ ๋ฅผ ํด์ผ ํ ๋๊ฐ ์๋๋ฐ์, ์ด ๋ ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด ๊ธฐ์กด ์ด๋ ฅ์ ์ ์งํ ์ฑ ๋ ํฌ์งํ ๋ฆฌ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํฉ๋๋ค. Design-Pattern-Study ํด๋๊ฐ ๊ธฐ์กด์ ์กด์ฌํ๋ ๋ ํฌ์งํ ๋ฆฌ์ด๊ณ , to ํด๋๊ฐ ์ด๋ํ ๋ ํฌ์งํ ๋ฆฌ์ ๋๋ค. ์ฆ, ๊ธฐ์กด Design-Pattern-Study ๋ ํฌ์งํ ๋ฆฌ์ ์ด๋ ฅ์ ๊ทธ๋๋ก ๋ณด๊ดํ ์ฑ to ๋ ํฌ์งํ ๋ฆฌ๋ก ์ฎ๊ฒจ๋ณด๊ฒ ์ต๋๋ค. ๐ฅ ์ ์ฒด ๊ณผ์ ์ ๋ช ๋ น์ด๋ก ๊ฐ๋จํ ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. // to ํด๋๋ก ์ด๋ cd to // main(master) ๋ธ๋์น๋ก ๋ณ๊ฒฝ git checkout main(master) // ๊ธฐ์กด ๋ ํฌ์งํ ๋ฆฌ url ์ถ๊ฐ : cloneํ ๋ ๋ณต์ฌ.. 2022. 9. 9. ์ด์ 1 ยทยทยท 4 5 6 7 8 9 10 ยทยทยท 43 ๋ค์ ๋ฐ์ํ