๊ฐ์ฒด์ง€ํ–ฅ์˜ ์˜คํ•ด์™€ ์ง„์‹ค (The Misunderstanding and Truth of Object-Oriented Programming)

2023. 3. 3. 06:27ยทBook

์ฑ•ํ„ฐ

  1. ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํƒ„์ƒ๊ณผ ์—ญ์‚ฌ (The Birth and History of Object-Oriented Programming)
  2. ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์˜ ํŠน์ง• (Characteristics of Object-Oriented Languages)
  3. ๊ฐ์ฒด, ํด๋ž˜์Šค, ์ธ์Šคํ„ด์Šค (Objects, Classes, Instances)
  4. ์บก์Аํ™”์™€ ์ •๋ณด ์€๋‹‰ (Encapsulation and Information Hiding)
  5. ์ƒ์† (Inheritance)
  6. ๋‹คํ˜•์„ฑ (Polymorphism)
  7. SOLID ์›์น™ (SOLID Principles)
  8. ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„ (Object-Oriented Design)
  9. ๋””์ž์ธ ํŒจํ„ด (Design Patterns)
  10. ํ…Œ์ŠคํŠธ์™€ ๋””๋ฒ„๊น… (Testing and Debugging)
  11. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (Object-Oriented Programming Languages)
  12. ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Functional Programming and Object-Oriented Programming)
  13. ๊ฐ์ฒด ์ง€ํ–ฅ์˜ ์žฅ๋‹จ์  (Advantages and Disadvantages of Object-Oriented Programming)
  14. ๊ฐ์ฒด ์ง€ํ–ฅ์ ์œผ๋กœ ์ƒ๊ฐํ•˜๊ธฐ (Thinking Object-Oriented)
  15. ๊ฐ์ฒด ์ง€ํ–ฅ์ ์œผ๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ (Solving Problems Object-Oriented)

์ฑ… ์†Œ๊ฐœ

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํ˜„์žฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ถ„์•ผ์—์„œ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํŒจ๋Ÿฌ๋‹ค์ž„ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์ด ๊ฐ์ฒด์ง€ํ–ฅ์— ๋Œ€ํ•ด ์ž˜๋ชป ์ดํ•ดํ•˜๊ณ  ์žˆ๊ฑฐ๋‚˜, ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ๋„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด ์ฑ…์€ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ์˜คํ•ด์™€ ์ง„์‹ค์„ ๋ช…ํ™•ํžˆ ํ•˜๊ธฐ ์œ„ํ•ด ์“ฐ์—ฌ์กŒ์Šต๋‹ˆ๋‹ค.

์ฑ…์—์„œ๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์บก์Аํ™”, ์ƒ์†, ๋‹คํ˜•์„ฑ ๋“ฑ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์ฃผ์š” ํŠน์ง•๋“ค์„ ์ƒ์„ธํžˆ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ SOLID ์›์น™, ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„, ๋””์ž์ธ ํŒจํ„ด ๋“ฑ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ค‘์š”ํ•œ ๊ฐœ๋…๋“ค์„ ์ž์„ธํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ฑ…์€ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์žฅ๋‹จ์ ์„ ๋ถ„์„ํ•˜๊ณ , ๊ฐ์ฒด์ง€ํ–ฅ์ ์œผ๋กœ ์ƒ๊ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐ์ฒด์ง€ํ–ฅ์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‚ดํŽด๋ณด๋ฉด์„œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ณด๋‹ค ์‹ค์šฉ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

 

Chapter 1: ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํƒ„์ƒ๊ณผ ์—ญ์‚ฌ

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ 1960๋…„๋Œ€ ๋ง๋ถ€ํ„ฐ 1970๋…„๋Œ€ ์ดˆ๋ฐ˜์— ๊ฐœ๋ฐœ๋œ ์‹œ๋ฎฌ๋ผ(Simula) ์–ธ์–ด์—์„œ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๋ฎฌ๋ผ๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์˜ ์›์กฐ๋กœ ์•Œ๋ ค์ ธ ์žˆ์œผ๋ฉฐ, ์ดํ›„์—๋Š” ์Šค๋ชฐํ† ํฌ(Smalltalk), ์ž๋ฐ”(Java), C++ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋“ค์ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๊ธฐ์กด์˜ ์ ˆ์ฐจ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋น„ํ•ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ๊ฐ์ฒด์ง€ํ–ฅ์€ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์—ฌ์ค๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์—์„œ๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์ด๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ, ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ๋„ ๋†’์•„์ง‘๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์—์„œ๋Š” ๊ฐ์ฒด๋“ค์ด ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•˜๋ฏ€๋กœ, ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋ฅผ ์ˆ˜์ •ํ•ด๋„ ๋‹ค๋ฅธ ๊ฐ์ฒด๋“ค์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์ง•์œผ๋กœ ์ธํ•ด ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ์ฒด์ง€ํ–ฅ์ด ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋”ฐ๋ผ์„œ ์ด ์ฑ…์—์„œ๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ์˜คํ•ด๋ฅผ ํ•ด์†Œํ•˜๊ณ , ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

 

