Search

Java ์บก์Аํ™”

Java ์บก์Аํ™” ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ!

์ด๋ฒˆ ์˜์ƒ์€ Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ๊ฐœ๋…์ธ **์บก์Аํ™”(Encapsulation)**๋ฅผ ์‰ฝ๊ณ  ์นœ์ ˆํ•˜๊ฒŒ ์„ค๋ช…ํ•ด ์ค๋‹ˆ๋‹ค. ์บก์Аํ™”๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์™œ ํ•„์š”ํ•œ์ง€, ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ์ฝ”๋“œ๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€ ๋‹จ๊ณ„๋ณ„๋กœ ์•Œ๋ ค์ค˜์š”. ํŠนํžˆ,ย private ๋ณ€์ˆ˜,ย getter/setter ๋ฉ”์†Œ๋“œ๋ฅผ ํ™œ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

1.
์บก์Аํ™”๋ž€? [00:00:00]
2.
์บก์Аํ™”์˜ ํ•ต์‹ฌ - private ๋ณ€์ˆ˜์™€ getter/setter [00:00:28]
3.
์ฝ”๋“œ๋กœ ์บก์Аํ™” ๊ตฌํ˜„ํ•˜๊ธฐ - Account ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ [00:01:15]
4.
Bank ํด๋ž˜์Šค์—์„œ ์บก์Аํ™” ํ™œ์šฉํ•˜๊ธฐ [00:06:24]
5.
์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ ์ฐจ๋‹จํ•˜๊ธฐ - setter์—์„œ ๊ฒ€์ฆํ•˜๊ธฐ [00:08:51]
6.
๋งˆ๋ฌด๋ฆฌ ๋ฐ ์š”์•ฝ [00:11:26]

์บก์Аํ™”๋ž€? [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 ๊ฐ•์˜์™€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒ์€ ์ฑ„๋„ ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”!
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!