구버전/CS Study

[Careerthon] 프로그래밍 패러다임

고래강이 2023. 11. 9. 17:31

개요

  • 프로그래밍 패러다임이란?
  • 종류와 특성

 


프로그래밍 패러다임

프로그래밍 분야에 적용할 수 있는 이론이나 틀,체계라고 볼 수 있다.

개발자가 어떻게 프로그래밍을 할 것인가란 의문에 대해서 특정 관점이나 방식을 바탕으로 프로그밍을 실시하게 되기에 상당히 개념 중심의 내용이다.

 

프로그래밍의 변화

  • 절차적 프로그래밍(PP, Procedure Programming)
  • 객체지향 프로그래밍(OOP, Object Oriented Programing)
  • 함수형 프로그래밍(FP, Functional Programing)

등장의 시기는 역순이지만 각광받는 시기는 절차에서 함수로 내려온다.

단순히 등장순서에 따라서 우월을 판단하는 것이 아닌 접근방식사용환경에 따라서 유동적으로 활용이 된다.


 

종류와 특성

방법 및 목적에 따라 분류하였을 때 이미지와 같이 분류가 된다

 

명령형 VS 선언형

어떻게 할 것이가, 무엇을 할 것인가

 

  • 명령형 : 어떤 일을 어떻게 할 것인지에 관점을 두고 컴퓨터가 수행할 명령들을 순서대로 적어두는 프로그래밍 기법
  • 선언형: 무엇을 나타낼지에 대해 관점을 두는 프로그래밍 기법

예시)

가공된 큐브치즈를 생산하는 공장

  • 명령형 접근 : 공통의 목표와 주의사항을 설정하고 세부 공정과정을 관리하여 생산을 완료함
    • 해당 과정마다 구체적인 임무를 제시한다는 느낌
  • 선언형 접근 : 목표만을 주고 생산을 지시하여 생산을 완료함
    • 이미 명령의 단계는 추상화 되어있다는 가정을 가지고 지시만 하여 결과물을 도출한다는 느낌

 

객체 지향 프로그래밍

  • 어떠한 일을 해결하기 위해 수많은 객체들을 기본단위로 나누고 서로 간의 상호관계 작용으로 개발하는 것을 지향하는 기법
  • 대표적 언어: C++, JAVA, C#
    • 캡슐화로 인한 재사용성이 높다, 직관적이며 유지보수가 쉽다, 상속을 통한 장점 극대화
    • 처리속도가 상대적으로 느림, 객체가 많으면 용량도 커짐, 설계시 상대적 시간이 오래걸림

절차 지향 프로그래밍

  • 위에서부터 아래로 순차적으로 진행이 되어 프로그램이 유기적으로 연결되도록 구성하는 방식이다
  • 대표적 언어: C, C++

함수형  프로그래밍

  • 상태 및 데이터 변경에는 사용하지 않으며 작은 문제를 해결하구 위한 함수 단위로 개발을 하는 기법
  • 대표적 언어: HTML, Python, SQL
  • 재사용성이 높다.
  • 불변성이 핵심개념이다.

 

 

 

 

 

 

 

 

 

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

https://adjh54.tistory.com/97

https://iosdevlime.tistory.com/entry/CSBasic-%EC%A2%80-%EB%8D%94-%EB%82%98%EC%9D%80-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%84-%EC%9C%84%ED%95%B4-%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