๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (454)

Bibi's DevLog ๐Ÿค“๐ŸŽ

[Java] JUnit, AssertJ์˜ ๊ฐœ๋… ๋ฐ ๊ธฐ์ดˆ์ ์ธ ์‚ฌ์šฉ๋ฒ• (๋‹จ์ •๋ฌธ, ์–ด๋…ธํ…Œ์ด์…˜)

JUnit์˜ ๊ฐœ๋… ๋ฐ assert ๋ฉ”์†Œ๋“œ(๋‹จ์ •๋ฌธ), ์–ด๋…ธํ…Œ์ด์…˜ ์ถœ์ฒ˜ : ๋งํฌ1, ๋งํฌ2, ๋งํฌ3, ๋งํฌ4. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค๐Ÿ™‡‍โ™€๏ธ๐Ÿ™‡‍โ™€๏ธ JUnit์ด๋ž€? ์ž๋ฐ”๋ฅผ ์œ„ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(์˜คํ”ˆ์†Œ์Šค)์ด๋‹ค. ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด ์ฃผ๋Š” ํ…Œ์ŠคํŠธ์šฉ ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค. org.junit ๋‹จ์ •๋ฌธ (assert...())์œผ๋กœ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ˆ˜ํ–‰๊ฒฐ๊ณผ๋ฅผ ํŒ๋ณ„ํ•ด ์•Œ๋ ค์ค€๋‹ค. ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ„๊ฒฐํ•ด์ง€๋„๋ก ์ง€์›ํ•œ๋‹ค. ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ๋ฅผ Testํด๋ž˜์Šค๋กœ ๋‚จ๊น€์œผ๋กœ์จ ํ…Œ์ŠคํŠธ history๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ Unit Test๋ž€? ๋ชจ๋“  ํ•จ์ˆ˜์™€ ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค test cate๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ ˆ์ฐจ. ์†Œ์Šค์ฝ”๋“œ์˜ ํŠน์ • ๋ชจ๋“ˆ์ด ์˜๋„๋Œ€๋กœ ์ •ํ™•ํžˆ ๋™์ž‘ํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•œ๋‹ค. System.out...

[Java] ์ ‘๊ทผ์ œ์–ด์ž

์ ‘๊ทผ์ œ์–ด์ž Access modifier : ํด๋ž˜์Šค ์™ธ๋ถ€์—์„œ์˜ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์–ด๋Š ์ •๋„๊นŒ์ง€ ํ—ˆ์šฉํ• ์ง€ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฐ” ์˜ˆ์•ฝ์–ด. ๊ฐ์ฒด์ง€ํ–ฅ - ์ •๋ณด ์€๋‹‰(data hiding) : ์‚ฌ์šฉ์ž๊ฐ€ ๊ตณ์ด ์•Œ ํ•„์š” ์—†๋Š” ์ •๋ณด๋Š” ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ˆจ๊ธด๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์ตœ์†Œํ•œ์˜ ์ •๋ณด๋งŒ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์†์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž๋ฐ”๋Š” ์ •๋ณด์€๋‹‰์„ ๊ตฌ์ฒดํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ ‘๊ทผ์ œ์–ด์ž๋ผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ํด๋ž˜์Šค, ๋ฉ”์†Œ๋“œ, ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜, ํด๋ž˜์Šค ๋ณ€์ˆ˜ ์„ ์–ธ์‹œ ์‚ฌ์šฉํ•œ๋‹ค. private < default(package-private) < protected < public ์ˆœ์œผ๋กœ ์ ‘๊ทผ ํ—ˆ์šฉ ๋ฒ”์œ„๊ฐ€ ๋„“๋‹ค. private ํ•ด๋‹น ํด๋ž˜์Šค ๋‚ด์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ ํ•ด๋‹น ๊ฐ์ฒด์˜ public ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ ํด๋ž˜์Šค ๋‚ด๋ถ€์˜ ์„ธ๋ถ€ ๋™์ž‘์„ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ..

[Java] ์ƒ์„ฑ์ž์™€ ๊ธฐ๋ณธ์ƒ์„ฑ์ž

