남 희 2023. 3. 2. 02:33

오늘 한 일 [DONE]

  • CS 스터디에서 운영체제 공부한 내용 복습하고 프로그래밍 패러다임을 공부했다.
  • 이항 계수 알고리즘 문제를 풀었다. 푸는 방법이 정말 다양한 문제였다. 내일 더 풀어봐야겠다.

📝오늘 배운 내용 간단 요약

1️⃣ 프로그래밍 패러다임 (Programming Paradigm)

프로그래머에게 프로그래밍 관점을 갖게 하고 프로그래밍을 어떤 방식으로 하는지 결정할 수 있게 해주는 개발 방법론.

여러 방식으로 나눌 수 있는데 대표적으로 선언형과 명령형 언어로 나누는 방식이 있다.

 

2️⃣ 선언형 프로그래밍 (Declarative Programming)

'무엇을' 풀어내는가에 집중하는 패러다임. "프로그램은 함수로 이루어진 것"이라는 명제가 담겨 있다.

선언형은 함수형을 하위 분류로 가진다.

함수형 프로그래밍 (Functional Programming)

출력이 입력에만 의존하고 side-effect가 없는 '순수 함수'들을 블록처럼 쌓아 로직을 구현하고,

'고차 함수'를 통해 재사용성을 높인 프로그래밍 패러다임.

이 때문에 함수형 프로그래밍이 가능한 언어는 일급 객체라는 특징을 가지고 있다. (함수로 매개변수, 반환 등 가능)

함수가 결과값 이외에 다른 상태를 변경시킬 때 side-effect가 있다고 말하는데 함수형에는 이런 게 없다는 뜻이다.

 

함수형 프로그래밍을 사용하면 프로그래머가 생각하는 시간이 줄고 side-effect가 없다는 특성 때문에 스레드 안정성이 생긴다.

 

참고 자료