디자인 패턴

Programming Paradigm

iksadnorth 2023. 7. 19. 22:22

👣 개요

프로그래밍 패러다임이란?
프로그래머에게 프로그래밍의 과점을 갖게 해주는 역할.

Ex)
객체 지향 프로그래밍 -> 프로그램은 객체들의 집합.
함수형 프로그래밍 -> 순수 함수들의 연속.

👣 선언형 

선언형의 철학
프로그램은 함수로 이뤄진 것이다.

👣 순수 함수

전역 변수에 의해 출력이 훼손되는 것이 아니라 
입력값이 같기만 하면 무조건 출력값도 같은 함수.

def add(a,b):
    return a+b

👣 고차 함수

함수의 입력에 함수가 포함되는 함수.

def map(arr, func):
    return func(arr)

👣 일급 객체

고차 함수를 사용하기 위해선 해당 언어일급 객체여야 함.

일급 객체 특징
1. 변수나 메서드에 함수를 할당할 수 있다.
2. 함수 매개변수에 함수를 할당할 수 있다.
3. 함수 리턴값이 함수일 수 있다.

👣 명령형

명령형의 철학
프로그램은 상태와 상태를 변경하는 명령문으로 구성되며, 제어 흐름을 명시적으로 제어한다.

👣 객체 지향 프로그래밍

아래 게시물에서 설명함.

 

객체 지향 프로그래밍

👣 개요 객체들의 집합으로 프로그램을 표현하며 데이터를 객체로 취급해 객체 내부에 선언된 메서드를 활용하는 방식. 👣 OOP 특징 1. 추상화 복잡한 시스템으로부터 핵심 개념을 간추리는 것.

ikadnorth.tistory.com

👣 절차형 프로그래밍

일이 진행되는 방식을 그대로 코드로 구현한 프로그래밍.
코드 가독성이 매우 좋고 실행 속도가 빠르다.
하지만 모듈화하기 어렵고 유지 보수성이 떨어진다.

a = [1,2,3,4,5]
b = 5

for idx, i in enumerate(a):
    a[idx] = i ** b

print(a)

👣 절차형 프로그래밍 vs 명령형 프로그래밍

절차형 프로그래밍 
프로그램의 실행 중에 상태가 변경되고, 이를 통해 원하는 결과를 얻으려고 한다.

명령형 프로그래밍
상태 변경을 최소화하고, 대신 불변성(Immutability)을 강조한다.

'디자인 패턴' 카테고리의 다른 글

Facade Pattern - 구조  (0) 2023.07.30
객체 지향 프로그래밍  (0) 2023.07.21
MVC Pattern - 아키텍쳐  (0) 2023.07.19
Iterator Pattern - 행위  (0) 2023.07.19
Proxy Pattern - 구조  (0) 2023.07.19