쏙쏙 들어오는 함수형 코딩: 중요 내용 간단히 기록

2024. 4. 4. 08:58· 카테고리 없음
목차
  1. 액션과 계산, 데이터
  2. 일급 추상

내가 속한 프론트엔드 팀은 입사하면 '쏙쏙 들어오는 함수형 코딩'이라는 책을 온보딩 중에 읽게 된다. 그때는 예제 코드부분은 대충 넘기고 읽어서, 대충 함수형 코딩을 어떻게 적용하는지 느낌만 남아있는 상태로 책을 덮었다. 최근에 다른 팀에서 이 책을 가지고 스터디를 한다고 들었고 간간히 참관할 겸 생각이 나 다시 꺼내 읽었다. 확실히 1년 전 보다는 경험이 생겨 그때 읽었을 때와는 내용이 다른 느낌으로 다가왔다. 두 번째에는 책을 그냥 덮어버리고 끝내지 않도록, 내용을 리마인드하면서 중요한 내용들을 간략하게 정리해보려고 한다. 

액션과 계산, 데이터

함수형 코딩에서는 이 세 가지를 구분할 줄 아는 것이 중요하다. 

  1. 액션: 실행 시점이나 횟수 또는 둘 다에 의존한다. 순수하지 않은 함수, 부수효과가 있는 함수로도 불린다.
  2. 계산: 입력값으로 출력값을 만드는 것. 실행 시점과 횟수에 관계없이 항상 같은 입력값에 대해 같은 출력값을 돌려준다.
  3. 데이터: 이벤트에 대한 기록한 사실이다.
  • 액션에서 계산을 꺼내면 재사용하기 좋고 테스트하기 쉬운 코드를 만들 수있다. 계산은 액션보다 재사용하기 좋고, 테스트하거나 이해하기 쉽다. 
  • 암묵적인 입력과 출력을 명시적인 것으로 바꿔 액션의 설계를 개선한다.
  • 액션과 계산, 데이터는 변경되는 빈도에 따라 각각 다른 계층으로 구성할 수 있다. 

일급 추상

일급 값, 일급 함수에 대해 알고 이를 활용해 코드를 추상화한다.

  1. 일급 값: 변수에 저장할 수 있고 인자로 전달하거나 함수의 리턴값으로 사용할 수 있는 값이다. 언어에는 일급이 아닌 것이 많이 있고, (ex 함수명, 연산자...) 일급이 아닌 기능은 함수로 감싸 일급으로 만들 수 있다.
  2. 일급 함수: 일급 값처럼 취급되는 함수이다. 다른 함수들에 전달인자로 제공되고, 다른 함수에 의해 반환될 수 있으며, 변수에 값으로서 할당될 수 있다.
  3. 고차 함수:  다른 함수에 인자로 넘기거나 리턴값으로 받을 수 있는 함수이다. 고차 함수로 다양한 동작을 추상화할 수 있다.
  • 언어의 문법을 일급으로 만들어 코드를 추상화할 수있다.
  • 함수형 반복과 함수형 도구를 사용해 고차원으로 추론한다. 고차함수를 사용하면 저수준의 코드를 반복적으로 사용하지 않게 되고, 도메인에 집중할 수 있게된다. 
  • 함수형 도구를 연결해 데이터 변환 파이프라인을 만든다.
  • 코드에서 시간의 의미는 마음대로 바꿀 수 있다. 
    여러 타임라인에서 코드가 실행된다면 기대하지 않은 실행 순서 때문에 버그가 생길 수 있다. 따라서 코드가 실행되는 순서를 이해하는 것은 매우 중요하다. 이에  이는 타임라인 다이어그램을 활용하면 시간 흐름에 따라 코드가 어떻게 실행되는지 시각화할 수 있다. 액션은 실행시점과 실행 횟수가 중요하다.
  • 고차함수로 안전하게 상태를 변경한다.
  • 반응형 아키텍처를 사용해 원인과 효과의 결합을 줄인다. 세상과 상호작용하기 위해 어니언 아키텍처 설계를 서비스에 적용한다.

 

  1. 액션과 계산, 데이터
  2. 일급 추상
신선아
신선아
신선아
메모장
신선아
전체
오늘
어제
  • 분류 전체보기 (35)
    • 블록체인 (0)
    • 웹개발 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • rk
  • d
  • sss
  • ㅇ

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
신선아
쏙쏙 들어오는 함수형 코딩: 중요 내용 간단히 기록
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.