1. ์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ์ฐจ์ด


์˜ค๋ฒ„๋กœ๋”ฉ: ํ•จ์ˆ˜์˜ ์ด๋ฆ„์€ ๊ฐ™์€๋ฐ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋จ.


์˜ค๋ฒ„๋ผ์ด๋”ฉ: ์ƒ์†๊ด€๊ณ„์—์„œ ๋ถ€๋ชจ์˜ ๋ฉ”์„œ๋“œ ๋ง๊ณ  ์ž์‹ ์ „์šฉ์œผ๋กœ ์ƒˆ๋กœ ์žฌ์ •์˜ ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š”๊ฑฐ


2. ์ถ”์ƒํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค ์ฐจ์ด


์ถ”์ƒ ํด๋ž˜์Šค๋Š” ๋‚ด๋ถ€์— ํ•จ์ˆ˜ ์ •์˜๋ฅผ ๋‚ด๋ฆด ์ˆœ ์žˆ๋Š”๋ฐ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ถˆ๊ฐ€๋Šฅ


๋ชจ๋“  ๋ฉ”์„œ๋“œ๊ฐ€ ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฉด ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋จ.


3. ์ œ๋„ค๋ฆญ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์‹œ์˜ค


์ปจํ…Œ์ด๋„ˆ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ ๋˜๋‹ˆ๊นŒ List ๋ฅผ ์˜ˆ๋กœ ์„ค๋ช…ํ•˜์ž๋ฉด


List๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ํด๋ž˜์Šค์ด๊ณ  ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๋Š”๋ฐ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋งˆ๋‹ค ๋”ฐ๋กœ ๊ตฌํ˜„์„ ํ•ด์ฃผ๋ฉด ์ฝ”๋“œ ์ค‘๋ณต์ด ์ƒ๊ธฐ๋ฏ€๋กœ


List<T> ์ด๋Ÿฐ ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๋ฐ˜ํ™” ์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ


4. ์บก์Аํ™”, ์ƒ์†, ์ถ”์ƒํ™”, ๋‹คํ˜•์„ฑ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์‹œ์˜ค


์บก์Аํ™”: ๋ฐ์ดํ„ฐ๋“ค์„ private ๋กœ ์„ ์–ธํ•˜๊ณ  getter, setter ๋ฅผ public ์œผ๋กœ ์„ ์–ธํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ

๊ทผ๋ฐ ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ ์ฑ…์—์„œ OOP ์–ธ์–ด์—์„œ ์™„๋ฒฝํ•œ ์บก์Аํ™”๋Š” ์—†๋‹ค๊ณ  ๋‚˜์˜ค๋”๋ผ


getter, setter ๋ฅผ ์จ์„œ ์ด๋“์ธ ์ ์ด๋ผ๋ฉด ๋งŒ์•ฝ ์ž˜๋ชป๋œ ๊ฐ’์ด ๋Œ€์ž… ๋  ์ˆ˜ ์žˆ์œผ๋‹ˆ ๊ฐ’์„ ์ฒดํฌ ํ•ด์•ผ ํ•  ๋•Œ

๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ ‘๊ทผํ•˜๋ฉด ์ ‘๊ทผ ํ•˜๋Š” ์œ„์น˜๋งˆ๋‹ค ๊ฐ’์„ ์ฒดํฌ ํ•ด์•ผํ•˜๋Š”๋ฐ

setter ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด setter ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ๊ฐ’์„ ์ฒดํฌํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•ด์„œ ์ค‘๋ณต์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Œ.


์ƒ์†: ์˜ˆ์ œ๋กœ ์„ค๋ช…ํ•˜์ž๋ฉด NPC ๋ฅผ ๋งŒ๋“ค ๋•Œ NPC ๋“ค๋งˆ๋‹ค ํ€˜์ŠคํŠธ ๋‚ด์šฉ์€ ๋‹ฌ๋ผ๋„ย ํ€˜์ŠคํŠธ๋ฅผ ์ฃผ๋Š” ํ–‰์œ„ ์ž์ฒด๋Š” ๊ณตํ†ต์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋‹ˆ ์ด๊ฑธ ์ƒ์†๋ฐ›์•„์„œ ํ•จ๊ป˜ ์“ฐ์ž๋Š” ๊ฒƒ.


