Java

Java/๐Ÿ“• Effective Java

[๐Ÿ“• Effective Java] ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค ไธญ

18. ์ƒ์†๋ณด๋‹ค๋Š” ์ปดํฌ์ง€์…˜ ์‚ฌ์šฉ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์˜ ๊ตฌ์ฒด ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜๋Š” ์ผ์€ ์œ„ํ—˜ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ๊ณผ ๋‹ฌ๋ฆฌ ์ƒ์†์€ ์บก์Šํ™”๋ฅผ ๊นจ๋œจ๋ฆผ ๐Ÿ‘‰ ์ƒ์œ„ ํด๋ž˜์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜๋Š๋ƒ์— ๋”ฐ๋ผ ํ•˜์œ„ ํด๋ž˜์Šค์˜ ๋™์ž‘์— ์ด์ƒ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Œ์ƒ์œ„ ํด๋ž˜์Šค๋Š” ๋ฆด๋ฆฌ์ฆˆ๋งˆ๋‹ค ๋‚ด๋ถ€ ๊ตฌํ˜„์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ทธ๋กœ ์ธํ•ด ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์˜ค๋™์ž‘ํ•  ์ˆ˜ ์žˆ์Œ โœณ๏ธ ์ƒ์†์„ ์ž˜๋ชป ์‚ฌ์šฉํ•œ ์˜ˆ public class InstrumentedHashSet extends HashSet { private int addCount = 0; public InstrumentedHashSet(){ } public InstrumentedHashSet(int initCap, float loadFactor){ super(i..

Java

[Java ๊ณ ๊ธ‰ํŽธ] ์Šค๋ ˆ๋“œ ์ƒ์„ฑ๊ณผ ์‹คํ–‰

ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œโœณ๏ธ ํ”„๋กœ์„ธ์Šค์šด์˜์ฒด์ œ ์•ˆ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ์ธ์Šคํ„ด์Šค๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋…๋ฆฝ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ–๊ณ  ์žˆ์Œ ๐Ÿ‘‰ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์„œ๋กœ์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ง์ ‘ ์ ‘๊ทผ X์šด์˜์ฒด์ œ์—์„œ ๋ณ„๋„์˜ ์ž‘์—… ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌํ•ด์„œ ๊ด€๋ฆฌ๋จ ํ”„๋กœ์„ธ์Šค๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๋ฐ˜๋“œ์‹œ ํฌํ•จ โ‡๏ธ ํ”„๋กœ์„ธ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์„ฑ์ฝ”๋“œ ์„น์…˜ : ์‹คํ–‰ํ•  ํ”„๋กœ๊ทธ๋žจ์˜ ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ถ€๋ถ„๋ฐ์ดํ„ฐ ์„น์…˜ : ์ „์—ญ ๋ณ€์ˆ˜ ๋ฐ ์ •์  ๋ณ€์ˆ˜๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ถ€๋ถ„ (๊ธฐํƒ€ ๋ถ€๋ถ„)ํž™ : ๋™์ ์œผ๋กœ ํ• ๋‹น๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์Šคํƒ : ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์‹œ ์ƒ์„ฑ๋˜๋Š” ์ง€์—ญ ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜ ์ฃผ์†Œ๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ (์Šค๋ ˆ๋“œ์— ํฌํ•จ) โœณ๏ธ ์Šค๋ ˆ๋“œ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ์ž‘์—…์˜ ๋‹จ์œ„ํ•œ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ ์กด์žฌ ๊ฐ€๋Šฅ ๐Ÿ‘‰ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ๊ณต์œ  โ‡๏ธ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์„ฑ๊ณต..

Java/๐Ÿ“• Effective Java

[๐Ÿ“• Effective Java] ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค ไธŠ

15. ํด๋ž˜์Šค์™€ ๋ฉค๋ฒ„์˜ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ตœ์†Œํ™” ์ ‘๊ทผ ์ œํ•œ์ž๋ฅผ ์ œ๋Œ€๋กœ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ •๋ณด ์€๋‹‰(์บก์Šํ™”)์˜ ํ•ต์‹ฌ  ๋ชจ๋“  ํด๋ž˜์Šค์™€ ๋ฉค๋ฒ„์˜ ์ ‘๊ทผ์„ฑ์„ ๊ฐ€๋Šฅํ•œ ํ•œ ์ขํ˜€์•ผ ํ•จํŒจํ‚ค์ง€ ์™ธ๋ถ€์—์„œ ์“ธ ์ด์œ ๊ฐ€ ์—†๋‹ค๋ฉด package-private์œผ๋กœ ์„ ์–ธํ•œ ํด๋ž˜์Šค์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” package-private ํ†ฑ๋ ˆ๋ฒจ ํด๋ž˜์Šค๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค ์•ˆ์— private static์œผ๋กœ ์ค‘์ฒฉ์‹œํ‚ค๊ธฐโœจ public์ผ ํ•„์š”๊ฐ€ ์—†๋Š” ํด๋ž˜์Šค์˜ ์ ‘๊ทผ ์ˆ˜์ค€์„ package-private ํ†ฑ๋ ˆ๋ฒจ ํด๋ž˜์Šค๋กœ ์ขํžˆ๊ธฐ โœณ๏ธ ์ ‘๊ทผ ์ˆ˜์ค€ private : ๋ฉค๋ฒ„๋ฅผ ์„ ์–ธํ•œ ํ†ฑ๋ ˆ๋ฒจ ํด๋ž˜์Šค์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ package-private : ๋ฉค๋ฒ„๊ฐ€ ์†Œ์†๋œ ํŒจํ‚ค์ง€ ์•ˆ์˜ ๋ชจ๋“  ํด๋ž˜์Šค์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ. ์ ‘๊ทผ ์ œํ•œ์ž๋ฅผ ๋ช…์‹œํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ์ ์šฉ๋˜๋Š” ํŒจํ‚ค์ง€ ์ ‘๊ทผ ์ˆ˜์ค€.pro..

Java/๐Ÿ“• Effective Java

[๐Ÿ“• Effective Java] ๋ชจ๋“  ๊ฐ์ฒด์˜ ๊ณตํ†ต ๋ฉ”์„œ๋“œ ไธ‹

13. clone ์žฌ์ •์˜๋Š” ์ฃผ์˜ํ•ด์„œ ์ง„ํ–‰Cloneable : ๋ณต์ œํ•ด๋„ ๋˜๋Š” ํด๋ž˜์Šค์ž„์„ ๋ช…์‹œํ•˜๋Š” ์šฉ๋„์˜ ์ธํ„ฐํŽ˜์ด์ŠคObject์˜ protected ๋ฉ”์„œ๋“œ์ธ clone์˜ ๋™์ž‘ ๋ฐฉ์‹์„ ๊ฒฐ์ • Cloneable์€ ์ƒ์œ„ ํด๋ž˜์Šค์— ์ •์˜๋œ protected ๋ฉ”์„œ๋“œ์˜ ๋™์ž‘ ๋ฐฉ์‹์„ ๋ณ€๊ฒฝ์ƒ์† ๊ด€๊ณ„์˜ ๋‘ ํด๋ž˜์Šค ์ค‘ ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ super.clone์„ ํ˜ธ์ถœํ•œ๋‹ค๋ฉด ์ž˜๋ชป๋œ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ์Œ ๐Ÿ‘‰ ํด๋ž˜์Šค B๊ฐ€ ํด๋ž˜์Šค A๋ฅผ ์ƒ์†ํ•  ๋•Œ, ํ•˜์œ„ ํด๋ž˜์Šค์ธ B์˜ clone์€ B ํƒ€์ž… ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•จ. ํ•˜์ง€๋งŒ A์˜ clone์ด new A(...)๋กœ ์ƒ์„ฑํ•œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋ฉด, B์˜ clone๋„ A ํƒ€์ž… ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜.โœณ๏ธ ๊ฐ€๋ณ€ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” Stack ํด๋ž˜์Šค ๋ณต์ œํ•˜๊ธฐ public class Stack { private..

Java/๐Ÿ“• Effective Java

[Effective Java] ๋ชจ๋“  ๊ฐ์ฒด์˜ ๊ณตํ†ต ๋ฉ”์„œ๋“œ ไธŠ

10. equals๋Š” ์ผ๋ฐ˜ ๊ทœ์•ฝ์„ ์ง€์ผœ ์žฌ์ •์˜equals๋ฅผ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ...๐Ÿ‘‰ ๋‘ ๊ฐ์ฒด๊ฐ€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ฐ™์€์ง€(๊ฐ์ฒด ์‹๋ณ„์„ฑ)๊ฐ€ ์•„๋‹ˆ๋ผ ๋…ผ๋ฆฌ์  ๋™์น˜์„ฑ์„ ํ™•์ธํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ƒ์œ„ ํด๋ž˜์Šค์˜ equals๊ฐ€ ๋…ผ๋ฆฌ์  ๋™์น˜์„ฑ์„ ๋น„๊ตํ•˜๋„๋ก ์žฌ์ •์˜๋˜์ง€ ์•Š์„ ๋•Œ  โœณ๏ธ ์ผ๋ฐ˜ ๊ทœ์•ฝ ๋Œ€์นญ์„ฑ : x.equals(y)๊ฐ€ true์ด๋ฉด, y.equals(x)๋„ true์ถ”์ด์„ฑ : x.equals(y)๊ฐ€ true์ด๊ณ , y.equals(z)๋„ true์ด๋ฉด, x.equals(z)๋„ true์ผ๊ด€์„ฑ : x.equals(y)๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ํ˜ธ์ถœํ•˜๋ฉด ํ•ญ์ƒ true ๋˜๋Š” false ๋ฐ˜ํ™˜โœณ๏ธ equals ๋ฉ”์„œ๋“œ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•== ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•ด ์ž…๋ ฅ์ด ์ž๊ธฐ ์ž์‹ ์˜ ์ฐธ์กฐ์ธ์ง€ ํ™•์ธ ๐Ÿ‘‰ ์ž๊ธฐ ์ž์‹ ์ด๋ฉด true ๋ฐ˜ํ™˜instanceof ์—ฐ์‚ฐ์ž๋กœ ์ž…๋ ฅ์ด ์˜ฌ๋ฐ”๋ฅธ ํƒ€..

Java/๐Ÿ“• ์˜ค๋ธŒ์ ํŠธ : ์ฝ”๋“œ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„

[์˜ค๋ธŒ์ ํŠธ : ์ฝ”๋“œ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„] ํ˜‘๋ ฅ, ์ฑ…์ž„, ์—ญํ• 

โœจ ๊ฐ์ฒด์ง€ํ–ฅ ํŒจ๋Ÿฌ๋‹ค์ž„์—์„œ์˜ ํ•ต์‹ฌ  : ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ์•ž์„œ ๋งํ–ˆ๋˜ ํด๋ž˜์Šค, ์ƒ์†, ์ง€์—ฐ ๋ฐ”์ธ๋”ฉ์ด ๊ฐ์ฒด์ง€ํ–ฅ์—์„œ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๊ฒƒ์ด ์•„๋‹ˆ์ง€๋งŒ, ์ด๋“ค์€ ๊ตฌํ˜„ ์ธก๋ฉด์— ์น˜์šฐ์ณ์ ธ ์žˆ๋‹ค.  ๊ฐ์ฒด์ง€ํ–ฅ์—์„œ์˜ ํ•ต์‹ฌ์€ ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ์ด๋‹ค. ํ˜‘๋ ฅ์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ ์ ˆํ•œ ๊ฐ์ฒด๋ฅผ ์ฐพ๊ณ , ์ ์ ˆํ•œ ์ฑ…์ž„์„ ํ• ๋‹นํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์˜ ํ•ต์‹ฌ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.  ํด๋ž˜์Šค์™€ ์ƒ์†๊ณผ ๊ฐ™์€ ๊ฒƒ์€ ์ฑ…์ž„๊ณผ ํ˜‘๋ ฅ์ด ์–ด๋Š ์ •๋„ ์ž๋ฆฌ๋ฅผ ์žก์€ ํ›„์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌํ˜„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ธ ๊ฒƒ์ด๋‹ค.    ํ˜‘๋ ฅ์–ด๋–ค ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ๋ฌด์—‡์ธ๊ฐ€๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ฒƒ ๐Ÿ‘‰ ๋ฉ”์‹œ์ง€ ์ „์†ก (์š”์ฒญ๊ณผ ์‘๋‹ต)์ž์‹ ์—๊ฒŒ ํ• ๋‹น๋œ ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ์™ธ๋ถ€์˜ ๋„์›€์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ ์ ์ ˆํ•œ ๊ฐ์ฒด์—๊ฒŒ ๋ฉ”์‹œ์ง€ ์ „์†กํ•ด์„œ ํ˜‘๋ ฅ ์š”์ฒญ ๐Ÿ‘‰ ๊ฐ์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํ–‰๋™๊ณผ ์ƒํƒœ..

Java/๐Ÿ“• Effective Java

[๐Ÿ“• Effective Java] ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํŒŒ๊ดด ไธ‹

4. ์ธ์Šคํ„ด์Šคํ™”๋ฅผ ๋ง‰์œผ๋ ค๋ฉด private ์ƒ์„ฑ์ž ์‚ฌ์šฉ   5. ์ž์›์„ ์ง์ ‘ ๋ช…์‹œํ•˜์ง€ ๋ง๊ณ  ์˜์กด ๊ฐ์ฒด ์ฃผ์ž… ์‚ฌ์šฉ ์‚ฌ์šฉํ•˜๋Š” ์ž์›์— ๋”ฐ๋ผ ๋™์ž‘์ด ๋‹ฌ๋ผ์ง€๋Š” ํด๋ž˜์Šค์—๋Š” ์ •์  ์œ ํ‹ธ๋ฆฌํ‹ฐ ํด๋ž˜์Šค๋‚˜ ์‹ฑ๊ธ€ํ„ด ๋ฐฉ์‹ ์ ํ•ฉ X๐Ÿ‘‰ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ƒ์„ฑ์ž์— ํ•„์š”ํ•œ ์ž์›์„ ๋„˜๊ฒจ์ฃผ๋Š” ๋ฐฉ์‹ = ์˜์กด ๊ฐ์ฒด ์ฃผ์ž…   ์ƒ์„ฑ์ž์— ์ž์› ํŒฉํ† ๋ฆฌ๋ฅผ ๋„˜๊ฒจ์คŒโœจ ํŒฉํ† ๋ฆฌ๐Ÿ‘‰ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ํŠน์ • ํƒ€์ž…์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜๋ณตํ•ด์„œ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฐ์ฒด public class SpellChecker{ private final Lexicon dictionary; public SpellChecker(Lexicon dictionary){ this.dictionary = Objects.requireNonNull(dictionary); } ..

Java/๐Ÿ“• ์˜ค๋ธŒ์ ํŠธ : ์ฝ”๋“œ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„

[์˜ค๋ธŒ์ ํŠธ : ์ฝ”๋“œ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„] ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (๊ฐ์ฒด, ์„ค๊ณ„)

์บก์Šํ™” (Encapsulation)๋ชฐ๋ผ๋„ ๋˜๋Š” ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ์„ธ๋ถ€์ ์ธ ์‚ฌํ•ญ์„ ๊ฐ์ถ”๋Š” ๊ฒƒ๐Ÿ‘‰ ๋ชฉ์  : ๋ณ€๊ฒฝํ•˜๊ธฐ ์‰ฌ์šด ๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ ์บก์Šํ™”๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด ๋‚ด๋ถ€๋กœ์˜ ์ ‘๊ทผ์„ ์ œํ•œํ•˜๋ฉด ๊ฐ์ฒด์™€ ๊ฐ์ฒด ์‚ฌ์ด์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ์Œ โž” ์„ค๊ณ„ ์ข€๋” ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ โžก๏ธ ๊ฐ์ฒด๋ฅผ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ์ธํ„ฐํŽ˜์ด์Šค๋งŒ์„ ๊ณต๊ฐœํ•ด ๊ฐ์ฒด ์‚ฌ์ด์˜ ๊ฒฐํ•ฉ๋„ ๋‚ฎ์ถ”๊ณ  ๋ณ€๊ฒฝํ•˜๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ ์ž‘์„ฑ    ์‘์ง‘๋„ (Cohesion)๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ด€๋œ ์ž‘์—…๋งŒ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์—ฐ๊ด€์„ฑ ์—†๋Š” ์ž‘์—…์€ ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ์œ„์ž„ ๐Ÿ‘‰ ์‘์ง‘๋„๊ฐ€ ๋†’์Œ ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์Šค์Šค๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž์œจ์ ์ธ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๋ฉด ๊ฒฐํ•ฉ๋„↓, ์‘์ง‘๋„↑   โœจ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Object-Oriented Programming)๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์†Œ์œ  ๐Ÿ‘‰ ๋ฐ์ดํ„ฐ์™€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ผํ•œ ๋ชจ..

soogoori
'Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (2 Page)