Chapter 2: ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์˜ ํŠน์ง•

๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋Š” ๊ฐ์ฒด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์–ธ์–ด๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ณตํ†ต์ ์ธ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ํด๋ž˜์Šค(class)์™€ ์ธ์Šคํ„ด์Šค(instance)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์„ค๊ณ„๋„ ์—ญํ• ์„ ํ•˜๋ฉฐ, ์ธ์Šคํ„ด์Šค๋Š” ํด๋ž˜์Šค๋ฅผ ์‹ค์ฒดํ™”ํ•œ ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์—์„œ๋Š” ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์—์„œ๋Š” ์บก์Аํ™”(encapsulation)์™€ ์ •๋ณด ์€๋‹‰(information hiding)์ด ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์บก์Аํ™”๋Š” ๊ฐ์ฒด์˜ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋ฌถ์–ด์„œ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ •๋ณด ์€๋‹‰์€ ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐฉ์‹์„ ์™ธ๋ถ€์—์„œ ๋ณผ ์ˆ˜ ์—†๋„๋ก ์ˆจ๊ธฐ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์—์„œ๋Š” ์ƒ์†(inheritance)๊ณผ ๋‹คํ˜•์„ฑ(polymorphism)๋„ ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์ƒ์†์€ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ํŠน์„ฑ์„ ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ๋ฌผ๋ ค๋ฐ›๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‹คํ˜•์„ฑ์€ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ ํด๋ž˜์Šค์—์„œ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠน์ง•๋“ค์ด ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์˜ ์žฅ์  ์ค‘ ํ•˜๋‚˜๋กœ ๊ผฝํž™๋‹ˆ๋‹ค.

 

Chapter 3: ๊ฐ์ฒด, ํด๋ž˜์Šค, ์ธ์Šคํ„ด์Šค

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๊ฐ์ฒด, ํด๋ž˜์Šค, ์ธ์Šคํ„ด์Šค๊ฐ€ ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด๋Š” ํ˜„์‹ค ์„ธ๊ณ„์˜ ๊ฐœ์ฒด๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ธ๊ณ„๋กœ ์˜ฎ๊ธด ๊ฒƒ์ด๋ฉฐ, ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ‹€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํด๋ž˜์Šค๋ฅผ ๋จผ์ € ์ •์˜ํ•˜๊ณ , ์ด๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์ฒด๋Š” ์†์„ฑ(attribute)๊ณผ ๋ฉ”์„œ๋“œ(method)๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ์†์„ฑ์€ ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด์˜ ๋™์ž‘์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ์—์„œ๋Š” ๊ฐ์ฒด์˜ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ์— ์ ‘๊ทผํ•˜์—ฌ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์„ค๊ณ„๋„ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋Š” ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•˜๊ณ , ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํด๋ž˜์Šค๋ฅผ ๋จผ์ € ์ •์˜ํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ธ์Šคํ„ด์Šค๋Š” ํด๋ž˜์Šค๋ฅผ ์‹ค์ฒดํ™”ํ•œ ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๋ฉด, ์ด ๊ฐ์ฒด๋Š” ํด๋ž˜์Šค์—์„œ ์ •์˜ํ•œ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋Š” ํด๋ž˜์Šค์—์„œ ์ •์˜ํ•œ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ๊ณต์œ ํ•˜์ง€๋งŒ, ๊ฐ๊ฐ์˜ ์ธ์Šคํ„ด์Šค๋Š” ๊ทธ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ˜ธ์ž‘์šฉ์€ ๊ฐ์ฒด ๊ฐ„์˜ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ(message passing)์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ , ์ด๋ฅผ ์ˆ˜์‹ ํ•œ ๊ฐ์ฒด๋Š” ์ด์— ๋Œ€ํ•œ ์‘๋‹ต์„ ๋ณด๋‚ด๋Š” ์‹์œผ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํƒœ ๋ณ€๊ฒฝ์€ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด, ํ•ด๋‹น ๋ฉ”์„œ๋“œ์—์„œ ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ์— ์ด์šฉ๋ฉ๋‹ˆ๋‹ค.

 

