ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

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

ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ด€์ ์„ ๊ฐ–๊ฒŒ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค.

 

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

ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ : ์ƒํƒœ ๊ฐ’์„ ์ง€๋‹ˆ์ง€ ์•Š์€ ํ•จ์ˆ˜ ๊ฐ’๋“ค์˜ ์—ฐ์†์œผ๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

 


์„ ์–ธํ˜•๊ณผ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Declarative Programming)์ด๋ž€ "๋ฌด์—‡์„" ํ’€์–ด๋‚ด๊ฐ€๋Š”๊ฐ€์— ์ง‘์ค‘ํ•˜๋Š” ํŒจ๋Ÿฌ๋‹ค์ž„์ด๋ฉฐ, 
"ํ”„๋กœ๊ทธ๋žจ์€ ํ•จ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฒƒ์ด๋‹ค"๋ผ๋Š” ๋ช…์ œ๊ฐ€ ๋‹ด๊ฒจ ์žˆ๋Š” ํŒจ๋Ÿฌ๋‹ค์ž„์ž…๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด JavaScript๋กœ ์ž์—ฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์—์„œ ์ตœ๋Œ€๊ฐ’์„ ์ฐพ์„๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

const ret = [1, 2, 3, 4, 5, 11, 12]
.reduce((max, num) => num > max ? num : max, 0)
console.log(ret) // 12
  • reduce()๋Š” '๋ฐฐ์—ด'๋งŒ ๋ฐ›์•„์„œ ๋ˆ„์ ํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ˆœ์ˆ˜ ํ•จ์ˆ˜

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

 

 

*FP์˜ ํŠน์ง•์„ ์ข€๋” ์•Œ์•„๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•˜์„ธ์š”

https://j-su2.tistory.com/35

 

[ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„] OOP์™€ FP

OOP๋ž€? OOP๋Š” Object Oriented Programming์˜ ์•ฝ์ž๋กœ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. class์™€ object์— ๊ธฐ๋ฐ˜ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„(๋””์ž์ธ ํŒจํ„ด)์œผ๋กœ, ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ผ๋ฆฌ ๋ฌถ์–ด์„œ class๋ฅผ ํ˜•์„ฑํ•˜๊ณ  ๊ทธ ์•ˆ์—

j-su2.tistory.com


๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

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

  • ์„ค๊ณ„์— ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋˜๋ฉฐ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌํƒ€์ž„์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ๋Š๋ฆผ

 

์˜ˆ๋ฅผ ๋“ค์–ด JavaScript๋กœ ์ž์—ฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด์—์„œ ์ตœ๋Œ€๊ฐ’์„ ์ฐพ์„๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

const ret = [1, 2, 3, 4, 5, 11, 12]
class List {
    constructor(list) {
        this.list = list
        this.mx = list.reduce((max, num) => num > max ? num : max, 0)
    }
    getMax() {
        return this.mx
    }
}
const a = new List(ret)
console.log(a.getMax()) // 12
  • List๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ  a๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ๋•Œ ์ตœ๋Œ€๊ฐ’์„ ์ถ”์ถœํ•ด๋‚ด๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋งŒ๋“ฆ

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ถ”์ƒํ™”, ์บก์Šํ™”, ์ƒ์†์„ฑ, ๋‹คํ˜•์„ฑ์ด๋ผ๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

*OOP์˜ ํŠน์ง•์„ ์ข€๋” ์•Œ์•„๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•˜์„ธ์š”

https://j-su2.tistory.com/35

 

[ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„] OOP์™€ FP

OOP๋ž€? OOP๋Š” Object Oriented Programming์˜ ์•ฝ์ž๋กœ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. class์™€ object์— ๊ธฐ๋ฐ˜ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„(๋””์ž์ธ ํŒจํ„ด)์œผ๋กœ, ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ผ๋ฆฌ ๋ฌถ์–ด์„œ class๋ฅผ ํ˜•์„ฑํ•˜๊ณ  ๊ทธ ์•ˆ์—

j-su2.tistory.com


์ ˆ์ฐจํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ

๋กœ์ง์ด ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•  ์—ฐ์†์ ์ธ ๊ณ„์‚ฐ ๊ณผ์ •์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ํŒจ๋Ÿฌ๋‹ค์ž„์ž…๋‹ˆ๋‹ค.

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

ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ํ˜ผํ•ฉ

์—ฌ๋Ÿฌ ๊ฐ€์ง€์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์ด ์žˆ์ง€๋งŒ ์–ด๋– ํ•œ ํŒจ๋Ÿฌ๋‹ค์ž„์ด ๊ฐ€์žฅ ์ข‹์„๊นŒ? ๋ผ๋Š” ์งˆ๋ฌธ์—” ๋‹ต์ด ์—†์Šต๋‹ˆ๋‹ค.

๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด๋‚˜ ์„œ๋น„์Šค์˜ ํŠน์ง•์„ ๊ณ ๋ คํ•ด์„œ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ์ •ํ•˜๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ์กฐํ•ฉํ•˜์—ฌ ์ƒํ™ฉ๊ณผ ๋งฅ๋ฝ์— ๋”ฐ๋ผ ํŒจ๋Ÿฌ๋‹ค์ž„ ๊ฐ„์˜ ์žฅ์ ๋งŒ ์ทจํ•ด ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.


[์ถœ์ฒ˜] ๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ

http://www.yes24.com/Product/Goods/108887922

 

๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ - YES24

๋””์ž์ธ ํŒจํ„ด, ๋„คํŠธ์›Œํฌ, ์šด์˜์ฒด์ œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์ž๋ฃŒ ๊ตฌ์กฐ, ๊ฐœ๋ฐœ์ž ๋ฉด์ ‘๊ณผ ํฌํŠธํด๋ฆฌ์˜ค๊นŒ์ง€!CS ์ „๊ณต์ง€์‹ ์Šต๋“๊ณผ ๋ฉด์ ‘ ๋Œ€๋น„, ์ด ์ฑ… ํ•œ ๊ถŒ์ด๋ฉด ์ถฉ๋ถ„ํ•˜๋‹ค!๊ฐœ๋ฐœ์ž ๋ฉด์ ‘์—์„œ ํฐ ๋น„์ค‘์„ ์ฐจ์ง€ํ•˜๋Š” CS(Comp

www.yes24.com