프로그래밍 패러다임

ayboori·2023년 11월 9일
0

CS Study

목록 보기
15/22
post-custom-banner

프로그래밍 패러다임 (Programming Paradigm)

패러다임 : 어떤 한 시대 사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계. 또는 사물에 대한 이론적인 틀이나 체계.

  • 전체적인 프로그래밍 방식
  • 프로그래밍 스타일이나 개념적 접근 방식
  • 프로그램을 구조화하고 조직하는 방식에 영향을 미친다.
  • 프로그래밍 패러다임에 따라 지향하는 프로그래밍의 원칙들도 달라진다.

프로그래밍 패러다임의 종류

선언형 프로그래밍 (Declarative Programming)

'데이터를 어떻게 조작해야 하는지'가 아니라, '원하는 데이터는 무엇인지'에 집중

  • 명령형으로 구현된 것들이 추상화되어 있어야 함
    - 쉽게 말하면, 원하는 데이터만 말해도 그 과정을 알고 있어야 한다.
    • 내장된 함수가 많다!
    • 해결 방법은 컴퓨터에게 위임한다.
  • 전체적인 가독성, 추상화 수준을 높임
  • 재사용성이 높고 병렬 처리가 유리함
  • SQL, React
  • 명령형 (Imperative) 프로그래밍과 반대되는 개념이다

함수형 프로그래밍

내가 작성한 블로그

  • 최소 단위가 함수이며, 함수를 통하여 새로운 데이터들을 만들어가며 파이프 형태로 프로그래밍 하는 방식이다.
  • 이때 이 함수는 일급 객체여야 한다.
  • 불변성을 지향하고, 순수 함수를 사용하여 부수 효과를 방지한다.

명령형 프로그래밍

'데이터를 어떻게 조작할지'에 집중

  • 컴퓨터가 수행할 명령들을 순서대로 적어둔다.
  • 프로그래밍의 상태, 상태를 변경시키는 구문의 관점에서 연산을 설명한다.

객체지향 프로그래밍

  • 프로시저 호출의 개념을 바탕으로 한다.
  • 객체를 기본 단위로 하여 서로 간의 상호관계 작용으로 개발
  • 객체 내부의 데이터메서드를 활용하여 다룬다.
  • 설계에 많은 시간이 소요되고, 다른 패러다임에 비해 느리다.
  • 추상화, 캡슐화, 상속, 다형성을 특징으로 한다.
  • 객체 지향의 설계 원칙으로는 SOLID가 있다.
  • C++, Java, C#, JavaScript

절차지향 프로그래밍

  • 프로그램이 순차적으로 진행되어서 유기적으로 연결되도록 구성한다.
  • 하나의 큰 기능을 처리하기 위해 작은 단위의 기능들로 나누어 처리하는 Top-Down 접근 방식
    으로 설계
  • 가독성이 좋고 실행 속도가 빠르다.
  • 모듈화가 어렵고 유지 보수성이 떨어진다.
  • C, Fortran

한 줄 요약

프로그래밍 패러다임은 프로그래밍을 하는 방식에 대한 틀이나 체계이다. 프로그래밍 패러다임에 따라 지켜야 할 원칙들이나, 구조화 방식이 달라진다.


참고 프로그래밍 패러다임 : [개발 이야기](https://qus.kr/developer/post/programming-paradigm/), [Dev.Hoon](https://velog.io/@codenmh0822/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8C%A8%EB%9F%AC%EB%8B%A4%EC%9E%84) 선언형 프로그래밍 : [요즘 IT](https://yozm.wishket.com/magazine/detail/2083/), [코드 연구소](https://code-lab1.tistory.com/244)
profile
프로 개발자가 되기 위해 뚜벅뚜벅.. 뚜벅초
post-custom-banner

0개의 댓글