함수형코딩 chapter 1

빵동·2023년 3월 14일

함수형코딩 (완독)

목록 보기
1/29

1일차 1-13 page

[요약]
함수형 프로그래밍은 코드를 액션, 계산, 데이터로 구분하며, 일급 추상이라는 개념을 통해 코드를 재사용하고자 하는 목표로 한다.
기존의 코드를 액션, 계산, 데이터로 잘 구분할 수 있다면 MSA에 적용할 수 있는 부분들이 많다.

[발췌]
함수형 프로그래밍의 중요한 개념은 객체지향 프로그래밍이나 절차지향 프로그래밍을 가리지 않고 모든 프로그래밍 언어에서 사용할 수 있다는 것입니다. 함수형 프로그래밍의 진정한 아름다움은 코드 어느곳에나 적용 할 수 있는 유익한 내용이라는 점입니다. (5p)

[메모]

  • 학문적 관점
  1. 수학함수를 사용하고 사이드 이펙트를 피하는 것
  2. 사이드 이펙트 없이 순수함수만 사용하는 프로그래밍 스타일(순수함수를 수학함수라고 볼 수 있다)
  • 실용적인 측면
  1. 사이드이펙트는 필요하다. 필요할땐 써야함.
  2. 함수형 프로그래밍은 사이드이펙트의 문제를 알고 있기 때문에 잘 다루기 위한 도구를 알고 있다.

  • 액션
    - 호출 가능, 시점 및 회수에 의존
    시간이 지남에 따라 안전하게 상태를 바꿀 수 있는 방법
    순서를 보장하는 방법
    액션이 정확히 한번만 실행되게 보장하는 방법

  • 계산
    - 호출 가능, 언제나 같은 값 반환
    정확성을 위한 정적 분석
    소프트웨어 에서 쓸 수 있는 수학적 지식
    테스트 전략

  • 데이터
    - 이벤트에 대한 사실을 기록
    효율적으로 접근하기 위해 데이터를 구성하는 방법
    데이터를 보관하기 위한 기술
    데이터를 이용하여 중요한 것을 발견하는 원칙


  • MSA에서 다음 3가지를 항상 염두해야 한다.
  1. 메시지 순서가 바뀔 수 있다.
  2. 메시지는 한 번 이상 도착 할 수도 있고 도착하지 않을 수 있다.
  3. 응답을 받지 못하면 무슨일이 생겼는지 알 수 없다.
    액션과 계산, 데이터를 분리해내면 확장 가능한 시스템을 만들기 쉽다.

0개의 댓글