Chapter 4: ์บก์Аํ™”์™€ ์ •๋ณด ์€๋‹‰

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์บก์Аํ™”์™€ ์ •๋ณด ์€๋‹‰์ด ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์บก์Аํ™”๋Š” ๊ฐ์ฒด์˜ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋ฌถ์–ด์„œ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์บก์Аํ™”๋Š” ๊ฐ์ฒด๋ฅผ ๋ณดํ˜ธํ•˜๊ณ , ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐฉ์‹์„ ์ˆจ๊ธฐ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์บก์Аํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ์ฒด๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์ฝ”๋“œ์—์„œ๋Š” ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์•Œ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์•Œ ํ•„์š” ์—†์ด ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ์™€ ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„์„ ๋ถ„๋ฆฌ์‹œ์ผœ์„œ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๋Š” ๋ฐ์— ํฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

์ •๋ณด ์€๋‹‰์€ ์บก์Аํ™”์™€ ๋ฐ€์ ‘ํ•œ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๋ณด ์€๋‹‰์€ ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ์ƒํƒœ๋ฅผ ์™ธ๋ถ€์—์„œ ๋ณผ ์ˆ˜ ์—†๋„๋ก ์ˆจ๊ธฐ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ •๋ณด ์€๋‹‰์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ์ƒํƒœ๋ฅผ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด์˜ ์•ˆ์ „์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •๋ณด ์€๋‹‰์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ์ƒํƒœ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€์—์„œ๋Š” ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด์˜ ์•ˆ์ „์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„์ด ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ์™ธ๋ถ€ ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์บก์Аํ™”์™€ ์ •๋ณด ์€๋‹‰์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด์˜ ๋ณดํ˜ธ์™€ ์•ˆ์ „์„ฑ์„ ๋†’์ด๋Š” ๋ฐ์— ํฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐœ๋…์„ ์ž˜ ์ดํ•ดํ•˜๊ณ  ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์•ˆ์ •์ ์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋†’์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Chapter 5: ์ƒ์†๊ณผ ๋‹คํ˜•์„ฑ

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ƒ์†๊ณผ ๋‹คํ˜•์„ฑ์ด ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์ƒ์†์€ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ํŠน์„ฑ์„ ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ๋ฌผ๋ ค๋ฐ›๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ํด๋ž˜์Šค๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๋ชจ๋“  ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ž์‹ ํด๋ž˜์Šค๋Š” ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๊ฑฐ๋‚˜, ๋ณ€๊ฒฝํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹คํ˜•์„ฑ์€ ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ ํด๋ž˜์Šค์—์„œ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋”๋ผ๋„ ๋‹ค๋ฅธ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Chapter 6: ์ถ”์ƒํ™”์™€ ์ธํ„ฐํŽ˜์ด์Šค

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ถ”์ƒํ™”์™€ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์ถ”์ƒํ™”๋Š” ๊ฐ์ฒด์—์„œ ๊ณตํ†ต์ ์ธ ํŠน์„ฑ์„ ์ถ”์ถœํ•˜์—ฌ ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋…์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ถ”์ƒํ™”๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด์˜ ๊ณตํ†ต์ ์„ ํŒŒ์•…ํ•˜์—ฌ ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋…์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค๋Š” ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ , ์œ ์—ฐ์„ฑ์„ ๋†’์ด๋Š” ๋ฐ์— ํฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ์ƒํ˜ธ์ž‘์šฉํ•  ๋•Œ ํ•ด๋‹น ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„์— ๋Œ€ํ•ด ์•Œ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„์„ ๊ฐ์ถค์œผ๋กœ์จ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ถ”์ƒํ™”์™€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ , ์œ ์—ฐ์„ฑ์„ ๋†’์ด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์•ˆ์ •์ ์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋†’์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 7: ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์˜ˆ์™ธ๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์— ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ์˜ˆ์™ธ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์ด ์˜ˆ์™ธ ์ƒํ™ฉ์— ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜๋Š” ๊ฒƒ์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” try-catch ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. try ๋ธ”๋ก์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, catch ๋ธ”๋ก์—์„œ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ •์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์„ ๋†’์ด๋Š” ๋ฐ์— ํฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ ์ ˆํžˆ ์‚ฌ์šฉํ•˜๋ฉด, ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ƒํ™ฉ์— ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ •์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 8: ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์‹œ์— ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๊ณต์œ ๋‚˜ ๊ฒฝ์Ÿ ์ƒํƒœ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋™๊ธฐํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋™๊ธฐํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šค๋ ˆ๋“œ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๊ณต์œ ๋‚˜ ๊ฒฝ์Ÿ ์ƒํƒœ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Chapter 9: ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด์ด ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด์€ ๊ฐ์ฒด์— ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐ์ฒด๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ ๋„ ๊ธฐ์กด ๊ฐ์ฒด์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด์€ ์ƒ์†์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ๊ธฐ์กด ๊ฐ์ฒด์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ์„ ๋†’์ด๋Š” ๋ฐ์— ํฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด์€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ ์ค‘์—์„œ ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™(OCP)์„ ์ง€ํ‚ต๋‹ˆ๋‹ค. ์ฆ‰, ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ ๋„ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐ์ฒด์˜ ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ์ ์šฉํ•˜๋ฉด, ๊ฐ์ฒด์˜ ๊ธฐ๋Šฅ์ด ๋งค์šฐ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š”, ๊ฐ์ฒด์˜ ๋ณต์žก์„ฑ์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ๊ฐ๊ฐ์˜ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๊ฐ€ ๋‹จ์ˆœํ•˜๊ฒŒ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋„๋ก ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Chapter 10: ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ ํŒจํ„ด

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ ํŒจํ„ด์ด ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ ํŒจํ„ด์€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณต์žฅ(factory)์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ์™€ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๋Š” ๋ฐ์— ํฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ ํŒจํ„ด์€ ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ํŒจํ„ด๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ํŒจํ„ด์€ ๊ด€๋ จ๋œ ๊ฐ์ฒด๋“ค์„ ํ•จ๊ป˜ ์ƒ์„ฑํ•˜๋Š” ํŒฉํ† ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด, ๊ด€๋ จ๋œ ๊ฐ์ฒด๋“ค์„ ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ ํŒจํ„ด๊ณผ ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณต์žฅ์„ ๋งŒ๋“ค๊ณ , ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ์™€ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ ํŒจํ„ด๊ณผ ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ํŒจํ„ด์€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ ์ค‘์—์„œ ์˜์กด์„ฑ ์—ญ์ „ ์›์น™(DIP)์„ ์ง€ํ‚ต๋‹ˆ๋‹ค. ์ฆ‰, ์ถ”์ƒํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Chapter 11: MVC ํŒจํ„ด

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” MVC ํŒจํ„ด์ด ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. MVC ํŒจํ„ด์€ ๋ชจ๋ธ(Model), ๋ทฐ(View), ์ปจํŠธ๋กค๋Ÿฌ(Controller)๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ํŒจํ„ด์€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๋Š” ๋ฐ์— ํฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋ธ์€ ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋ทฐ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ชจ๋ธ๊ณผ ๋ทฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ , ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. MVC ํŒจํ„ด์€ ๊ฐ๊ฐ์˜ ์—ญํ• ์„ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ, ๊ฐ๊ฐ์˜ ๋ถ€๋ถ„์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ์กฐ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•˜๊ณ , ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MVC ํŒจํ„ด์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ๋ชจ๋ธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐ๋˜์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋ทฐ๋Š” HTML, CSS, JavaScript ๋“ฑ์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ๋Š” URL ๋งคํ•‘๊ณผ ์š”์ฒญ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

