[클린 아키텍처] 3. 패러다임 개요

햄도·2021년 6월 22일
0

Clean Architecture

목록 보기
3/11

출처

클린 아키텍처를 읽으며 정리한 내용입니다.

2부 소개

  • 앨런 튜링이 컴퓨터 프로그래밍의 토대를 쌓은 이후, 수많은 언어가 등장하고 프로그래밍 패러다임에도 혁신적인 변화가 일어났다.
  • 패러다임은 어떤 프로그래밍 구조를 사용할지, 언제 이 구조를 사용해야 하는지를 결정한다.

3. 패러다임 개요

구조적 프로그래밍

  • 최초로 적용된 패러다임(최초로 만들어지지 않음)
  • 다익스트라가 발견
  • 무분별한 점프(goto)를 if/then/else와 do/while/until과 같은 구조로 대체
  • 위에서 아래로 흐르도록 개발하며, 이 흐름을 방해하는 goto가 없어야 한다.
  • 구조적 프로그래밍 요약: 제어흐름의 직접적인 전환에 대해 규칙을 부과한다.

객체지향 프로그래밍

  • 구조적 프로그래밍보다 먼저 등장

  • 함수 호출 스택 프레임을 힙으로 옮기면, 함수 호출이 반환된 이후에도 함수에서 선언된 지역 변수가 오랫동안 유지될 수 있음을 발견

    → 함수: 클래스의 생성자, 지역 변수: 인스턴스 변수, 중첩 함수: 메서드

  • 객체지향 프로그래밍 요약: 제어흐름의 간접적인 전환에 대해 규칙을 부과한다.

함수형 프로그래밍

  • 최근에서야 도입되기 시작했지만, 만들어지긴 가장 먼저 만들어졌다.

  • 컴퓨터 프로그래밍 자체보다도 먼저 등장

  • 근간이 되는 람다 계산법의 기초: 불변성

    • 심볼의 값이 변경되지 않는다.

      → 함수형 언어에는 할당문이 전혀 없다.

      → 함수형 언어가 대부분 변수 값을 변경할 수 있는 방법을 제공하긴 하지만, 매우 까다롭다.

  • 함수형 프로그래밍 요약: 함수형 프로그래밍은 할당문에 대해 규칙을 부과한다.

생각할 거리

  • 각 패러다임은 프로그래머에게서 권한을 박탈한다. 즉, 패러다임은 무엇을 해야할지보다 무엇을 해서는 안되는지를 말해준다.

    구조적 프로그래밍 → goto문

    객체지향 프로그래밍 → 함수 포인터

    함수형 프로그래밍 → 할당문

  • 각 패러다임이 이 세 가지를 앗아갔고, 더 가져갈 수 있는 것은 없다.

  • 그러므로 프로그래밍 패러다임은 더이상 생기지 않을 것이다. 적어도 무언가를 앗아가는 패러다임은 이 세개뿐일 것이다.

profile
developer hamdoe

0개의 댓글