Skip to content

Commit 69de5a9

Browse files
committed
feat: Add chapter03
1 parent 61ba707 commit 69de5a9

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

chapter03/README.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# 3장. 패러다임 개요
2+
3+
- [zhoon](./zhoon/)

chapter03/zhoon/README.md

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# 3장. 패러다임 개요
2+
3+
## introduction
4+
5+
- 다음 세 가지 패러다임에 대해 알아보자
6+
- 구조적 프로그래밍
7+
- 객체 지향 프로그래밍
8+
- 함수형 프로그래밍
9+
10+
## 구조적 프로그래밍
11+
12+
- 최초로 적용된 패러다임
13+
- 최초로 만들어진 패러다임은 아님
14+
- 1968년 에츠허르 비버 데이크스트라가 발견함
15+
16+
> 구조적 프로그래밍은 제어흐름의 직접적인 전환에 대해 규칙을 부과한다.
17+
18+
## 객체 지향 프로그래밍
19+
20+
- 구조적 프로그래밍보다 2년 앞선 1966년, 올레 요한 달과 크리스텐 니가드에 의해 등장함
21+
- 알골 언어의 함수 호출 스택 프레임을 힙으로 옮기면, 함수 호출이 반환된 이후에도 함수에서 선언된 지역 변수가 오랫동안 유지될 수 있음을 발견함
22+
- 바로 이러한 함수가 클래스의 생성자가 됨
23+
- 지역변수는 인스턴스 변수, 그리고 중첩 함수는 메서드가 됨
24+
- 함수 포인터를 특정 규칙에 따라 사용하는 과정을 통해 필연적으로 다형성이 등장하게 됨
25+
26+
> 객체 지향 프로그래밍은 제어흐름의 간접적인 전환에 대해 규칙을 부과한다.
27+
28+
## 함수형 프로그래밍
29+
30+
- 세 패러다임 중 가장 먼저 만들어짐
31+
- 컴퓨터 프로그래밍 자체보다 먼저 등장함
32+
- 수학적 문제를 해결하는 과정에서 람다 계산법을 발명함
33+
- LISP 언어의 근간이 되는 개념이 람다 계산법
34+
- 람다 계산법의 기초가 되는 개념은 불변성
35+
- 심볼의 값이 변경되지 않는다는 개념
36+
- 이는 함수형 언어에는 할당문이 전혀 없다는 뜻
37+
- 사실 대다수의 함수형 언어가 변수 값을 변경할 수 있는 방법을 제공하기는 하자미나, 굉장히 까다로운 조건 아래에서만 가능함
38+
39+
> 함수형 프로그래밍은 할당문에 대해 규칙을 부과한다.
40+
41+
## 생각할 거리
42+
43+
- 각 패러다임은 프로그래머에게서 권한을 박탈함
44+
- 어느 패러다임도 새로운 권한을 부여하지 않음
45+
- 각 패러다임은 부정적인 의도를 가지는 일종의 추가적인 규칙을 부과함
46+
- 즉, 패러다임은 무엇을 해야 할 지를 말하기보다는 무엇을 해서는 안 되는지를 말해준다.
47+
48+
## 결론
49+
50+
- 패러다임와 아키텍처는 관계가 있다
51+
- 서로 어떻게 연관되는지 확인해보자

0 commit comments

Comments
 (0)