MVC ํŒจํ„ด์€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ ์ค‘์—์„œ ๋‹จ์ผ ์ฑ…์ž„ ์›์น™(SRP)์„ ์ง€ํ‚ต๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์—ญํ• ์„ ๋ถ„๋ฆฌํ•˜์—ฌ, ํด๋ž˜์Šค์˜ ์—ญํ• ์ด ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 12: ์„œ๋น„์Šค ๋กœ์ผ€์ดํ„ฐ ํŒจํ„ด

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์„œ๋น„์Šค ๋กœ์ผ€์ดํ„ฐ ํŒจํ„ด์ด ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋กœ์ผ€์ดํ„ฐ ํŒจํ„ด์€ ์„œ๋น„์Šค๋ฅผ ์ฐพ์•„์ฃผ๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋กœ์ผ€์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ์„œ๋น„์Šค์˜ ์œ„์น˜๋ฅผ ์ค‘์•™ ์ง‘์ค‘์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๋กœ์ผ€์ดํ„ฐ ํŒจํ„ด์€ ์˜์กด์„ฑ ์—ญ์ „ ์›์น™(DIP)์„ ์ง€ํ‚ค๋Š” ๋ฐ์— ํฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด๊ฐ€ ์ง์ ‘ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ฐธ์กฐํ•˜๋ฉด, ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’์•„์ ธ ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋กœ์ผ€์ดํ„ฐ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐ์ฒด๊ฐ€ ์ง์ ‘ ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ฐธ์กฐํ•˜์ง€ ์•Š๊ณ , ์„œ๋น„์Šค ๋กœ์ผ€์ดํ„ฐ๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค๋ฅผ ์ฐพ์•„์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๋กœ์ผ€์ดํ„ฐ ํŒจํ„ด์€ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ˆ˜๋งŽ์€ ์„œ๋น„์Šค๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ์ด๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ค‘์•™ ์ง‘์ค‘์ ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋กœ์ผ€์ดํ„ฐ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด, ์„œ๋น„์Šค์˜ ์œ„์น˜๋ฅผ ์ค‘์•™ ์ง‘์ค‘์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ , ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๋กœ์ผ€์ดํ„ฐ ํŒจํ„ด์€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ ์ค‘์—์„œ ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™(ISP)์„ ์ง€ํ‚ต๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๋กœ์ผ€์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ๊ฐ์ฒด์™€ ์„œ๋น„์Šค ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ณ , ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 13: ์ปค๋งจ๋“œ ํŒจํ„ด

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ปค๋งจ๋“œ ํŒจํ„ด์ด ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์ปค๋งจ๋“œ ํŒจํ„ด์€ ์‹คํ–‰ํ•  ๊ธฐ๋Šฅ์„ ์บก์Аํ™”ํ•˜์—ฌ ๊ฐ์ฒด๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹คํ–‰ํ•  ๊ธฐ๋Šฅ์„ ๊ฐ์ฒด๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค๋งจ๋“œ ํŒจํ„ด์€ ์‹คํ–‰ํ•  ๊ธฐ๋Šฅ์„ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ •์˜ํ•˜๊ณ , ์‹คํ–‰ํ•  ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฅธ ๊ฐ์ฒด์— ์ „๋‹ฌํ•˜๋ฉด, ์ „๋‹ฌ๋ฐ›์€ ๊ฐ์ฒด๋Š” ์‹คํ–‰ํ•  ๊ธฐ๋Šฅ์„ ๊ฐ์ฒด์— ์ €์žฅํ•˜๊ณ , ํ•„์š”ํ•  ๋•Œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹คํ–‰ํ•  ๊ธฐ๋Šฅ์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค๋งจ๋“œ ํŒจํ„ด์€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ ์ค‘์—์„œ ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™(OCP)์„ ์ง€ํ‚ต๋‹ˆ๋‹ค. ์‹คํ–‰ํ•  ๊ธฐ๋Šฅ์„ ์บก์Аํ™”ํ•˜์—ฌ ๊ฐ์ฒด๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ, ์‹คํ–‰ํ•  ๊ธฐ๋Šฅ์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค๋งจ๋“œ ํŒจํ„ด์€ ํžˆ์Šคํ† ๋ฆฌ ๊ด€๋ฆฌ, ์ทจ์†Œ ๊ธฐ๋Šฅ, ๋‹ค์ค‘ ์‹คํ–‰ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”์šฑ ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 14: ์˜ต์ €๋ฒ„ ํŒจํ„ด

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์˜ต์ €๋ฒ„ ํŒจํ„ด์ด ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์˜ต์ €๋ฒ„ ํŒจํ„ด์€ ๊ฐ์ฒด์˜ ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•˜๊ณ , ์ด์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๊ฐ์ฒด๋“ค์—๊ฒŒ ํ†ต์ง€ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๋“ค ๊ฐ„์— ๋А์Šจํ•œ ๊ฒฐํ•ฉ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ต์ €๋ฒ„ ํŒจํ„ด์€ ํ•œ ๊ฐ์ฒด๊ฐ€ ๋‹ค์ˆ˜์˜ ๊ฐ์ฒด์—๊ฒŒ ์ž์‹ ์˜ ์ƒํƒœ๋ฅผ ์•Œ๋ฆฌ๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ, ์ƒํƒœ๋ฅผ ๊ฐ์‹œํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์˜ต์ €๋ฒ„(observer)๋ผ ํ•˜๊ณ , ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์„œ๋ธŒ์ ํŠธ(subject)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ต์ €๋ฒ„ ํŒจํ„ด์€ ์„œ๋ธŒ์ ํŠธ์™€ ์˜ต์ €๋ฒ„ ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ธฐ ๋•Œ๋ฌธ์—, ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๋Š” ๋ฐ์— ํฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