์ถ”์ƒํ™”: ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ•˜๋Š”๊ฒŒ ์ด๊ฑฐ. ์•„์ด์œ , ์‹ธ์ด๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ฐ€์ˆ˜๋ž‘ ์‚ฌ๋žŒ์ด๋ผ๋Š” ํŠน์ง•๋งŒ์„ ๋ฝ‘์•„์„œ ์ถ”์ƒํ™” ์‹œํ‚ค๋Š”๊ฑฐ


๋‹คํ˜•์„ฑ: ํ•œ ๊ฐ์ฒด๊ฐ€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํƒ€์ž…์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š”๊ฑฐ. ๋ถ€๋ชจ๋ฅผ ์ƒ์†๋ฐ›๋Š” ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค๊ณ ํ•˜๋ฉด ๋ถ€๋ชจ๋Š” ๋ถ€๋ชจ์™€ ์ž์‹์œผ๋กœ ์ •์˜๋  ์ˆ˜ ์žˆ๊ณ , ์ž์‹์€ ์ž์‹์œผ๋กœ๋งŒ ์ •์˜๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‚ด์šฉ


5. Call by Ref, Call by Value


๊ฐ’์ „๋‹ฌ, ์ฃผ์†Œ ์ „๋‹ฌ. C++ ๊ฐ™์€ ๊ฒฝ์šฐ์—” ์–ด๋–ค ๊ฐ’์ด๋“  ํ•จ์ˆ˜๋กœ ์ „๋‹ฌํ•˜๋ฉด R-Value ๋กœ ์ƒ์„ฑ์‹œ์ผœ์„œ ๊ทธ๊ฑธ ์ด์šฉํ•˜๋Š”๋ฐ ์ด R-Value๋ฅผ ์‹ค์ œ ๊ฐ’์œผ๋กœ ํ•˜๋ฉด


๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑ์‹œํ‚ค๋Š”๋ฐ ๋„ˆ๋ฌด ํฐ ๋น„์šฉ์ด ๋“ค์–ด๊ฐ€๋‹ˆ๊นŒ ์ฃผ์†Œ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ๋„ฃ์–ด์„œ ๊ทธ ์ฃผ์†Œ๋ฅผ ํƒ€๊ณ  ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•ด์„œ ์ตœ์ ํ™”ํ•˜๋Š” ์ผ์ด ๊ฐ€๋Šฅํ•จ.


6. ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ์™€ ๋ฐฐ์—ด๊ณผ์˜ ์ฐจ์ด


๋ฐฐ์—ด์€ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ๋‚˜๋ž€ํžˆ ๋ฐฐ์น˜๋˜์–ด ์žˆ๋Š”๊ฑฐ๊ณ  ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ๋Š” ํ•œ ๊ฐ์ฒด๊ฐ€ ๋‹ค์Œ ๋ฒˆ์งธ ๊ฐ์ฒด ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ ์ฒด์ธ ์ฒ˜๋Ÿผ ์ด์–ด์ ธ์žˆ๋Š”๊ฑฐ


์ง์ ‘ ์ ‘๊ทผ ์ž์ฒด๋Š” ๋ฐฐ์—ด์ด ๋” ๋น ๋ฅธ๋ฐ ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…, ์‚ญ์ œ๊ฐ€ ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ ๋ฐฐ์—ด์€ ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ๋’ค์—์žˆ๋Š” ๊ฐ’๋“ค์„ ์•ž์œผ๋กœ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ๋’ค๋กœ ์ด๋™ํ•˜๋Š”๋“ฑ


๊ณผ์ •์ด ๋” ์ถ”๊ฐ€๋˜๋Š”๋ฐ ๋ฐ˜๋ฉด ๋งํฌ๋“œ๋ฆฌ์ŠคํŠธ๋Š” ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ๋งŒ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋œ๋‹ค๋Š” ์ ์ด ๋Œ€ํ‘œ์ ์ธ ์ฐจ์ด