SW_Maestro_ : ๊ฐ์ฒด์งํฅ ์ฝ๋ฉ
ํ
๋ธ๋ฌ ๋งํฌ๋ค์ด ๊ฐ๊ทนํ ใ
กใ
ก (ํ๊ทธ๊ฐ ์๋จนํ)
์ฝ๋๋ฅผ ๊นจ๋ํ๊ฒ ์ง๋๋ฒ์ ๋ํด ๊ณต๋ถํด๋ณด์.
๊นจ๋ํ ์ฝ๋๋ ์ ์ด ๋ฌธ์ฅ์ฒ๋ผ ์ฝํ๋ค.
ํน์ ๋ชฉ์ ์ ๋ฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ผ ํ๋๋ง ์ ๊ณตํ๋ค.
๊นจ๋ํ ์ฝ๋๋ ์ธ์ ๋ ๋๊ตฐ๊ฐ ์ฃผ์ ๊น๊ฒ ์งฐ๋ค๋ ๋๋์ ์ค๋ค.
์ค๋ณต ์ค์ด๊ธฐ, ํํ๋ ฅ ๋์ด๊ธฐ, ์ด๋ฐ๋ถํฐ ๊ฐ๋จํ ์ถ์ํ ๊ณ ๋ คํ๊ธฐ.
์ฝ๋๊ฐ ๊ทธ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํ ์ธ์ด์ฒ๋ผ ๋ณด์ธ๋ค๋ฉด ์๋ฆ๋ค์ด ์ฝ๋๋ผ ๋ถ๋ฌ๋ ๋๋ค.
๋ฐ๋ฅธ ์ฝ๋์ ์ข์ ์ฝ๋
๋ฐ๋ฅธ ๋ฌธ๋ฒ ์ฌ์ฉ์ ๊ธฐ๋ฐ
์๋๋ฅผ ๋ฌธ๋ฒ์ผ๋ก ๋ฐ์ํ ์ฝ๋
public ๋ชจ๋ ํด๋์ค์์ ์ ๊ทผ ๊ฐ๋ฅ
protected ๋์ผ ํจํค์ง์ ํด๋์ค
private ๋ด ํด๋์ค ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅ
~~์ ๊ทผ ์ ์ด์ ์ฌ์ฉ์?~~ (ํ
๋ธ๋ฌ ๋งํฌ๋ค์ด ๋ฌธ๋ฒ์ด ๊ฑฐ์ง๊ฐ์์ ใ
ใ
์ทจ์์ ์
๋๋น)
~~public : ์ ๋งคํ๋ฉด ์ด๊ฑฐ ์จ๋ผ~~
~~protected : ๊ฐ์ ํจํค์ง์์๋ง ์ฐ๊ธด ํ๋๋ฐ, ์ ๋งํ๋ฉด public~~
~~private : ๋ฉค๋ฒ๋ณ์ ๋ง๋ค๊ณ getset ๋ฉ์๋๋ก ๊ฐ์ธ์ฃผ๊ธด ํ๋๋ฐ ๊ฒฐ๊ตญ public~~
~~final : ์ปดํ์ผ๋ฌ๊ฐ ๋ถ์ด๋ผ ํ๋ฉด ๋ถ์ด๋ฉด ๋๋ค~~
์ ๊ทผ ์ ์ด์์ ์จ๊ฒจ์ง ์๋?
public : ๋ค๋ฅธ ์์กด์ฑ ๊ณ ๋ฏผ๋ง๊ณ ์จ๋ผ.
protected : ์์ํด์ ์ฐ๋๊ฐ, ํฉํ ๋ฆฌ๋ก ์จ๋ผ.
private : ๋๋ง ๊ณ ๋ฏผํ ๊ฑฐ๋, ๋ ์ ๊ฒฝ๊บผ๋ผ.
final : ์๊ทธ๋๋ ๋ณ์๋ง์๋ฐ, ์ด๊ฑด ์ ๊ฒฝ๊บผ๋ผ.
๋จ์ ์์๋ ํจํด์ด๋ค.
๋ง๋งํ Singleton Pattern
Singleton Pattern์ ๋ฒ์น
๊ทธ๋ฅ ๊ธ๋ก๋ฒ ๋ณ์๋ฅผ ๋ฌ์
static{g_thisObj = new Global();}
Singleton์ ๋๋ช
์ฌ Calendar
๋ณ์๋ ๋ด๋ฒ๋ ค๋๋ฉด ๊ณ์ ๋์ด๋๋ค
๋ณ์๋ฅผ ๋ ์ฌ์ฉํ๊ณ ์ต๋ํ ๊ฐ๋ณ๊ฒ ๋ง๋ค์ด ๊ฐ๋
์ฑ์ ๋์
๋ฐฉํด๋๋ ๋ณ์๋ฅผ ์ ๊ฑฐ
๊ฒฐ๊ณผ๋ฅผ ์ฆ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก, ์ค๊ฐ ๊ฒฐ๊ณผ๊ฐ์ ์ ์ฅํ๋ ๋ณ์๋ฅผ ์ ๊ฑฐ
์ฝ๋ ํ๋ฆ์ ์ฝ๊ธฐ ์ฝ๊ฒ ๋ง๋ค์ด์ผ ๋
ผ๋ฆฌ๊ฐ ๋ช
ํํด์ง๋ค.
if / else๋ฌธ์ ๋ธ๋ก ์์์ ์ฃผ์
๊ธ์ ์ ์ด๊ณ ์ฝ๊ณ ํฅ๋ฏธ๋ก์ด ๊ฒฝ์ฐ๊ฐ ์์ชฝ์ ์์น
์ผํญ์ฐ์ฐ์๋ do/while, goto๋ ์ฝ๋ ๊ฐ๋
์ฑ์ ๋จ์ด๋จ๋ฆฐ๋ค.
์ค์ฒฉ๋ ์ฝ๋ ๋ธ๋ก์ ํ๋ฆ์ ๋ฐ๋ผ๊ฐ๋ ค๋ฉด ๋ง์ ์ง์ค์ด ํ์ํจ.
์ ํ์ ์ธ ์ฝ๋ ์ถ๊ตฌ
ํจ์ ์ค๊ฐ์ ๋ฐํํ๋ฉด ์ค์ฒฉ์ ํผํ๊ณ ์ฝ๋๋ฅผ ๋ ๊น๋ํ๊ฒ
ํจ์ ์๋ถ๋ถ์์ โ๋ณดํธ ๊ตฌ๋ฌธ'์ผ๋ก ๊ฐ๋จํ ๊ฒฝ์ฐ๋ฅผ ๋ฏธ๋ฆฌ ์ฒ๋ฆฌํ๋ ๋ฐฉ์๋ ๊ณ ๋ ค
ํ์ผ ๊ธธ์ด๋ ์งง์์ผํ๋ค.
ํ ๊ธธ์ด๋ ์งง์์ผ ํ๋ค.
๋ฏธํ์ ์ธ ์์ ๊ณ ๋ ค
ํ๊ณณ์์ A,B,C ์์ผ๋ก ์ธ๊ธ๋๋ฉด, ๋ค๋ฅธ๊ณณ์์ B,A,C ์์ผ๋ก ์ธ๊ธํ์ง ๋ง๋ผ.
์๋ฏธ ์๋ ์์๋ฅผ ์ ํด๋ผ
๊ฐ๊ธ์ ์ด๋ฉด ์ ์ ์ฝ๋๋ฅผ ์ ์ง
์ ํ์ ํ์ํ์ง ์๋ ๊ธฐ๋ฅ์ ์ ๊ฑฐ (์ฃผ์ ์ฒ๋ฆฌ ๊ธ๋ฌผ)
์๊ตฌ ์ฌํญ์ ์ฌ๊ณ ํด์ ๊ฐ์ฅ ๋จ์ํ ํํ์ ๋ฌธ์ ๋ฅผ ํ์
์ ์ฐจ์ ์ธ ์ฝ๋์ ๊ฐ์ฒด ์งํ ์ฝ๋
๊ฐ์ฒด์งํฅ์ด ๋ง๋ฅ์ธ๊ฐ?
๊ฐ์ฒด๋ ๋์์ ๊ณต๊ฐํ๊ณ ์๋ฃ๋ฅผ ์จ๊ธด๋ค.
๊ธฐ์กด ๋์์ ๋ณ๊ฒฝํ์ง ์์ผ๋ฉด์ ์ ๊ฐ์ฒด ํ์
์ถ๊ฐํ๊ธฐ๋ ์ฌ์
๊ธฐ์กด ๊ฐ์ฒด์ ์ ๋์์ ์ถ๊ฐํ๊ธฐ๋ ์ด๋ ค์
null์ ์๋ฏธ๋ ๋๊ฐ์ง
๋ชจํธ์ฑ์ผ๋ก ์ธํ ๋ฌธ์ ์ ์ ์
์ ์๋ค.
null์ ๋ฐํํ๊ฑฐ๋ null์ ์ ๋ฌํ์ง๋ง๋ผ.
์ ๋ง null์ด ํ์ํ๋ฉด optional์ ๊ณ ๋ ค.