์˜ต์ €๋ฒ„ ํŒจํ„ด์€ ์ž๋ฐ”์—์„œ๋Š” ์ž๋ฐ” ๋นˆ์ฆˆ ์ปดํฌ๋„ŒํŠธ ๋ชจ๋ธ์—์„œ๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ž๋ฐ” ๋นˆ์ฆˆ ์ปดํฌ๋„ŒํŠธ ๋ชจ๋ธ์—์„œ๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฐ์ฒด๋ฅผ ์ด๋ฒคํŠธ ์†Œ์Šค(event source)๋ผ ํ•˜๊ณ , ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ(event listener)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ต์ €๋ฒ„ ํŒจํ„ด์€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ ์ค‘์—์„œ ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™(OCP)์„ ์ง€ํ‚ต๋‹ˆ๋‹ค. ์ฆ‰, ์„œ๋ธŒ์ ํŠธ์™€ ์˜ต์ €๋ฒ„๋Š” ์„œ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Chapter 15: ์ „๋žต ํŒจํ„ด

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ „๋žต ํŒจํ„ด์ด ์ค‘์š”ํ•œ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์ „๋žต ํŒจํ„ด์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์บก์Аํ™”ํ•˜์—ฌ, ์‹คํ–‰ ์‹œ๊ฐ„์— ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์˜ ์œ ์—ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „๋žต ํŒจํ„ด์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์บก์Аํ™”ํ•˜์—ฌ, ์‹คํ–‰ ์‹œ๊ฐ„์— ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์˜ ์œ ์—ฐ์„ฑ์„ ๋†’์ด๊ณ , ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „๋žต ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด, ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์บก์Аํ™”ํ•˜์—ฌ, ์œ ์—ฐํ•œ ์„ค๊ณ„๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „๋žต ํŒจํ„ด์€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™ ์ค‘์—์„œ ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™(OCP)์„ ์ง€ํ‚ต๋‹ˆ๋‹ค. ์ฆ‰, ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์บก์Аํ™”ํ•˜์—ฌ, ์ƒˆ๋กœ์šด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜, ๊ธฐ์กด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜์ •ํ•  ๋•Œ, ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ , ์ƒˆ๋กœ์šด ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „๋žต ํŒจํ„ด์€ ๋‹คํ˜•์„ฑ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•œ ๊ฐ์ฒด๋Š” ๋ชจ๋‘ ๊ฐ™์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉฐ, ์‹คํ–‰ ์‹œ๊ฐ„์— ์ ์ ˆํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹คํ–‰ ์‹œ๊ฐ„์— ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ”„๋กœ๊ทธ๋žจ์˜ ์œ ์—ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „๋žต ํŒจํ„ด์€ ์ž๋ฐ”์—์„œ๋Š” ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ๋•Œ, Comparator ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „๋žต ํŒจํ„ด์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์ข…ํ•ฉ์ ์œผ๋กœ, ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์˜คํ•ด์™€ ์ง„์‹ค ์ฑ…์€ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฐœ๋…๊ณผ ์›์น™์„ ์„ค๋ช…ํ•˜๊ณ , ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜คํ•ด์™€ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ง„์‹ค์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฑ…์€ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์ดˆ๋ณด์ž๋ถ€ํ„ฐ, ์ „๋ฌธ๊ฐ€๊นŒ์ง€ ๋ชจ๋‘ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ฑ…์œผ๋กœ, ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๋†’์ด๋Š” ๋ฐ์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

