โ ์๋ฐ : JAVA
[Effective Java] ์์ฑ์ ๋์ ์ ์ ํฉํฐ๋ฆฌ ๋ฉ์๋ ์ฌ์ฉํ๊ธฐ
๋ณธ ๊ธ์ ์ดํํฐ๋ธ ์๋ฐ 3ํ์ ์ฝ๊ณ ์ ๋ฆฌํ ๊ธ ์ ๋๋ค. ๋์ผํ ๋ด์ฉ์ด ํฌํจ๋ ์ ์์ต๋๋ค. ๐0. ์๋ก ์ผ๋ฐ์ ์ผ๋ก ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๋ฐฉ์์, public ์์ฑ์์ ๋๋ค. ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก๋, ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋(static factory method)๋ฅผ ๋ง๋ค์ด ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋๋ ๋จ์ํ ํด๋น ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ฐํํ๋ ๊ฒ์ด ๊ทธ ์ญํ ์ ์ ๋ถ์ ๋๋ค. ๋ค์์ ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋์ ์์๋ก, Boolean ๋ํผ ํด๋์ค์ valueOf ๋ฉ์๋์ ๋๋ค. public static Boolean valueOf(boolean b){ return b ? Boolean.TRUE : Boolean.FALSE; } ๊ทธ๋ ๋ค๋ฉด ์ ์ ํฉํฐ๋ฆฌ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ ๋์ ์ฅ์ ์ ๋ฌด์์ผ๊น์? ๐ค 1. ์ ์ ํฉํ ..
[Java] ์๋ฐ ์ง๋ ฌํ (Serialization)
๐ค 1. ์๋ฐ ์ง๋ ฌํ๋? ์๋ฐ ์ง๋ ฌํ(Java Serialization)์, ๊ฐ์ฒด์ ์ํ๋ฅผ ์์ํ ํ๋ ๋งค์ปค๋์ฆ์ ๋๋ค. ์์ํ๋, ์๊ตฌ์ ์ผ๋ก ์์ฑ์ ์ ์ฅํ๋ ๊ฒ์ ์๋ฏธํ๋ฏ๋ก, ์ฝ๊ฒ ํ์ด์ ์ค๋ช ํ๋ฉด ๊ฐ์ฒด๋ฅผ ๋ค๋ฅธ ํ๊ฒฝ์ ์ ์ฅํ๋ค๊ฐ ๋์ค์ ์ฌ๊ตฌ์ฑํ ์ ์๋ ๊ฒ์ด ๊ณง ์๋ฐ ์ง๋ ฌํ์ ์๋ฏธ์ ๋๋ค. ๋จ์ํ ์ ์ฅ์ด๋ผ๊ณ ํํํ์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์๊ฐํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฅ, ํ์ผ์ ํํ๋ก ์ ์ฅ๋ ํด๋น์ด ๋์ง๋ง, ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์บ์์ ์ ์ฅํ๋ ๊ฒ ์ญ์ ์ง๋ ฌํ๋ผ๊ณ ํํํ ์ ์์ต๋๋ค. ์๋ฐ ์ง๋ ฌํ๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์จ์ ํ ๋ค๋ฅธ ๊ณณ์ ์ ์ฅํ๊ณ , ๋ค์ ์จ์ ํ ๊ฐ์ฒด๋ก ์ฌ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฝ๊ฒ ๋ถ์ฐ ๊ฐ์ฒด ์์ฑ์ด ๊ฐ๋ฅํด์ก์ต๋๋ค. ์๋ฐ ์ง๋ ฌํ์์ ์ ์ฅํ๋ ๋ฐฉ์์, ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํธ ์คํธ๋ฆผ์ ํํ๋ก ๋ง๋ค์ด ์ด๋ฅผ ์ ์ฅํฉ๋๋ค. ๐ค ..
[Java] ์์๋์ ๊ตฌ์ฑ(Composition)์ ์ฌ์ฉํ์
[Java] ์์์ ์ฅ๋จ์ , ์์์ ์ธ์ ์จ์ผ ํ๋๊ฐ? ๐ง 1. ์์์ด ๋ญ์ฃ ? [Java] ์์(Inheritance) ์ฌ์ฉ๋ฒ๊ณผ ์์์ ์ฌ์ฉํ๋ ์ด์ ๐ง 1. ์์์ด ๋ญ์ฃ ? ํ์ค์ธ๊ณ์์์ ์์์, ๋ถ๋ชจ๊ฐ ์์์๊ฒ ์ฌ์ฐ์ ๋ฌผ๋ ค์ฃผ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์์์ ์์์ ๋ฐ์ผ๋ฉด hoons-dev.tistory.com ์ด์ ๊ธ์์ ์์์ ์ฌ์ฉํ์ ๋ ์บก์ํ๊ฐ ๊นจ์ง๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ด ์์๊น์? ๋ฐ๋ก, ์์ ๋์ ๊ตฌ์ฑ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ๐ค 1. ๊ตฌ์ฑ? ์์์์ ๊ตฌ์ฑ์ผ๋ก ์ ํํ๋ ๋ฐฉ๋ฒ์, ๋ถ๋ชจ ํด๋์ค๋ฅผ extends ํ๋ ๊ฒ์ด ์๋๋ผ ์์ ํด๋์ค ๋ถ๋ถ์ private ๋ฉค๋ฒ ๋ณ์๋ก ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์๋ฏธํฉ๋๋ค. class Base {} /* ์์ */ class Child extends ..
[Java] ์์์ ์ฅ๋จ์ , ์์์ ์ธ์ ์จ์ผ ํ๋๊ฐ?
๐ง 1. ์์์ด ๋ญ์ฃ ? [Java] ์์(Inheritance) ์ฌ์ฉ๋ฒ๊ณผ ์์์ ์ฌ์ฉํ๋ ์ด์ ๐ง 1. ์์์ด ๋ญ์ฃ ? ํ์ค์ธ๊ณ์์์ ์์์, ๋ถ๋ชจ๊ฐ ์์์๊ฒ ์ฌ์ฐ์ ๋ฌผ๋ ค์ฃผ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์์์ ์์์ ๋ฐ์ผ๋ฉด ๋ถ๋ชจ๊ฐ ๊ฐ์ง๊ณ ์๋ ์์์ ๊ทธ๋๋ก ์ป๊ฒ ๋ฉ๋๋ค. ์์์ ํด์ฃผ๋ฉด ํ์ค์ธ๊ณ hoons-dev.tistory.com ์ด์ ๊ธ์ ์ฐธ๊ณ ํ์๋ฉด, ์์์ ์ฌ์ฉ๋ฒ๊ณผ ์๋ฐ์ ์์์ด ๋ฌด์์ธ์ง ์ดํดํ ์ ์์ต๋๋ค. ๐ฎ 2. ์์์ ์ฅ๋จ์ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ์์์ ์ฅ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. - ์ฝ๋์ ํ์ฅ์ฑ, ์ฌ์ฌ์ฉ์ฑ ์์น - ์ค๋ณต๋ ์ฝ๋ ์ ๊ฑฐ๊ฐ๋ฅ - ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์์ ๋คํ์ฑ ๋ค๋ง, ์์์ ๋ํ ์ดํด๊ฐ ๋ถ์กฑํ ์ํ์์ ์์์ ์ฌ์ฉํ๊ฒ ๋๋ฉด, ์์์๋ ๋ง์ ๋จ์ ์ด ์กด์ฌํฉ๋๋ค. ์์์ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฐ๋ ฅํ ์๋จ..
[Java] ์์(Inheritance) ์ฌ์ฉ๋ฒ๊ณผ ์์์ ์ฌ์ฉํ๋ ์ด์
๐ง 1. ์์์ด ๋ญ์ฃ ? ํ์ค์ธ๊ณ์์์ ์์์, ๋ถ๋ชจ๊ฐ ์์์๊ฒ ์ฌ์ฐ์ ๋ฌผ๋ ค์ฃผ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์์์ ์์์ ๋ฐ์ผ๋ฉด ๋ถ๋ชจ๊ฐ ๊ฐ์ง๊ณ ์๋ ์์์ ๊ทธ๋๋ก ์ป๊ฒ ๋ฉ๋๋ค. ์์์ ํด์ฃผ๋ฉด ํ์ค์ธ๊ณ์ ๋ถ๋ชจ๋ ์ฌ์ฐ์ ๋ฌผ๋ ค์คฌ๊ธฐ ๋๋ฌธ์ ๋จ๋ ์ฌ์ฐ์ด ์์ง๋ง, ์๋ฐ์ ์์์ ๊ทธ๋ ์ง ์์ต๋๋ค. ์๋ฐ์์์ ์์(Inheritance)์, ๋ถ๋ชจ ํด๋์ค์ ํ๋์ ๋ฉ์๋๋ฅผ ๋ฌผ๋ ค๋ฐ์ต๋๋ค. class Parent{ // ํ๋ public String value1; // ๋ฉ์๋ public String getValue1(){ return this.value1; } } ์ฆ, Parent ํด๋์ค๋ฅผ ์์๋ฐ๋ Child๊ฐ ์๋ค๋ฉด, ํด๋น Child ํด๋์ค๋ ๋ถ๋ชจ์ value1 ํ๋์, getValue1 ๋ฉ์๋ ๋ชจ๋ ๊ฐ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ ๋ค๊ณ ์์์..