Java ์บก์ํ ์ฝ๊ฒ ์ดํดํ๊ธฐ!
์ด๋ฒ ์์์ Java ํ๋ก๊ทธ๋๋ฐ์์ ๋งค์ฐ ์ค์ํ ๊ฐ๋
์ธ **์บก์ํ(Encapsulation)**๋ฅผ ์ฝ๊ณ ์น์ ํ๊ฒ ์ค๋ช
ํด ์ค๋๋ค. ์บก์ํ๊ฐ ๋ฌด์์ธ์ง, ์ ํ์ํ์ง, ๊ทธ๋ฆฌ๊ณ ์ค์ ์ฝ๋๋ก ์ด๋ป๊ฒ ๊ตฌํํ๋์ง ๋จ๊ณ๋ณ๋ก ์๋ ค์ค์. ํนํ,ย private ๋ณ์,ย getter/setter ๋ฉ์๋๋ฅผ ํ์ฉํด ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ๋ณดํธํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
์บก์ํ๋? [00:00:00]
์บก์ํ๋ ๊ด๋ จ๋ ๋ณ์(๋ฐ์ดํฐ)์ ๋ฉ์๋(๊ธฐ๋ฅ)๋ฅผ ํ๋๋ก ๋ฌถ๊ณ , ์ธ๋ถ์์ ์ง์ ์ ๊ทผํ์ง ๋ชปํ๊ฒ ๋ง๋ ๊ฒ์ ๋งํด์.
โข
์ฝ๊ฒ ๋งํด, ์ค์ํ ์ ๋ณด๋ฅผย ์์(์บก์)ย ์์ ๋ฃ๊ณ , ์์๋ฅผ ์ด ์ ์๋ ์ด์ (๋ฉ์๋)๋ฅผ ํตํด์๋ง ์ ๋ณด๋ฅผ ๊บผ๋ด๊ฑฐ๋ ๋ฐ๊ฟ ์ ์๊ฒ ํ๋ ๊ฑฐ์์.
โข
์ด๋ ๊ฒ ํ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ง์๋๋ก ๋ฐ๋๊ฑฐ๋ ์๋ชป ์ฌ์ฉ๋๋ ๊ฑธ ๋ง์ ์ ์๋ต๋๋ค.
์บก์ํ์ ํต์ฌ - private ๋ณ์์ getter/setter [00:00:28]
โข
๋ณ์๋ค์ย private์ผ๋ก ์ ์ธํด์ ์ธ๋ถ์์ ์ง์ ์ ๊ทผํ์ง ๋ชปํ๊ฒ ํด์.
โข
๋์ ย getter(๊ฐ์ ์ฝ๋ ๋ฉ์๋)์ย setter(๊ฐ์ ์ค์ ํ๋ ๋ฉ์๋)๋ฅผ ๋ง๋ค์ด์, ์ ํด์ง ๊ท์น ์์์๋ง ๋ณ์์ ์ ๊ทผํ๋๋ก ํฉ๋๋ค.
โข
์๋ฅผ ๋ค์ด, ํต์ฅ ์์ก์ ์์๋ก ๋ฐ๊พธ๋ ๊ฑธ ๋ง๊ณ ์ถ๋ค๋ฉด setter ์์ ์กฐ๊ฑด๋ฌธ์ ๋ฃ์ด ์ ํํ ์ ์์ด์.
์ฝ๋๋ก ์บก์ํ ๊ตฌํํ๊ธฐ - Account ํด๋์ค ๋ง๋ค๊ธฐ [00:01:15]
โข
Account๋ผ๋ ํด๋์ค๋ฅผ ๋ง๋ค์ด์ ํต์ฅ ์ ๋ณด๋ฅผ ์ ์ฅํด์.
โข
๋ณ์๋ค์ย private์ผ๋ก ์ ์ธ (์: ์๊ธ์ก, ๊ณ์ข๋ฒํธ, ์ํ๋ช
๋ฑ)
โข
์์ฑ์(Constructor),ย getter์ย setterย ๋ฉ์๋, ๊ทธ๋ฆฌ๊ณ ย toStringย ๋ฉ์๋๋ ๋ง๋ค์ด์ ๊ฐ์ฒด ์ ๋ณด๋ฅผ ์ฝ๊ฒ ํ์ธํ ์ ์๊ฒ ํด์.
โข
์ดํด๋ฆฝ์ค ๊ฐ์ IDE์์๋ ์๋์ผ๋ก getter/setter๋ฅผ ๋ง๋ค์ด์ฃผ๋ ๊ธฐ๋ฅ๋ ์์ผ๋ ํ์ฉํด ๋ณด์ธ์!
Bank ํด๋์ค์์ ์บก์ํ ํ์ฉํ๊ธฐ [00:06:24]
โข
Bankย ํด๋์ค๋ฅผ ๋ง๋ค์ด์ ์ค์ ๋กย Accountย ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์กฐ์ํด ๋ด
๋๋ค.
โข
์ธ๋ถ์์ย privateย ๋ณ์์ ์ง์ ์ ๊ทผํ์ง ๋ชปํ๋, ๋ฐ๋์ setter ๋ฉ์๋๋ฅผ ํตํด์๋ง ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ด์.
โข
์๋ฅผ ๋ค์ด, ๊ณ์ข์ 100๋ง์์ ์
๊ธํ ๋๋ setter๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์๋ชป๋ ๋ฐ์ดํฐ ์ฐจ๋จํ๊ธฐ - setter์์ ๊ฒ์ฆํ๊ธฐ [00:08:51]
โข
setter ๋ฉ์๋ ์์ ์กฐ๊ฑด๋ฌธ์ ๋ฃ์ด, ์์ ๊ธ์ก์ฒ๋ผ ์๋ชป๋ ๊ฐ์ด ๋ค์ด์ค๋ ๊ฑธ ๋ง์ ์ ์์ด์.
โข
์ด๋ ๊ฒ ํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์์ ํ๊ฒ ๋ณดํธ๋๊ณ , ํ๋ก๊ทธ๋จ ์ค๋ฅ๋ ์ค์ผ ์ ์๋ต๋๋ค.
โข
์) "์๊ธ์ก์ ์์๊ฐ ๋ ์ ์์ต๋๋ค!"๋ผ๋ ๋ฉ์์ง๋ฅผ ๋์ฐ๊ณ ๊ฐ์ ๋ณ๊ฒฝํ์ง ์์.
๋ง๋ฌด๋ฆฌ ๋ฐ ์์ฝ [00:11:26]
โข
์บก์ํ๋ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ณ , ์ฝ๋์ ์์ ์ฑ์ ๋์ด๋ ๊ธฐ๋ณธ ์์น์
๋๋ค.
โข
privateย ๋ณ์ +ย getter/setterย ๋ฉ์๋ ์กฐํฉ์ผ๋ก ๊ตฌํํด์.
โข
setter์์ ์กฐ๊ฑด์ ๊ฑธ์ด ๋ฐ์ดํฐ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ๊ฒ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค.
โข
์ด๋ฒ ์์์์ ๋ฐฐ์ด ๋ด์ฉ์ ์ง์ ์ฝ๋ฉํด๋ณด๋ฉด์ ์ตํ๋ฉด, Java ํ๋ก๊ทธ๋๋ฐ ์ค๋ ฅ์ด ์ฅ์ฅ ๋ ๊ฑฐ์์!
์ ๋ฆฌ
์บก์ํ๋ "์ค์ํ ์ ๋ณด๋ฅผ ์์ ํ ์์์ ๋ฃ๊ณ , ์ด์ ๋ฅผ ๊ฐ์ง ์ฌ๋๋ง ์ด ์ ์๊ฒ ํ๋ ๊ฒ"๊ณผ ๊ฐ์์. Java์์๋ย privateย ๋ณ์์ย getter/setterย ๋ฉ์๋๊ฐ ๊ทธ ์ญํ ์ ํ์ฃ . ์ด๋ ๊ฒ ํ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ง์๋๋ก ๋ฐ๋๋ ๊ฑธ ๋ง๊ณ , ํ๋ก๊ทธ๋จ์ด ๋ ํผํผํด์ง๋๋ค. ์ค๋ ๋ฐฐ์ด ๋ด์ฉ์ ํ ๋๋ก ์ง์ ์ฝ๋ฉํด๋ณด์ธ์! ์ฝ๊ณ ์ฌ๋ฏธ์๋ต๋๋ค~ 
๋ ๋ง์ Java ๊ฐ์์ ํ๋ก๊ทธ๋๋ฐ ํ์ ์ฑ๋ ํ๋ ์ด๋ฆฌ์คํธ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์!
๊ฐ์ฌํฉ๋๋ค! 