Chapter 16: ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ์ฒด๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋ณธ๋‹ค๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ์ด ๋•Œ, ๊ฐ์ฒด๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฉ”์„œ๋“œ(method)๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ์บก์Аํ™”ํ•˜์—ฌ, ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์˜ ์ ˆ์ฐจ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ๋Š” ๋‹ฌ๋ฆฌ, ๊ฐ์ฒด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ƒ์†, ์บก์Аํ™”, ๋‹คํ˜•์„ฑ์ด๋ผ๋Š” ์„ธ ๊ฐ€์ง€ ๊ฐœ๋…์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์†์€ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์ž์‹ ํด๋ž˜์Šค๊ฐ€ ๋ฌผ๋ ค๋ฐ›๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์บก์Аํ™”๋Š” ๋ฐ์ดํ„ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๋ฌถ์–ด, ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‹คํ˜•์„ฑ์€ ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

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

์ข…ํ•ฉ์ ์œผ๋กœ, ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์€ ๋ฐ์ดํ„ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ์บก์Аํ™”ํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ฐ์ฒด ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ์— ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

Chapter 17: ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์˜คํ•ด

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ ๊ทน์ ์ธ ์„ค๊ณ„์™€ ๊ณ„ํš์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ฐ์ฒด์ง€ํ–ฅ์„ ์˜คํ•ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๋ฉด, ์ฝ”๋“œ์˜ ๋ณต์žก๋„๊ฐ€ ๋†’์•„์ง€๊ณ , ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…์ธ ์บก์Аํ™”, ์ƒ์†, ๋‹คํ˜•์„ฑ์„ ์ž˜๋ชป ์ดํ•ดํ•˜๋ฉด, ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ž˜๋ชป ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์บก์Аํ™”๋ฅผ ์™„์ „ํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์œผ๋ฉด, ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์™ธ๋ถ€์—์„œ ์ง์ ‘ ์ˆ˜์ •๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ธฐ๋ณธ ์›์น™์„ ์œ„๋ฐฐํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ, ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ƒ์†์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ƒ์†์„ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๋ฉด, ๊ณ„์ธต ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•ด์ง€๊ณ , ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋‹คํ˜•์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹คํ˜•์„ฑ์„ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๋ฉด, ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด์ง€๊ณ , ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ข…ํ•ฉ์ ์œผ๋กœ, ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์˜คํ•ด๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ž˜๋ชป ์‚ฌ์šฉํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์˜คํ•ด๋ฅผ ์ดํ•ดํ•˜๊ณ , ์˜ฌ๋ฐ”๋ฅธ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ , ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ์— ํฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

