Skip to content
Kang Log
Go back

프로그래밍 패러다임

Updated:

프로그래밍 패러다임

#함수형프로그래밍 #객체지향 #개념

프로그래밍 패러다임

Pasted image 20240809164046

명령형 프로그래밍 VS 선언형 프로그래밍

예시 1. 가공된 큐브 치즈를 생산하는 공장

Pasted image 20240809163339

white

명령형 접근(How)을 통해 치즈 생산하는 경우 공통의 목표와 주의사항을 설정 → 세부공정과정(우유살균, 응고 및 숙성, 자르기 등)을 관리 → 생산완료

선언형 접근(What)을 통해 치즈 생산하는 경우 목표(기간, 수량 등) 설정 → 생산지시 → 생산완료

명령형 접근을 객체지향, 선언형접근을 함수형프로그래밍이라 두고 생각해보면 치즈를 만드는 공정에서

예시 2. 배열값 변화 (상태변화)

[!multi-column]

title: 명령형 프로그래밍
~~~ js
let numbers = [1, 2, 3];

// 기존 배열의 값을 직접 변경함
for (let i = 0; i < numbers.length; i++) {
	numbers[i] += 1;
}

console.log(numbers); // [2, 3, 4]

~~~
title:선언형 프로그래밍
~~~ js
const numbers = [1, 2, 3];

// 새로운 배열을 생성
const newNumbers = numbers.map(num => num + 1);

console.log(newNumbers); // [2, 3, 4]
console.log(numbers); // [1, 2, 3] (원본 배열은 변경되지 않음)

~~~

white

선언형 프로그래밍에서는 객체내에서 값이 바뀌는것을 허용하지 않는다 고급진 말로 불변객체라 한다 중간에 로직에따라 객체의 값이 바뀔 수 있으면 예기치못한 에러가 발생하거나 디버깅을 해야하는 상황에서 많은 애로사항을 가져다 준다고 한다. 실제로 코드에서 에러가난 상황들을 github에서 통계를 냈을 때, 함수형 언어가 눈에 띄게 통계치가 적게 나오기도 헀다

명령형과 선언형의 대표적인 특징

명령형

선언형

각 프로그래밍의 대표적인 언어

명령형 프로그래밍

선언형 프로그래밍

OOP 와 FP의 비교

두 프로그래밍 방식은 상호 베타적이지 않고 함께 사용하여 더욱 강력하고, 유연한 코드를 작성할 수 있다. 현대의 프로그래밍에서는 이러한 두 패러다임을 적절히 혼합하여 사용함으로써 각각의 장단점을 보완하여 코드르 작성하는 것이 중요하다.

참고 블로그

[프로그래밍 패러다임] 객체지향 프로그래밍(OOP)

[CS/Basic] 좀 더 나은 프로그램을 위해, 프로그래밍 패러다임

함수형 프로그래밍이란? | JONGMINFIRE.DEV

50. 함수형 프로그래밍의 특징과 장점


Share this post on:

Previous Post
프로젝트 예고
Next Post
함수형 프로그래밍이란