절차지향, 객체지향, 함수형 프로그래밍

qkrrnjswo·2023년 8월 1일
0

공부 정리

목록 보기
18/24

프로그래밍 패러다임

프로그램은 순차, 분기, 반복, 참조로 구성
그렇다면 위 4가지 요소로 어떻게 이용할 것인가를 정의하는 것이 프로그래밍 패러다임 이라고 할 수 있다.
프로그래밍은 크게 선언형 프로그래밍과 명령형 프로그래밍으로 나뉜다.
절차형, 객체지향, 함수형 프로그래밍은 설계에 대한 패러다임이다.

1. 명령형 프로그래밍

명령형 프로그래밍은 컨트롤 플로우 방식으로써 명령어를 통해 데이터를 제어하는 것을 목표로 한다.
즉, 무엇가를 작업하기 위해 어떻게 진행할 것이지를 명령어를 나열한다.

절차지향 프로그래밍

일이 진행되는 순서대로 프로그래밍을 하는 방법

  • 장점
    1) 컴퓨터와 처리 구조가 비슷하여 실행속도가 빠르다.
  • 단점
    1) 각 코드가 유기적으로 연결되어 있어서 유지보수가 어렵다
    2) 문제가 발생 시 전체를 수정해야 해서 유지보수, 디버깅이 어렵다
    3) 엄격한 순서를 정해놨기 때문에, 순서가 바뀌면 결과가 달라진다.

객체지향 프로그래밍

절차지향 프로그래밍의 단점을 극복하기 위해서 등장

  • 장점
    1) 코드의 재사용이 가능
    2) 유지보수가 용이
    3) 보안성이 높다.
  • 단점
    1) 절차지향 프로그래밍에 비해 속도가 느리다

2. 선언형 프로그래밍

선언형 프로그래밍은 데이터 플로우 방식으로써 상태가 존재하지 않고 재귀나 파이프를 통해 데이터가 흘러가는 방식이다.
선언형 프로그래밍은 무엇을 해결해야 할지 집중하고 해결 방법은 컴퓨터에게 위임하는 방법이다.
즉, 무엇가를 작업하기 위한 방법을 정의한다.

함수형 프로그래밍

함수형 프로그래밍은 거의 모든 것을 순수 함수로 나누어 문제를 해결하는 기법이다.

순수함수?
부작용이 제거된 함수!
부작용 = 함수가 결과값 이외에 다른 상태를 변경시키는 것

참고

https://velog.io/@younoah/programming-paradigm
https://hymndev.tistory.com/76

0개의 댓글