Chapter 18: ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์ง„์‹ค

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ ๊ทน์ ์ธ ์„ค๊ณ„์™€ ๊ณ„ํš์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ฐ์ฒด์ง€ํ–ฅ์„ ์˜คํ•ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด, ์ฝ”๋“œ์˜ ๋ณต์žก๋„๋ฅผ ๋‚ฎ์ถ”๊ณ , ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…์ธ ์บก์Аํ™”, ์ƒ์†, ๋‹คํ˜•์„ฑ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด, ์ฝ”๋“œ์˜ ๋ณต์žก๋„๋ฅผ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์บก์Аํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ์บก์Аํ™”ํ•˜์—ฌ, ์™ธ๋ถ€์—์„œ ์ง์ ‘ ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๊ณ , ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, ์ƒ์†์„ ์‚ฌ์šฉํ•˜๋ฉด, ๊ณตํ†ต๋œ ์ฝ”๋“œ๋ฅผ ๋ถ€๋ชจ ํด๋ž˜์Šค์— ์ž‘์„ฑํ•˜๊ณ , ์ž์‹ ํด๋ž˜์Šค์—์„œ ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์ค‘๋ณต์„ ์ค„์ด๊ณ , ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, ๋‹คํ˜•์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด, ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ์„ ๋†’์ด๊ณ , ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ , ์ƒˆ๋กœ์šด ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด, ์ฝ”๋“œ์˜ ๋ณต์žก๋„๋ฅผ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ , ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ์— ํฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ค๋Š” ๋ฐ์—๋„ ํฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

์ข…ํ•ฉ์ ์œผ๋กœ, ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์ง„์‹ค์€ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด, ์ฝ”๋“œ์˜ ๋ณต์žก๋„๋ฅผ ๋‚ฎ์ถ”๊ณ , ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์ง„์‹ค์„ ์ดํ•ดํ•˜๊ณ , ์ ๊ทน์ ์ธ ์„ค๊ณ„์™€ ๊ณ„ํš์„ ํ†ตํ•ด ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๊ฐœ๋ฐœ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ค๊ณ , ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ด๋Š” ๋ฐ์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

 

Chapter 19: ์ „๋žต ํŒจํ„ด

์ „๋žต ํŒจํ„ด์€ ๊ฐ์ฒด์ง€ํ–ฅ ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๋กœ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ •์˜ํ•˜๊ณ , ๊ฐ๊ฐ์„ ์บก์Аํ™”ํ•˜์—ฌ, ์„œ๋กœ ๊ต์ฒด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ ๋งŒ๋“œ๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์ „๋žต ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋ฉด, ์‹คํ–‰ ์ค‘์— ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์œ ์—ฐ์„ฑ์„ ๋†’์ด๋Š” ๋ฐ์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ „๋žต ํŒจํ„ด์€ ์บก์Аํ™”์™€ ๋‹คํ˜•์„ฑ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•œ ๊ฐ์ฒด๋Š” ๋ชจ๋‘ ๊ฐ™์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉฐ, ์‹คํ–‰ ์‹œ๊ฐ„์— ์ ์ ˆํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‹คํ–‰ ์‹œ๊ฐ„์— ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ํ”„๋กœ๊ทธ๋žจ์˜ ์œ ์—ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „๋žต ํŒจํ„ด์€ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋‹คํ˜•์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์˜ ์ข‹์€ ์˜ˆ์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์‹คํ–‰ ์ค‘์— ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ์„ ๋†’์ด๊ณ , ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ , ์ƒˆ๋กœ์šด ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ „๋žต ํŒจํ„ด์€ ์ž๋ฐ”์—์„œ๋Š” ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋Š” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ๋•Œ, Comparator ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „๋žต ํŒจํ„ด์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

