반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 시스템설계
- 리팩터링2판테스트
- 리액트구글애널리틱스
- git commit 협업
- FirebaseAnalytics
- 헤드퍼스트전략패턴
- git squash
- s3이미지다운로드됨
- 전략패턴
- 시스템설계면접예시
- react-ga
- 가상면접으로대규모시스템
- 리팩토링2판4장
- formik submitting not working
- Git commit 합치기
- react
- git commit merge
- 디자인패턴
- cypress React
- 시스템설계면접팁
- cypressBDD
- 시스템설계방법
- formik react-query submitting not working
- 시스템설계면접
- gitsquash
- 가상면접3장
- 가상면접2장
- awss3
- 테스트코드책
- file not found Error
Archives
- Today
- Total
mingg IT
[함수형 프로그래밍] 2장 현실에서의 함수형 사고 본문
현실에서의 함수형 사고
토니의 피자가게 예시
일급함수: 함수를 인자로 받는 함수
액션
- 호출 횟수와 시점에 의존 하는 것
- ex) 반죽 펴기, 피자 배달, 재료 주문
계산
- 어떤 것을 결정하거나 계획하는 것
- 계산은 아무 때나 사용해도 주방이 엉망진창이 될 걱정이 없음
- ex) 조리법에 나온 것을 두배로 만들기, 쇼핑 목록 결정
데이터
- 변경 불가능한 데이터
- ex) 고객 주문, 영수증, 조리법
계층형 설계
- 상위로 갈 수록 자주 변경됨
- 아래로 갈 수록 의존성이 많아 바꾸기 어렵고, 자주 바꾸지 않음
일급 추상
- 타임라인 다이어그램
- 로봇 한대가 피자를 만들기위해 진행되는 액션
- 액션은 실행 시점에 의존하기 때문에 실행 순서가 중요함
분산 시스템을 타임라인으로 시각화하기
- 로봇 3대를 동시에 이용해서 피자를 만들면 더 빠를 것이다
문제는 반죽만들기나, 치즈 갈기가 제일 늦게 오게 되어서 반죽만들기가 도착하기 전에 반죽펴기가 실행될 수 있음
타임라인 커팅 이용
커팅: 여러 타임라인이 동시에 진행될 때 서로 순서를 맞추는 방법
타임라인 커팅을 이용했을 때의 장점
- 서로 다른 작업들을 쉽게 이해할 수 있다 (타임라인을 실행 순서에 상관 없이 이해할 수 있음)
- 시간에 따라 진행하는 작업을 쉽게 이해할 수 있음 (동시에 실행되는 분산 시스템을 시각화 하기 좋음)
- 타임라인 다이어그램은 유연함 (타임라인을 보고 쉽게 코드로 옮길 수 있음)
요약
- 함수형 프로그래밍에서 가장 중요한 것은 액션, 계산, 데이터를 구분하는 것임
- 유지보수를 위해 계층형 설계를 사용해야함
- 타임라인 다이어그램은 시간에 따라 변하는 액션을 시각화 하는 방법임
- 타임라인 커팅은 액션이 올바른 순서로 실행할 수 있도록 보장해줌
'FrontEnd' 카테고리의 다른 글
[함수형 프로그래밍] 4장 액션에서 계산 빼내기 (2) | 2023.10.09 |
---|---|
[함수형 프로그래밍] 3장 액션과 계산, 데이터의 차이를 알기 (0) | 2023.09.23 |
[함수형 프로그래밍] 1장 쏙쏙 들어오는 함수형 코딩에 오신 것을 환영합니다 (0) | 2023.09.17 |
[함수형 프로그래밍] 쏙쏙 들어오는 함수형 코딩 리뷰 (0) | 2023.08.24 |
[이펙티브 타입스크립트] 8장 타입스크립트로 마이그레이션 하기 (0) | 2023.08.19 |
Comments