Skip to main content

Command Palette

Search for a command to run...

Ch02 현실에서의 함수형 사고

Published
2 min readView as Markdown

함수형 피자 가게

앞으로 살펴볼 함수형 개념 대략적으로 살펴보기

Part1 - 변경 가능성에 따라 코드 나누기

액션, 계산, 데이터 구분하기

계층화 설계 stratified design

자주 바뀌는 것 - 자주 바뀌지 않는 것에 따라 코드 나누기

  • 자주 바뀌는 것

    • 이번 주 메뉴, 이번주 사야 할 것

    • \=> 비즈니스 규칙

  • 바뀔 수도 있지만 자주 바뀌지 않는 것

    • 조리법 순서, 재료 목록에 대한 동작

    • \=> 도메인 규칙

  • 잘 바뀌지 않는 것

    • JavaScript 언어 자체

    • \=> 기술 스택

  • 각 계층은 그 아래에 있는 계층을 기반으로 만들어짐

Part2 - 일급 추상

타임라인 다이어그램

  • 액션이 시간 순서에 따라 어떻게 실행되는지 보여줌

  • 분산 시스템을 도입한다면?

    • 반죽 만들기, 치즈 갈기, 소스 만들기 작업을 나눠서 하게 되면 타임라인의 실행 순서가 섞이게 됨

      • 치즈 갈기 작업이 끝나지 않았는데 소스 만드는 로봇은 치즈를 뿌려야 함
    • 서로 다른 타임라인이 서로 다른 순서로 실행되는 문제

    • 분산 시스템의 어려움

      • 기본적으로 타임라인은 서로 순서를 맞추지 않음

      • 액션이 실행되는 시간은 중요하지 않고, 각각의 타임라인은 다른 타임라인 순서와 관계없이 진행되어야 함

      • 드물게 타이밍이 어긋나는 경우가 발생, 특히 주문이 많이 들어오면 더 많이 발생

    • 다만 타임라인 다이어그램으로 시스템의 문제를 알 수 있음

타임라인 커팅 cutting

여러 타임라인이 동시에 진행될 때 서로 순서를 맞추는 방법

  • 고차 동작 high-order operation 으로 구현

  • 각 타임라인이 독립적으로 동작하고, 특정 작업이 완료되면 다른 타임라인이 끝나기 기다림

More from this blog

Kimi Agentic Slides + Nano Banana로 4살 아들 맞춤 동화 만들기

Kimi Agentic Slides 지난주 금요일 (11. 28.) Kimi에서 Agentic Slide를 런칭하면서, 48시간 무제한 슬라이드 생성 이벤트를 진행했다. Nano Banana Pro가 워낙 강렬해서 이건 또 뭐가 다른지 써보고 있는 와중에, 아들이 옆방에서 징징대는 소리가 들렸고, 이걸로 동화책을 만들어봐도 되겠다는 생각이 뇌리를 스쳤다. 아들이 워낙 자동차를 좋아하고, 요즘 육아 이슈가 사회성을 길러주는 거라, 처음엔 사회성...

Dec 1, 20252 min read29
Kimi Agentic Slides + Nano Banana로 4살 아들 맞춤 동화 만들기

[발번역] Deno에 package.json 지원을 추가한 이유

원문: Why We Added package.json Support to Deno 내맘대로 세줄 요약 Node.js package.json 구린거 맞음. 이거에 대한 생각 여전함 근데 HTTP URL 쓰다보니 더 복잡하고 지저분해진 것도 맞음 이것저것 해보다가 뭐 어쩔수없이 이번에 package.json 지원하긴 했는데, 앞으로 deno: URL 지원할 거임. 기대해보셈 Deno 최신 버전 (v1.31, https://deno.com...

Mar 21, 20235 min read199

Wii-World

28 posts