์ข…ํ•ฉ์ ์œผ๋กœ, ์ „๋žต ํŒจํ„ด์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์บก์Аํ™”ํ•˜์—ฌ, ์‹คํ–‰ ์ค‘์— ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์ „๋žต ํŒจํ„ด์€ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋‹คํ˜•์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์ข‹์€ ์˜ˆ์ž…๋‹ˆ๋‹ค. ์ „๋žต ํŒจํ„ด์„ ์ดํ•ดํ•˜๊ณ , ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด, ํ”„๋กœ๊ทธ๋žจ์˜ ์œ ์—ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

728x90
'Book' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํŠธ๋ Œ๋“œ ์ฝ”๋ฆฌ์•„ 2024] ํ˜ธ๋ชจ ํ”„๋กฌํ”„ํŠธ(Rise of ‘Homo Promptus’ )
  • ํŠธ๋ Œ๋“œ ์ฝ”๋ฆฌ์•„ 2024 ๋ชฉ์ฐจ
  • [ํŠธ๋ Œ๋“œ ์ฝ”๋ฆฌ์•„ 2024] ๋ถ„์ดˆ์‚ฌํšŒ(Don't Waste a Single Second:Time-Efficient Society) ์š”์•ฝ
  • Kotlin in Action
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
์ผ์ƒ, ๊ฒŒ์ž„, ๋ง›์ง‘, ์—ฌํ–‰, ๊ฐœ๋ฐœ, IT ๋ธ”๋กœ๊ทธ๐Ÿงž
  • ์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
    ์š”์ˆ  ๋žจํ”„๐Ÿซ–
    ์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • All (549)
      • Languages (57)
        • JAVA (13)
        • JSP (1)
        • C_C++ (4)
        • Html (3)
        • CSS (1)
        • JavaScript (18)
        • Python (3)
        • Kotlin (13)
        • TypeScript (1)
      • Framework (14)
        • spring (11)
        • jstl (1)
        • angular (2)
      • Tool (28)
        • Eclipse (5)
        • vsCode (3)
        • scrcpy (2)
        • Git (1)
        • IntelliJ (6)
        • Visual-studio (1)
        • UML (1)
        • Gradle (8)
      • DB (6)
        • Oracle (1)
        • MySql (3)
        • Mongo (2)
      • OS (14)
        • Linux (2)
        • Windows (12)
      • Server (8)
        • Tomcat (1)
        • Apache (1)
        • Node.js (6)
      • Programmings (25)
        • Design Pattern (2)
        • Funny (20)
        • Algorithms (3)
      • Cloud (8)
        • Docker (1)
        • Kubernetes (4)
        • Istio (1)
        • ArgoCD (2)
      • IT (5)
        • gRPC (3)
        • RESTful (3)
        • Web UI (5)
        • AI (4)
      • Book (6)
      • TIP (187)
      • Life (53)
      • Game (83)
      • Storage (22)
      • ์‹๋‹น (15)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ์‚ฌ์ดํŠธ๋งต
    • RSS
    • ๊ธฐํƒ€ ์†Œ๋“
  • ๋งํฌ

    • ๊ตฌ๊ธ€
    • ๋„ค์ด๋ฒ„
    • ์ •๋ถ€24
    • Spring Framework ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • Kotlin ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • ์นด์นด์˜ค ์• ๋“œํ•
    • ๋ธ”๋กœ๊ทธ ์‚ฌ์ดํŠธ๋งต
    • ๋ธ”๋กœ๊ทธ RSS
  • ๊ณต์ง€์‚ฌํ•ญ

    • ์•ˆ๋…•ํ•˜์„ธ์š”
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋‰ด์Šค ๋ธŒ๋ฆฌํ•‘
    ํƒœ๊ตญ
    ๋‰ด์Šค
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ์™€์ผ์ฆˆ
    ๋ธŒ๋ฆฌํ•‘
    ํ•œ๋ˆˆ์— ๋ณด๋Š” ์˜ค๋Š˜์˜ ๋‰ด์Šค
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ๋‚˜์šฐ
    ์˜ค๋Š˜์˜๋‰ด์Šค
    ๋ฐ์ผ๋ฆฌ ๋‰ด์Šค
    ํ€˜์ŠคํŠธ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
๊ฐ์ฒด์ง€ํ–ฅ์˜ ์˜คํ•ด์™€ ์ง„์‹ค (The Misunderstanding and Truth of Object-Oriented Programming)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”