-
[Careerthon] 프로그래밍 패러다임구버전/CS Study 2023. 11. 9. 17:31
개요
- 프로그래밍 패러다임이란?
- 종류와 특성
프로그래밍 패러다임
프로그래밍 분야에 적용할 수 있는 이론이나 틀,체계라고 볼 수 있다.
개발자가 어떻게 프로그래밍을 할 것인가란 의문에 대해서 특정 관점이나 방식을 바탕으로 프로그밍을 실시하게 되기에 상당히 개념 중심의 내용이다.
프로그래밍의 변화
- 절차적 프로그래밍(PP, Procedure Programming)
- 객체지향 프로그래밍(OOP, Object Oriented Programing)
- 함수형 프로그래밍(FP, Functional Programing)
등장의 시기는 역순이지만 각광받는 시기는 절차에서 함수로 내려온다.
단순히 등장순서에 따라서 우월을 판단하는 것이 아닌 접근방식과 사용환경에 따라서 유동적으로 활용이 된다.
종류와 특성
방법 및 목적에 따라 분류하였을 때 이미지와 같이 분류가 된다
명령형 VS 선언형
어떻게 할 것이가, 무엇을 할 것인가
- 명령형 : 어떤 일을 어떻게 할 것인지에 관점을 두고 컴퓨터가 수행할 명령들을 순서대로 적어두는 프로그래밍 기법
- 선언형: 무엇을 나타낼지에 대해 관점을 두는 프로그래밍 기법
예시)
가공된 큐브치즈를 생산하는 공장
- 명령형 접근 : 공통의 목표와 주의사항을 설정하고 세부 공정과정을 관리하여 생산을 완료함
- 해당 과정마다 구체적인 임무를 제시한다는 느낌
- 선언형 접근 : 목표만을 주고 생산을 지시하여 생산을 완료함
- 이미 명령의 단계는 추상화 되어있다는 가정을 가지고 지시만 하여 결과물을 도출한다는 느낌
객체 지향 프로그래밍
- 어떠한 일을 해결하기 위해 수많은 객체들을 기본단위로 나누고 서로 간의 상호관계 작용으로 개발하는 것을 지향하는 기법
- 대표적 언어: C++, JAVA, C#
- 캡슐화로 인한 재사용성이 높다, 직관적이며 유지보수가 쉽다, 상속을 통한 장점 극대화
- 처리속도가 상대적으로 느림, 객체가 많으면 용량도 커짐, 설계시 상대적 시간이 오래걸림
절차 지향 프로그래밍
- 위에서부터 아래로 순차적으로 진행이 되어 프로그램이 유기적으로 연결되도록 구성하는 방식이다
- 대표적 언어: C, C++
함수형 프로그래밍
- 상태 및 데이터 변경에는 사용하지 않으며 작은 문제를 해결하구 위한 함수 단위로 개발을 하는 기법
- 대표적 언어: HTML, Python, SQL
- 재사용성이 높다.
- 불변성이 핵심개념이다.
'구버전 > CS Study' 카테고리의 다른 글
[Careerthon] 선형자료구조 (0) 2023.11.10 [Careerthon] 함수형 프로그래밍이란? (1) 2023.11.09 [Careerthon] MVC, MVP, MVVM 패턴 (2) 2023.11.08 [Careerthon] 페이징과 세그멘테이션 (0) 2023.11.07 [Careerthon] 메모리 (0) 2023.11.07