์๋ฐ21 ํ์ด์ฌ vs ์๋ฐ ์ฐจ์ด์ โญ ๊ธฐ๋ณธ์ ์ธ ์ฐจ์ด์ ํญ๋ชฉํ์ด์ฌ์๋ฐ์ธ์ด ์ฒ ํ๊ฐ๊ฒฐํจ, ๊ฐ๋ ์ฑ ("There should be one obvious way to do it")์๊ฒฉํ ๋ช ์์ฑ, ๊ฐ์ฒด์งํฅ ์ค์ฌํ์ ์์คํ ๋์ ํ์ดํ (๋ฐํ์ ํ์ ๊ฒฐ์ )์ ์ ํ์ดํ (์ปดํ์ผ ์ ํ์ ๊ฒฐ์ )์คํ ๋ฐฉ์์ธํฐํ๋ฆฌํฐ ๋ฐฉ์ (CPython, PVM)JVM ์์์ ๋ฐ์ดํธ์ฝ๋ ์คํ์ฝ๋ ์์ฑ๋์ฝ๋ ๊ฐ๊ฒฐํจ, ๋น ๋ฅธ ๊ฐ๋ฐ์ฝ๋ ์ฅํฉํ์ง๋ง ๋ช ํํ ๊ตฌ์กฐํ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์๋ ๊ฐ๋น์ง ์ปฌ๋ ์ + ๋ ํผ๋ฐ์ค ์นด์ดํ JVM ๊ธฐ๋ฐ ๊ฐ๋น์ง ์ปฌ๋ ์ ๋ฉํฐ์ค๋ ๋ฉGIL(Global Interpreter Lock) ์กด์ฌ, ๋ณ๋ ฌ์ ์ ํ๋ฉํฐ์ค๋ ๋ฉ ์ต์ ํ (JVM ์์ค)ํ๋ซํผ ์์กด์ฑ์ธํฐํ๋ฆฌํฐ ์ค์น ํ์JVM์ด ์ค์น๋ ํ๊ฒฝ์ด๋ฉด ์ด๋์๋ ์คํ์ฃผ ์ฌ์ฉ ๋ถ์ผ์คํฌ๋ฆฝํธ, ์น, ๋ฐ์ดํฐ ๋ถ์, AI์ํฐํ๋ผ์ด์ฆ ์น, ์๋๋ก์ด๋.. 2025. 5. 4. ์๋ฐ ์ฐ์ฐ์ ์ฐ์ ์์ ์ฐ์ ์์ ๋์ ์ -> ๋ฎ์ ์ ์ ๋ฆฌ ์๊ธฐ ๋ฌธ์ฅ (์ถ์ฝ): ๊ด๋จ์ฐ์๋น๋ ผ์ผ๋ ๊ดํธ → ๋จํญ → ์ฐ์ → ์ํํธ → ๋น๊ต → ๋ ผ๋ฆฌ → ์ผํญ → ๋์ โญ ์ฐ์ฐ์ ์ฐ์ ์์ ๊ณ์ฐ ์์ ๋ฌธ์ : (a + b) * c 30 && true ? 100 : 200;1. ๊ดํธ: (a + b) → 152. ์ฐ์ : step1 * c → 303. ์ํํธ: step2 30 → true5. ๋ ผ๋ฆฌ: step4 && true → true6. ์ผํญ: step5 ? 100 : 200 → 1007. ๋์ : result = 100Process finished with exit code 0 2025. 5. 4. [JAVA์ ์ ์] Chapter08 - 09 ๊ต์ฌ ๋ชฉ์ฐจChapter08. ์์ธ์ฒ๋ฆฌ Chapter09. java.lang ํจํค์ง์ ์ ์ฉํ ํด๋์ค Chapter08. ์์ธ์ฒ๋ฆฌ (Exception Handling) 1. ์์ธ๋? 1-1. ์์ธ (Exception)ํ๋ก๊ทธ๋จ ์ฝ๋์ ์ํด์ ์์ต๋ ์ ์๋ ๋ค์ ๋ฏธ์ฝํ ์ค๋ฅ ์๋ฌ(error) : ํ๋ก๊ทธ๋จ ์ฝ๋์ ์ํด์ ์์ต๋ ์ ์๋ ์ฌ๊ฐํ ์ค๋ฅ ์๋ฌ์ ์ข ๋ฅ ์ปดํ์ผ ์๋ฌ : ์ปดํ์ผ ์ ๋ฐ์ํ๋ ์๋ฌ๋ฐํ์ ์๋ฌ : ์คํ ์ ๋ฐ์ํ๋ ์๋ฌ๋ ผ๋ฆฌ์ ์๋ฌ : ์คํ์ ๋์ง๋ง ์๋์ ๋ค๋ฅด๊ฒ ๋์ํ๋ ๊ฒ์์ธ ํด๋์ค์ ๊ณ์ธต๊ตฌ์กฐexception ํด๋์ค๋ค : ์ฌ์ฉ์์ ์ค์์ ๊ฐ์ ์ธ์ ์ธ ์์ธ์ ์ํด ๋ฐ์ํ๋ ์์ธ runtimeexception ํด๋์ค๋ค : ํ๋ก๊ทธ๋๋จธ์ ์ค์๋ก ๋ฐ์ํ๋ ์์ธ โ1-2. ์์ธ์ฒ๋ฆฌ์ ํ์์ฑํ๋ก๊ทธ๋จ ์คํ.. 2024. 9. 8. equals, hashcode๋ฅผ ์ฌ์ ์ ํ๋ ์ด์ equals() ๋ฉ์๋ ํด๋น ๋ฉ์๋๋ ๋์1 ๊ฐ์ฒด์ ๋์2 ๊ฐ์ฒด์ ๋๋ฑ์ฑ๊ณผ ๋์ผ์ฑ์ ๋น๊ตํฉ๋๋ค. โป ๋๋ฑ์ฑ ๋น๊ต: ๊ฐ์ฒด ๋ด๋ถ์ ๊ฐ๋ง ๋น๊ต โป ๋์ผ์ฑ ๋น๊ต: ๊ฐ์ฒด์ ์ฐธ์กฐ๊ฐ(์ฃผ์๊ฐ)๊ณผ ๊ฐ์ฒด ๋ด๋ถ์ ๊ฐ์ด ๋ชจ๋ ์ผ์นํ๋์ง ๋น๊ต hashcode() ๋ฉ์๋ ํด๋น ๋ฉ์๋๋ ์คํ ํ ๋ฆฌํด๋ ๋์1 ๊ฐ์ฒด์ ๋์2 ๊ฐ์ฒด์ ํด์์ฝ๋๊ฐ์ด ์ผ์นํ๋์ง ๋น๊ตํฉ๋๋ค. โป ํด์์ฝ๋: ๊ฐ์ฒด๋ฅผ ์๋ณํ๋ ํ๋์ ์ ์๊ฐ โป ์ฃผ์๊ฐ: ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ฒด๊ฐ ์ ์ฅ๋ ์์น Object์ hashcode() ๋ฉ์๋๋ ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ง๋ฅผ ์ด์ฉํด์ ํด์์ฝ๋๋ฅผ ๋ง๋ค์ด ๋ฆฌํดํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด๋ง๋ค ๋ค๋ฅธ๊ฐ์ ๊ฐ์ง๋๋ค. ์ ์์๋ฅผ ๋ณด๋ฉด ํด์์ฝ๋๋ ๊ฐ์ง๋ง K1๊ณผ K2์ ์ฃผ์๋ ์๋ก ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ equals() ๋ฉ์๋๋ false๋ฅผ ๋ฐํํฉ๋๋ค. ๊ฐ ๋์ผ์ฑ ์ฌ๋ถ has.. 2023. 10. 16. ์ธํ ๋ฆฌ์ ์ด ๊ฐ์๊ธฐ ํด๋์ค ์ธ์ ์๋๋ ๊ฒฝ์ฐ ์ธํ ๋ฆฌ์ ์ด์์ java ์ฝ๋ ์์ฑ ์ ๊ฐ์๊ธฐ class ํ์ผ์ด ์ธ์๋์ง ์์ ์ค๋ฅ๊ฐ ๋จ๋ ๊ฒฝ์ฐ 1. .idea ๋๋ ํ ๋ฆฌ ์์น๊ฐ ์๋ชป๋ ๊ฒฝ์ฐ .idea ํด๋๋ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ ์ต์์์ ์์น์ํจ๋ค. 2. ๋๋ ํ ๋ฆฌ๊ฐ source root๋ก ์ค์ ๋์ด ์์ง ์์ ๊ฒฝ์ฐ ํ๋ก์ ํธ ์ฐํด๋ฆญ > Mark Directory as > Sources Root ํด๋ฆญ 2023. 7. 22. TOMCAT java.lang.ClassNotFoundException: sun.misc.GC ์๋ฌ ๊ฒ์ํ์ ๊ตฌํํ๋ค๊ฐ ๋ค์๊ณผ ๊ฐ์ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ ํ๊ฒ ๋์์ต๋๋ค. ํด๊ฒฐ๋ฐฉ๋ฒ: ์๋ฐ์ ํฐ์บฃ์ ๋ฒ์ ์ด ํธํ๋์ง ์์ ์๊ธฐ๋ ์ค๋ฅ๋ก, ์๋ก ํธํ๋๋ ๋ฒ์ ์ผ๋ก ๋์ฌ์ฃผ๊ฑฐ๋ ๋ฎ์ถฐ์ฃผ๋ฉด ๋ฉ๋๋ค. ์ ๊ฒฝ์ฐ ์๋ฐ๋ 11๋ฒ์ ํฐ์บฃ์ 8.5๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์์ต๋๋ค. https://tomcat.apache.org/download-10.cgi#10.1.10 Apache Tomcat® - Apache Tomcat 10 Software Downloads Welcome to the Apache Tomcat® 10.x software download page. This page provides download links for obtaining the latest version of Tomcat 10.1.x software, as w.. 2023. 6. 24. ๋ฉ์ด๋ธ ํ๋ก์ ํธ ๋ง๋ค๊ธฐ ๋ฉ์ด๋ธ ํ๋ก์ ํธ ์์ฑ Project Explorer > New > Dynamic Web Project ์์ฑ ํ๋ก์ ํธ ์ฐํด๋ฆญ > Configuration > Convert to Maven Project ํ๋ก์ ํธ ์ฐํด๋ฆญ > Properties > java build path > java versionํ์ธ ๋ฉ์ด๋ธ ์ปจํธ๋กค๋ฌ๋ก jsp ํธ์ถ ํ ์คํธ CONTROLLER package controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class BoardController { @RequestMapping(value.. 2023. 5. 13. ์ดํด๋ฆฝ์ค ์ด๊ธฐ ์ธํ - ์๋ฐ jre ์ค์ ์ดํด๋ฆฝ์ค ์ด๊ธฐ ์ธํ - ํ ๋ง, encoding, ํฐ์บฃ, ์ค๋ผํด 1. ํ ๋ง ์ค์ window > preferences > general > appearance > theme > dark 2. encoding ์ค์ 2-1. Window -> Preferences -> General -> Content Types - Java Class File -> Default encoding์ UTF-8 ์ ๋ ฅ 2-2. Window -> Preferences -> General -> Editors -> howtomakecode.tistory.com ์ดํด๋ฆฝ์ค ์ด๊ธฐ ์ธํ - ์๋ฐ jre ์ค์ 1. Installed JREs windows > Preferences > Java > Installed JREs 2. JDK ์ค์น ๊ฒฝ๋ก.. 2023. 5. 3. ์ฐ์ฐ์ OPERATOR ์ฐ์ฐ์๋? ์ฐ์ฐ์๋ ํน์ ํ ์ฐ์ฐ์ ์ํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ธฐํธ ์ฌ์น์ฐ์ฐ์ ์ฆ๊ฐ์ฐ์ฐ์ ๊ด๊ณ์ฐ์ฐ์ ๋ ผ๋ฆฌ์ฐ์ฐ์ ์ฐ์ฐ์ ์ฐ์ ์์ํ ์ฐ์ฐ์๋ณ ์ข ๋ฅ ๋ฐ ์ฌ์ฉ ์์ ์ฌ์น์ฐ์ฐ์ (+, -, *, /, %) ublic static void main(String[] args) { //์ ์ํ ๋ณ์ 2๊ฐ ์ ์ธ, ๋ณ์๋ช ์ ์์ ๋กญ๊ฒ //์ด๊ธฐํ๋ ๊ฐ๊ฐ 5, 3์ผ๋ก ๋ณ์๋ฅผ ์ด๊ธฐํ int n1 = 5, n2 = 3; //์ ์์ ์ ์๋ฅผ ๊ณ์ฐํ๋ฉด ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ์ ์๊ฐ ๋์ด System.out.println(n1 + n2); //8 System.out.println(n1 - n2); //2 System.out.println(n1 * n2); //15 System.out.println(n1 / n2); //1 System.out.println(.. 2023. 4. 25. MAVEN MAVEN์ด๋? Maven์ ์๋ฐ์ฉ ํ๋ก์ ํธ ๊ด๋ฆฌ๋ฅผ ์ํ ๋๊ตฌ -- apache software foundation์์ ๊ฐ๋ฐํ java ๊ธฐ๋ฐ ํ๋ก์ ํธ ๊ด๋ฆฌ -- ํ๋ก์ ํธ์ ์ปดํ์ผ, ๋น๋, ์ํ ๋ฐ ํ ์คํธ -- ์๋ฒ ์ธก deploy ์์๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ด๋ฆฌ MAVEN ํ๋ก์ ํธ ์์ฑ maven, maven archetype ์ค์ org.apache.maven.archetypes:maven-archetype-webapp groupId : ํ์ฌ ์ด๋ฆ artifactId : ํ๋ก์ ํธ ์ด๋ฆ 1. pom.xml ์๋ ์์ฑ 2. dependency ์ถ๊ฐ javax.servlet javax.servlet-api 4.0.1 3. ๋ฉ์ธ ํด๋ new - directory - java ์๋ ์์ฑ 4. ํจํค์ง ์์ฑ - ์๋ธ๋ฆฟํด๋์ค.. 2023. 4. 25. ์ดํด๋ฆฝ์ค์ ์๋ฐ/๋ฉ์ด๋ธ ํ๋ก์ ํธ ์ํฌํธํ๊ธฐ ์ดํด๋ฆฝ์ค์ ์๋ฐ ํ๋ก์ ํธ ์ํฌํธํ๊ธฐproject explorer ๋น ๊ณณ์ ์ฐํด๋ฆญ / import / import / general / Archive File browse - ์ํฌํธํ ํ๋ก์ ํธ - ์ฒดํฌ ๋ฐ์ค ํด๋ฆญ - finish์ดํด๋ฆฝ์ค์ ๋ฉ์ด๋ธ ํ๋ก์ ํธ ์ํฌํธํ๊ธฐproject explorer ๋น ๊ณณ์ ์ฐํด๋ฆญ / import / import / maven / existing maven project browse - ์ํฌํธํ ํ๋ก์ ํธ - pom.xml ์ฒดํฌ ๋ฐ์ค ํด๋ฆญ - finish 2023. 4. 25. ์ ์ํ ๋ฐ์ดํฐ ํ์ ๊ณผ ํ๋ณํ ์๋ฐ ์ ์ํ ๋ฐ์ดํฐ ํ์ ํ๋ณํ (Casting) ๋ฐ์ดํฐ ํ๋ณํ์ด๋ ๋ฐ์ดํฐ ํ์ ์ ๋ฐ๊พธ๋ ํ์์ด๋ค. ๋ฐ์ดํฐ ํ๋ณํ์๋ ์๋ ํ๋ณํ๊ณผ ๊ฐ์ ํ๋ณํ์ด ์๋ค. ์๋ํ๋ณํ (DOWN CASTING) ์๋์ผ๋ก ๋ฐ์ดํฐ๊ฐ ํ๋ณํ ๋๋ ๊ฒ ์์ ๊ฐ๋ ์ด ํฐ ๊ฐ๋ ์ผ๋ก ๋ฐ๋๋ ๊ฒฝ์ฐ ์๋์ผ๋ก ํ๋ณํ์ด ์ด๋ฃจ์ด์ง๋ค. EX) ์ ์๋ฅผ ์ค์๋ก ๋ฐ๊ฟ ๋ EX) float ํ์ ์ ๋ฐ์ดํฐ๋ฅผ double์ ์ ์ฅํ ๋ ๊ฐ์ ํ๋ณํ (UP CASTING) ๊ฐ์ ๋ก ๋ฐ์ดํฐ๊ฐ ํ๋ณํ ๋๋ ๊ฒ ํฐ ๊ฐ๋ ์ด ์์ ๊ฐ๋ ์ผ๋ก ๋ฐ๋์ด์ผ ํ ๋ ๊ฐ์ ๋ก ํ๋ณํ์ ํด์ฃผ์ด์ผ ํ๋ค. EX) double์ float๋ int์ ๋ฃ์ ๋ ๊ฐ์ ํ๋ณํ ํ๋ ๋ฐฉ๋ฒ ---> (ํ๋ณํ ํ ๋ณ์ ํ์ ) ๊ฐ ๋๋ ๋ณ์ ์์ ์ฝ๋ public static void main(String.. 2023. 4. 24. ์๋ฐ ๊ธฐ์ ๋ฉด์ ๋๋น ์์ ์ง๋ฌธ 1. ์๋ฐ์ ์ฅ๋จ์ ์๋ฐ์ ์ฅ์ ์ ๊ฐ์๋จธ์ ์ ์ฌ์ฉ์ผ๋ก ์ธํด ์ด์์ฑ์ด ๋์ ์ด๋ค ์ด์์ฒด์ ์๋ ์ข ์๋์ง ์๋ ๊ฒ์ ๋๋ค. ๋จ์ ์ ๋ฐ๋ก ์ปดํ์ผ์ด ๋๋ ๊ฒ์ด ์๋๋ผ jvm์ ๊ฑฐ์ณ์ผ ํ๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ๋ง์ด ๋ฆ๋ค๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ํ๋์จ์ด ๋ฐ๋ฌ๊ณผ jit ์ปดํ์ผ๋ฌ์ ๋ฑ์ฅ์ผ๋ก ์๋์ ๊ฒฉ์ฐจ๊ฐ ์ค์ด๋ค์์ต๋๋ค. 2. ๋ฆฌ์คํธ, ๋งต, ์ ์ ์ฐจ์ด ๋ฆฌ์คํธ์ ์ ์ ์ปฌ๋ ์ ์ ํฌํจ๋์ด ์๊ณ ๋งต์ ๋งต์ ํฌํจ๋์ด์์ต๋๋ค. ๋ฆฌ์คํธ๋ ์ค๋ณต ์ ์ฅ์ ํ์ฉํ๊ณ ์์๊ฐ ์์ต๋๋ค. ์ ์ ์ค๋ณต ์ ์ฅ์ ํ์ฉํ์ง ์๊ณ ์์๊ฐ ์์ต๋๋ค. ๋งต์ ํค๊ฐ์ ์ค๋ณต์ด ํ์ฉ๋์ง ์์ง๋ง ๋ฐธ๋ฅ๊ฐ์ ์ค๋ณต์ด ํ์ฉ๋ฉ๋๋ค. 3. ๋ฆฌ์คํธ, ๋งต, ์ ์ ์ฅ๋จ์ ๋ฆฌ์คํธ๋ ๊ฐ๋ณ์ ์ธ ๋ฐฐ์ด๋ก ๋น์ด์๋ ๋ฐ์ดํฐ๊ฐ ์์ต๋๋ค. ํ์ง๋ง ์ํ๋ ๋ฐ์ดํฐ๊ฐ ๋ค์ชฝ์ ์์นํ๋ ๊ฒฝ์ฐ, ์ํํด์ ์ฐพ๋ ๋ฐฉ์์ด๋ฏ๋ก ๋ค.. 2023. 4. 17. [์๋ฐ ๊ฐ๋ ์ ๋ฆฌ] JAVA STREAM ์คํธ๋ฆผ(STREAM)์ด๋? stream์ iterator์ ๋น์ทํ ์ญํ ์ ํ๋ ๋ฐ๋ณต์ - ๋๋ค์์ผ๋ก ์์ ์ฒ๋ฆฌ ์ฝ๋๋ฅผ ์ ๊ณต - ๋ด๋ถ ๋ฐ๋ณต์๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๋ณ๋ ฌ ์ฒ๋ฆฌ๊ฐ ์ฝ๋ค - ์ค๊ฐ ์ฒ๋ฆฌ์ ์ต์ข ์ฒ๋ฆฌ ์์ ์ ์ํ ITERATOR์ STREAM์ ์ฐจ์ด์ - iterator๋ ์ปฌ๋ ์ ์ ์์๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ๋ถํฐ ์ฒ๋ฆฌํ๋ ๊ฒ๊น์ง ๊ฐ๋ฐ์๊ฐ ์์ฑํด์ผ ํจ - stream์ ๋๋ค์์ผ๋ก ์์ ์ฒ๋ฆฌ ๋ด์ฉ๋ง ์ ๋ฌ, ๋ฐ๋ณต์ ์ปฌ๋ ์ ๋ด๋ถ์์ ์ผ์ด๋๋ค. ์ฝ๋ ์ / ๋ฐฐ์ด /์ซ์ ๋ฒ์ / ํ์ผ / ๋๋ ํ ๋ฆฌ๋ก๋ถํฐ ์คํธ๋ฆผ ์ป๊ธฐ ์ฝ๋ ์ Stream stream = studentList.stream(); stream.forEach(s-> System.out.println(s.getName())); ๋ฐฐ์ด - ๋ฌธ์์ด๋ก ๊ตฌ์ฑ๋ ๋ฐฐ์ด์ผ ๊ฒฝ์ฐ, Stri.. 2023. 4. 11. [์ด๊ฒ์ด ์๋ฐ๋ค] chapter.12 ํ์ธ ๋ฌธ์ 1. ์ค๋ ๋์ ๋ํ ์ค๋ช ์ค ํ๋ฆฐ ๊ฒ์ ๋ฌด์์ ๋๊น? ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฉ์ธ(main) ์ค๋ ๋๊ฐ main()๋ฉ์๋๋ฅผ ์คํ์ํจ๋ค. ์์ ์ค๋ ๋ ํด๋์ค๋ Thread ํด๋์ค๋ฅผ ์์ํด์ ๋ง๋ค ์ ์๋ค. Runnable ๊ฐ์ฒด๋ ์ค๋ ๋๊ฐ ์คํํด์ผ ํ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด๋ผ๊ณ ๋ณผ ์ ์๋ค. ์ค๋ ๋ ์คํ์ ์์ํ๋ ค๋ฉด run()๋ฉ์๋๋ฅผ ํธ์ถํด์ผ ํ๋ค. 2. ๋์์๊ณผ ์์ ์ ์ฌ์ํ๊ธฐ ์ํด ๋ ๊ฐ์ง ์ค๋ ๋๋ฅผ ์คํํ๋ ค๊ณ ํฉ๋๋ค. ๋น์ด ์๋ ๋ถ๋ถ์ ์ ๋นํ ์ฝ๋๋ฅผ ๋ฃ์ด๋ณด์ธ์. package org.chapter12; public class ThreadExample { public static void main(String[] args) { Thread thread1 = new MovieThread(); thread1.sta.. 2023. 3. 31. [TDD] @ParameterizedTest ์ฌ์ฉํ๊ธฐ @ParameterizedTest ํ ๊ฐ์ ๋ฉ์๋์ ๋ํด ์ฌ๋ฌ ๊ฐ์ ํ ์คํธ๋ฅผ ์ํํด์ผ ํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ ์ด๋ ธํ ์ด์ @Test ๋์ @ParameterizedTest ๋ก ์ ๋๋ค. arguments๋ฅผ ํ์ฉํด ํ ์คํธ๋ฅผ ์ฌ๋ฌ ๋ฒ ์ํํ ์ ์๋ค. ์ฌ์น ์ฐ์ฐ ๊ณ์ฐ๊ธฐ ํ ์คํธ ์ฝ๋ ์์ฑ ์์ 1. ์์กด์ฑ ์ถ๊ฐ testImplementation 'org.junit.jupiter:junit-jupiter-params:5.8.2' 2. ENUM ํด๋์ค ์์ฑ package org.example; import java.util.Arrays; public enum ArithmeticOperator { ADDITION("+") { @Override public int arithmeticCalculate(int operand1.. 2023. 3. 29. [TDD] ํ ์คํธ ์ฝ๋ ์์ฑ์ ํ์์ฑ๊ณผ ์์ฑ ๋ฐฉ๋ฒ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ์ด์ ? 1. ๋ฌธ์ํ ์ญํ 2. ์ฝ๋์ ๊ฒฐํจ์ ๋ฐ๊ฒฌํ๊ธฐ ์ํจ 3. ๋ฆฌํฉํ ๋ง ์ ์์ ์ฑ ํ๋ณด 4. ํ ์คํธ ํ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ค ๋ณด๋ฉด ๋ ๋ฎ์ ๊ฒฐํฉ๋๋ฅผ ๊ฐ์ง ์ค๊ณ๋ฅผ ์ป์ ์ ์์ TDD • Test Driven Development (ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ) • ํ๋ก๋์ ์ฝ๋๋ณด๋ค ํ ์คํธ ์ฝ๋๋ฅผ ๋จผ์ ์์ฑํ๋ ๊ฐ๋ฐ ๋ฐฉ๋ฒ • ๊ธฐ๋ฅ ๋์์ ๊ฒ์ฆ (๋ฉ์๋ ๋จ์) BDD • Behavior Driven Development (ํ์ ์ฃผ๋ ๊ฐ๋ฐ) • ํ์์ ๋ํ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฐ๋ฐ ๋ฐฉ๋ฒ • ์ ์ ์๋๋ฆฌ์ค ๋์์ ๊ฒ์ฆ (์๋๋ฆฌ์ค ๋จ์) • ํ๋์ ์๋๋ฆฌ์ค๋ Given, When, Then ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง 1. BDD์ ์ ์ ์ฑ ์ ๊ด๊ณ์์ ๊ด์ ์์ ๋ณด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์(๋์) ์ค ๊ฐ์น์๋ ๊ธฐ๋ฅ.. 2023. 3. 28. ์ด์ 1 2 ๋ค์ ๋ฐ์ํ