1. 명령형과 선언형 프로그래밍

    1. 명령형 프로그래밍

      무엇을(What)을 할 것인지를 나타내기보다는 어떻게(How) 할 건지를 설명하는 방식

      • 객체지향 프로그래밍

        • 데이터를 객체화하여 객체 간의 상호작용을 통해서 프로그래밍하는 것

        • 초코렛 공장을 객체화 한다면, 공장장, 원재료_제조자, 가공_제조자,표장_제조자들을 객체화하여 각각의 객체들이 초코렛(데이터)을 만드는 과정(로직)을 거쳐 초코렛(데이터)을 생산한다.

    2. 선언형 프로그래밍

      어떻게(How)을 할 것인지를 나타내기보다는 무엇을(What) 할 건지를 설명하는 방식

      • 함수형 프로그래밍

        • 순수 함수를 조합하여 프로그래밍하는 것
  2. 함수형 프로그래밍의 철학? 컨셉?

  3. 변경 가능한 상태(변수)를 불변상태(Immutab)로 만들어 SideEffect를 없앤다.

  4. 모든 것은 객체이다.

  5. 코드를 간결하게 하고 가독성을 높여 구현할 로직에 집중한다.

  6. 동시성 작업을 보다 쉽고 안전하게 구현한다.