[혼공얄코] 5주차 절차지향 객체지향 함수형 프로그래밍
학습목표
- 절차지향 객체지향 함수형 프로그래밍 특징
- 03-3 연습 문제 풀기
| 절차지향, 객체지향 프로그래밍
절차지향과 객체지향은 컴파일 시 소스 코드를 어디서부터 읽느냐에 따라 구분됨
서로 반대되는 개념은 아님
절차지향 => 순서 중요
객체지향 => 관계, 조직 중요
절차지향 프로그래밍
소스 코드 위에서 부터 차례대로 읽는 방법
=> 소스 코드의 순서가 중요 & 프로그램 전체 유기적 연결
컴퓨터 처리 구조와 비슷 => 실행속도 빠름
ex. C
장점 | 단점 |
---|---|
실행속도 빠름 | 모든 요소 유기적 연결 => 사소한 문제 하나만 있어도 전체 돌아가지 않음 실행 순서 정해짐 => 순서가 바뀌면 결과도 바뀔 수 있음 |
객체지향 프로그래밍
구성요소를 객체라는 단위로 묶어 조합으로 프로그램을 만듦
다수의 객체를 만들고 객체끼리 서로 상호작용하는 방법
ex. C#
C++
장점 | 단점 |
---|---|
객체의 역할이 나뉘어 있고 사용하고자 하는 부분에서 각 객체가 따로 작동 => 하나의 객체가 고장나도 해당 객제를 교체, 수리 하면 됨 => 유지 보수 용이 & 생산성 좋음 |
모든 객체의 역할과 기능을 이해해야함 => 설계의 시간 오래걸림 처리 속도가 절차지향보다 느림 난도 높은 편 (특히 다중상속되는 C++ ) |
| 함수형 프로그래밍
변수 사용을 최소화함 => 스파게티 코드 오류 줄임
프로그래밍 언어가 제공하는 기능들을 사용해서 어떤 변수를 두지 않고 기능을 설계
외부에 따로 상태값을 두지 않고 내부에서 연쇄적으로 기능을 사용해서 결과를 연산
=> 멀티 스레딩이 많이 이루어지는 환경에서 좋음
ex. 스칼라 하스켈 클로저 F# javascript
ReactiveX
댓글남기기