๊ธฐ๋ณธ์ƒ์„ฑ์ž (&#39;์ž๋ฐ”์˜ ์‹ &#39; ์„ ์ฐธ๊ณ ํ•˜๋ฉฐ ๋‚ด์šฉ์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค) ์ƒ์„ฑ์ž constructor : ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” (๊ฑฐ์˜) ์œ ์ผํ•œ ๋„๊ตฌ. ๋ฉ”์†Œ๋“œ์™€ ์„ ์–ธ ๋ฐฉ์‹์ด ๋น„์Šทํ•˜๋‹ค ์ฐจ์ด์ ) ๋ฆฌํ„ดํƒ€์ž…์ด ์—†๊ณ , ์ด๋ฆ„์ด ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ๊ฐ™๋‹ค. ์ƒ์„ฑ์ž์˜ ๋ฆฌํ„ดํƒ€์ž…์€ ํ•ญ์ƒ ๊ทธ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด์ด๊ธฐ ๋–„๋ฌธ์— ๋ฆฌํ„ดํƒ€์ž…์ด ์—†๋‹ค. ์ƒ์„ฑ์ž ์ด๋ฆ„์ด ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ๊ฐ™์•„์•ผ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ƒ์„ฑ์ž๋ผ๊ณ  ์ธ์‹ํ•œ๋‹ค. ์ƒ์„ฑ์ž๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์™€ ๋ฉ”์†Œ๋“œ ์‚ฌ์ด์— ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค. ์ƒ์„ฑ์ž์˜ ๊ฐฏ์ˆ˜) ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ๋” ํŽธํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด, ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋‹ฌ๋ฆฌํ•ด ์—ฌ๋Ÿฌ ์ƒ์„ฑ์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ ์ƒ์„ฑ์ž Default Constructure : ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š” ์ƒ์„ฑ์ž๋ฅผ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ผ๊ณ  ํ•œ๋‹ค. ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋Š” &#39;๋‹ค๋ฅธ ์ƒ์„ฑ์ž๊ฐ€ ์—†์„ ๊ฒฝ์šฐ&#39; ๊ธฐ๋ณธ์œผ๋กœ ..

[Java] ์ƒ์ˆ˜์™€ enum

์ƒ์ˆ˜์™€ enum ์ƒ์ˆ˜ Constant : ๋ณ€์ˆ˜์˜ ๋ฐ˜๋Œ€๋ง. ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’์„ ๋œปํ•จ. ํ”„๋กœ๊ทธ๋žจ์„ ์งœ๋ฉด์„œ ๋ฐ”๋€” ์ผ์ด ์—†๋Š” ๊ฐ’์ด ์žˆ๋‹ค๋ฉด, ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ ์ƒ์ˆ˜๋กœ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์ž๋ฐ”์—์„œ ์ƒ์ˆ˜ ์„ ์–ธ final static ์ž๋ฃŒํ˜• ๋Œ€๋ฌธ์ž์ด๋ฆ„ = ์ƒ์ˆ˜๊ฐ’ final : (ํ•„์ˆ˜) ๋ณ€์ˆ˜์— ์„ ์–ธ ์‹œ, ํ•œ ๋ฒˆ ํ• ๋‹นํ•˜๋ฉด ์ˆ˜์ •์ด ๋ถˆ๊ฐ€๋Šฅํ•จ. static : ๋ชจ๋“  ๋ณ€์ˆ˜๊ฐ€ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•จ ๋Œ€๋ฌธ์ž์ด๋ฆ„ : ์ƒ์ˆ˜๋ช…์€ ์ƒ์ˆ˜์ž„์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์ „์ฒด ๋Œ€๋ฌธ์ž๋กœ ํ‘œํ˜„ํ•œ๋‹ค(APPLE์ฒ˜๋Ÿผ) ์ƒ์ˆ˜๊ฐ’ : final๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜/์ƒ์ˆ˜๋Š” ์„ ์–ธ๊ณผ ๋™์‹œ์— ๊ฐ’์„ ์ง€์ •ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. enum ์—ด๊ฑฐํ˜• : ์ƒ์ˆ˜์˜ ์ง‘ํ•ฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด (enumeration, ์—ด๊ฑฐ) ํƒ€์ž…์ด๋ฉด์„œ ํด๋ž˜์Šค์˜ ์ผ์ข…์ด๊ธฐ๋„ ํ•˜๋‹ค. (์—ด๊ฑฐํ˜• ํด๋ž˜์Šค) class ๋Œ€์‹  enum์„ ์‚ฌ์šฉํ•˜๋ฉด enumํด๋ž˜..

[Java - JVM] JVM ๊ฐœ๋…๊ณผ ๋™์ž‘์›๋ฆฌ (๊ธฐ์ดˆ)

JVM - Java Virtual Machine (JVM์ด๋ž€) : ์ž๋ฐ” ์‘์šฉํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ์‹คํ–‰ ์—”์ง„. JVM์€ JRE์˜ ์ผ๋ถ€์ด๋‹ค. JRE : Java Runtime Environment (ํ•„์ˆ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ) ์ž๋ฐ”์˜ implementation์ด JVM์ด๋‹ค. implementation : ๋ช…์„ธ์„œ๋ฅผ ๋Œ์•„๊ฐ€๊ฒŒ ํ•˜๋Š” ๊ฒƒ. .javaํŒŒ์ผ : ์šฐ๋ฆฌ๊ฐ€ ์ž๋ฐ” ์–ธ์–ด๋กœ ์ฝ”๋”ฉํ•œ ํŒŒ์ผ .classํŒŒ์ผ : .javaํŒŒ์ผ์„ javac๋ช…๋ น์œผ๋กœ Java ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ปดํŒŒ์ผํ•œ ํŒŒ์ผ. ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋˜์–ด ์žˆ๋‹ค ํด๋ž˜์Šค ํŒŒ์ผ์ด ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๋ฉฐ ์ž๋ฐ” ํŒŒ์ผ์ด ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๋‹ค. JVM์˜ ๊ตฌ์„ฑ์š”์†Œ(3๊ฐ€์ง€) 1.Class Loader Sybsystem ํด๋ž˜์Šค ๋กœ๋” ํ•˜์œ„์‹œ์Šคํ…œ ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋ฉด ํด๋ž˜์Šค ๋กœ๋”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ํด๋ž˜์Šค๋ฅผ ๋กœ๋“œํ•œ๋‹ค. loading..

ํŒŒ์ผ ๋์— ๊ฐœํ–‰์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ์ด์œ 

ํŒŒ์ผ ๋์— ๊ฐœํ–‰์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” ์ด์œ  POSIX(ํฌ์ง์Šค, portable operating system interface) ๋ช…์„ธ๊ฐ€ ๊ทธ๋Ÿฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ OS๊ฐ„์— ์ด์‹์„ฑ์ด ๋†’์€ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธํ„ฐํŽ˜์ด์Šค ๊ทœ๊ฒฉ ํ–‰์˜ ๋์€ ๊ฐœํ–‰์ด์–ด์•ผ ํ•œ๋‹ค. ํŒŒ์ผ์€ ํ–‰์˜ ์ง‘ํ•ฉ์ด๋ฉฐ, ํ–‰์€ ๋ฐ˜๋“œ์‹œ ๊ฐœํ–‰์œผ๋กœ ๋๋‚œ๋‹ค. (์ฆ‰ ํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰ ํ–‰๋„ ๊ฐœํ–‰์œผ๋กœ ๋๋‚˜๊ธฐ ๋–„๋ฌธ์—, ํŒŒ์ผ ๋์— ๊ฐœํ–‰์ด ์žˆ๊ฒŒ ๋œ๋‹ค) ํŠนํžˆ ํŒŒ์ผ ๋งˆ์ง€๋ง‰์— ๊ฐœํ–‰์ด ์—†์œผ๋ฉด, ์—ฌ๋Ÿฌ ํŒŒ์ผ์ด ์žˆ์„ ๋•Œ ๋‘ ํŒŒ์ผ ๊ฐ„ ์ฐจ์ด๋ฅผ ์•Œ๊ธฐ ์–ด๋ ต๋‹ค. ์ด๋Ÿฐ ์ด์œ ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ ๊นƒํ—ˆ๋ธŒ๋Š” ํŒŒ์ผ ๋งˆ์ง€๋ง‰์— ๊ฐœํ–‰์ด ์—†์œผ๋ฉด ๊ฒฝ๊ณ ๋ฅผ ๋„์šฐ๊ฒŒ ๋˜์–ด ์žˆ๋‹ค.