๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ž๋ฐ”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.
๋ฐ˜์‘ํ˜•