절차 지향, 객체 지향, 함수형 프로그래밍
절차 지향 프로그래밍
(Procedural Progamming)
- 순차적인 처리가 중요시됨
- 프로그램 전체가 유기적으로 연결되어 있음
- 문제를 작은 단위로 분해하고, 각 단계를 함수 또는 서브 루틴으로 나타냄
- 데이터와 함수가 별개로 존재하며, 데이터를 처리하는 함수를 중심으로 프로그램을 작성
- 유지보수가 어려움(디버깅이 힘듦)
- 절차 지향 프로그래밍 언어의 예 : 알골, 포트란, PL/I, 모듈라-2, 에이다, 베이직, C 등
객체 지향 프로그래밍
(Object-Oriented Programing, OOP)
- 현실 세계의 사물을 추상화하여 객체로 표현하는 방식
- 객체는 데이터와 해당 데이터를 처리하는 메서드(함수)의 묶음임
- 상속, 캡슐화, 다형성 등의 개념을 활용하여 재사용성과 유지보수성을 높임
➜ 유연하고 변경이 쉬워 개발과 보수가 간편해짐 - 직관적인 코드 분석을 가능하게 함
- 객체 지향 프로그래밍 언어의 예 : Java, C++, Python, C#, Ruby, Smalltalk, Swift, Kotlin 등
함수형 프로그래밍
(Functional Programming)
- 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍의 패러다임의 하나
- 명령형 프로그래밍에서는 상태를 바꾸는 것을 강조하는 것과 달리, 함수형 프로그래밍은 함수의 응용을 강조함
- "클린코드"의 저자 Robert C.Martin은 "대입문이 없는 프로그래밍"이라고 정의함
- 상태변화를 최소화하고, 부가효과(side effect)를 피하여 프로그램의 안정성을 높이는데 초점을 둠
- 불변성(immutable)을 강조하며, 고차 함수(higher-order function)를 적극적으로 활용
- 함수형 프로그래밍 언어의 예 : Haskell, Lisp, Clojure 등
'컴퓨터 탐구' 카테고리의 다른 글
RTMP) RTMP(Real Time Messaging Protocol) (0) | 2024.07.27 |
---|---|
컴퓨터) 배열(Array)와 연결 리스트(Linked List) (0) | 2023.07.27 |
컴퓨터) 스택(Stack)과 큐(Queue) (0) | 2023.07.27 |
컴퓨터) 웹 서버(Web Server)와 WAS(Web Application Serviece) (0) | 2023.07.27 |
네트워크) TCP와 UDP (0) | 2023.07.26 |