๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

OOP

(3)
[Design Pattern] Observer Pattern Observer Pattern ํŒจํ„ด์˜ ๋ถ„๋ฅ˜ : ํ–‰์œ„ํŒจํ„ด ํŒจํ„ด์˜ ๋ชฉ์  : This pattern defines a one-to-many dependency between objects so that when one object changes state, all of its dependents are notified and updated automatically. – GoF – ํŒจํ„ด์˜ ์ ์šฉ RSS Feed: ์›น ์‚ฌ์ดํŠธ๋“ค์€ ์ƒˆ๋กœ์šด ์ •๋ณด๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ธก์—๊ฒŒ ์ž๋™ ํ†ต๋ณดํ•˜์—ฌ ์คŒ Facebook๊ณผ ๊ฐ™์€ ๋งŽ์€ SNS์˜ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ๊ธ€์„ ๊ฒŒ์‹œํ•˜๋ฉด ๊ทธ ๊ฒŒ์‹œ์ž์˜ ๋ชจ๋“  follower์—๊ฒŒ ์ž๋™ ํ†ต๋ณดํ•˜์—ฌ ์คŒ GUI ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์‚ฌ๊ฑด ์†Œ์Šค์— ์‚ฌ๊ฑด ๊ฒฝ์ฒญ์ž๋ฅผ ๋“ฑ๋กํ•˜์—ฌ ์‚ฌ๊ฑด์ด ๋ฐœ์ƒํ•˜์˜€์„ ๋•Œ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋ณดํ†ต ํ•˜๋‚˜์˜..
[OOP] ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›๋ฆฌ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›๋ฆฌ 1. SOLID SOLID๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ ์›๋ฆฌ ์ค‘ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋‹ค์„ฏ๊ฐ€์ง€ ์›๋ฆฌ SRP(Single Responsibility Principle), OCP(Open-Closed Principle), LSP(LIskov Substitution Principle), ISP(Interface Substitution Principle), DIP(Dependency Inversion Principle)๋ฅผ ๋งํ•œ๋‹ค. 1.1 SRP ๋‹จ์ผ ์ฑ…์ž„ ์›๋ฆฌ A class should have only one reason to change. ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์„ค๊ณ„ ์›๋ฆฌ ์ค‘ ํ•˜๋‚˜๋Š” ๋ชจ๋“ˆ์€ ์‘์ง‘์„ฑ์ด ๋†’์•„์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. (high-cohesion) ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ธฐ๋ณธ ๋ชจ๋“ˆ์€ ํด๋ž˜์Šค์ด๋‹ค. SRP์—..
[OOP]๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ 1. ์—ญ์‚ฌ ๊ฐ์ฒด์ง€ํ–ฅ(OO, Object-Oriented) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์ง€๋ฐฐ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž๋ฆฌ์žก๊ธฐ ์ด์ „์— ๋„๋ฆฌ ์‚ฌ์šฉ๋œ ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” FORTRAN, COBOL ๋“ฑ์ด๋‹ค. C ์–ธ์–ด๋Š” 1972๋…„์— Bell Labs์˜ Dennis Ritchie๊ฐ€ ๊ฐœ ๋ฐœํ•œ ๋ฒ”์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. C ํ‘œ์ค€์€ 1983๋…„์— ์‹œ์ž‘๋˜์–ด 1988๋…„์— ์ฒ˜์Œ์œผ๋กœ ํ‘œ์ค€ํ™”๋˜์—ˆ์œผ๋ฉฐ, ์ด๋ฅผ ANSI C ๋˜๋Š” ISO C๋ผ ํ•œ๋‹ค. ๊ทธ ์ดํ›„ C99, C11์œผ๋กœ ํ‘œ์ค€์ด ์ผ๋ถ€ ๊ฐœ์„ ๋˜์—ˆ๋‹ค. C ์–ธ์–ด๋Š” ์šด์˜์ฒด์ œ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ์–ธ์–ด๋กœ ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด์ง€๋งŒ ํ•˜๋“œ์›จ์–ด์™€ ๋ฐ€์ ‘ํ•œ ์ˆ˜์ค€์˜ ์š”์†Œ๋„ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ๋˜ํ•œ ๋‹น์‹œ ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ์‘์šฉ์ด ๋งค์šฐ ์ œํ•œ์ ์ด์—ˆ๋‹ค. ์ง€๊ธˆ์˜ 4์ฐจ ์‚ฐ์—…ํ˜๋ช…, ..