[ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์ด๋ž€?

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„(Programming Paradigm)์ด๋ž€? ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ด€์ ์„ ๊ฐ–๊ฒŒ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ : ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์ด ํ”„๋กœ๊ทธ๋žจ์„ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๊ฐ์ฒด๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฐ˜๋ฉด์—, ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ : ์ƒํƒœ ๊ฐ’์„ ์ง€๋‹ˆ์ง€ ์•Š์€ ํ•จ์ˆ˜ ๊ฐ’๋“ค์˜ ์—ฐ์†์œผ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์„ ์–ธํ˜•๊ณผ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Declarative Programming)์ด๋ž€ "๋ฌด์—‡์„" ํ’€์–ด๋‚ด๊ฐ€๋Š”๊ฐ€์— ์ง‘์ค‘ํ•˜๋Š” ํŒจ๋Ÿฌ๋‹ค์ž„์ด๋ฉฐ, "ํ”„๋กœ๊ทธ๋žจ์€ ํ•จ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฒƒ์ด๋‹ค"๋ผ๋Š” ๋ช…์ œ๊ฐ€ ๋‹ด๊ฒจ ์žˆ๋Š” ํŒจ๋Ÿฌ๋‹ค์ž„์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด JavaScript๋กœ ์ž์—ฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์—์„œ ์ตœ๋Œ€๊ฐ’์„ ์ฐพ์„๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. const ret = [1, 2, 3, 4..

CS/Design Pattern 2022. 10. 1. 16:19
[JavaScript] ํ”„๋กœํ† ํƒ€์ž…

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ช…๋ นํ˜•, ํ•จ์ˆ˜ํ˜•, ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›ํ•˜๋Š” ๋ฉ€ํ‹ฐ ํŒจ๋Ÿฌ๋‹ค์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. C++๋‚˜ ์ž๋ฐ”์™€ ๊ฐ™์€ ํด๋ž˜์Šค ๊ธฐ๋ฐ˜ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ณด๋‹ค ํšจ์œจ์ ์ด๋ฉฐ ๋” ๊ฐ•๋ ฅํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Šฅ๋ ฅ์„ ์ง€๋‹ˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ช…๋ น์–ด ๋˜๋Š” ํ•จ์ˆ˜์˜ ๋ชฉ๋ก์œผ๋กœ ๋ณด๋Š” ์ „ํ†ต์ ์ธ ๋ช…๋ นํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ ˆ์ฐจ์ง€ํ–ฅ์  ๊ด€์ ์—์„œ ๋ฒ—์–ด๋‚˜ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ์  ๋‹จ์œ„, ์ฆ‰ ๊ฐ์ฒด์˜ ์ง‘ํ•ฉ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ํ‘œํ˜„ํ•˜๋ ค๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์ž…๋‹ˆ๋‹ค. // ์ด๋ฆ„๊ณผ ์ฃผ์†Œ ์†์„ฑ์„ ๊ฐ–๋Š” ๊ฐ์ฒด const person = { name: 'Lee', address: 'Seoul' }; const circle = { radius: 5, getDiameter() { return 2 * radi..