Clean Architecture/Clean Architecture 기초
[Clean Architecture] 3. 패러다임 개요 (구조적, 객체지향, 함수형)
jake-kim
2021. 3. 5. 01:04
구조적 프로그래밍 (structured programming)
- `구조적 프로그래밍`이란 제어흐름(if/then/else, do/while/until)의 직접적인 전환에 대해 규칙을 부과하는 것
객체 지향 프로그래밍 (object-oriented programming)
- `객체 지향 프로그래밍`이란 제어흐름의 간접적인 전환에 대해 규칙을 부과하는 것
- 구조적 프로그래밍보다 2년 먼저 등장
- ALGOL언어에서 stack의 frame을 heap으로 옮기면 함수 호출이 반환된 이후에도 함수에서 선언된 지역 변수가 오랫동안 유지될 수 있음을 발견 -> 이러한 함수가 클래스의 '생성자'로 지정 / 지역 변수는 인스턴스 변수로 / 중첩 함수는 메서드로 / 함수 포인터를 특정 규칙에 따라 사용하는 과정을 통해 다형성 등장
함수형 프로그래밍 (functional programming)
- `함수형 프로그래밍`이란 할당문에 대해 규칙을 부과하는 것
- 세 패러다임 중에 가장 먼저 생성
- `함수형 프로그래밍`의 핵심은 람다 계산법 (`symbol`의 값이 변경되지 않는 개념인 불변성)
* 세 가지 컴포넌트의 관심사: 함수, 컴포넌트 분리, 데이터 관리
(다음 장에서 세 가지 각 컴포넌트 개념 계속)
* 출처: clean architecture