쏙쏙 들어오는 함수형 코딩

18 posts

CHAPTER 18 반응형 아키텍처와 어니언 아키텍처

CHAPTER 18 반응형 아키텍처와 어니언 아키텍처 반응형 아키텍처(reactive architecture)는 순차적인 액션을 표현하는 방식을 뒤집습니다 어니언 아키텍처(onion architecture)는 함수형 프로그래밍으로 현실 세계를 다루기 위한 고수준의 개념입니다 두 아키텍처 패턴은 독립적입니다 반응형 아키텍처

4 min read

CHAPTER 17 타임라인 조율하기

CHAPTER 17 타임라인 조율하기 타임라인을 나누기 위한 동시성 기본형 경쟁조건(race condition)은 어떤 동작이 먼저 끝나는 타임라인에 의존할 때 발생합니다 코드에 Cut() 적용하기 딱 한 번만 호출하는 기본형 최초 한 번만 효과가 발생하는 액션을 멱등원(idempotent)이라고 합니다. 요약: 타임라인

2 min read

CHAPTER 16 타임라인 사이에 자원 공유하기

CHAPTER 16 타임라인 사이에 자원 공유하기 좋은 타임라인의 원칙 타임라인은 적을수록 이해하기 쉽다 타임라인은 짧을수록 이해하기 쉽다 공유하는 자원이 적을수록 이해하기 쉽다 자원을 공유한다면 서로 조율해야 한다 시간을 일급으로 다룬다 자바스크립트에서 큐 만들기 큐는 자료 구조지만 타임라인 조율에 사용한다면 동시성 기

2 min read

CHAPTER 15 타임라인 격리하기

CHAPTER 15 타임라인 격리하기 타임라인 다이어그램은 시간에 따라 어떤 일이 일어나는지 보여줍니다 두 가지 타임라인 다이어그램 기본 규칙 두 액션이 순서대로 나타나면 같은 타임라인에 넣는다 두 액션이 동시에 실행되거나 순서를 예상할 수 없다면 분리된 타임라인에 넣는다 액션은 순서대로 실행되거나 동시에 실행된다 순서대

6 min read

CHAPTER 13 함수형 도구 체이닝

CHAPTER 13 함수형 도구 체이닝 여러 단계를 하나로 조합하는것을 체이닝(chaining)이라고 합니다. 체인을 명확하게 만들기 1: 단계에 이름 붙이기 체인을 명확하게 만들기 2: 콜백에 이름 붙이기 체인을 명확하게 만들기 3: 두 방법을 비교 일반적으로는 콜백에 이름 붙이기가 더 명확하다 반복문을 함수형 도구로

4 min read

CHAPTER 12 함수형 반복

CHAPTER 12 함수형 반복 함수형 도구: map() X 값이 있는 배열을 받아서 Y 값이 있는 배열로 변환 한다 함수를 전달하는 세 가지 방법 전역으로 정의하기 지역적으로 정의하기 인라인으로 정의하기 함수형 도구: filter() 배열에서 일부 항목을 선택하는 함수 함수형 도구: reduce() 배열을 순회하면서 값

2 min read

CHAPTER 11 일급 함수 II

CHAPTER 11 일급 함수 II 코드 냄새 하나와 리팩터링 두 개 코드의 냄새: 함수 이름에 있는 암묵적 인자 거의 똑같이 구현된 함수가 있다 함수 이름이 구현에 있는 다른 부분을 가르킨다 리팩터링: 암묵적 인자 드러내기 리팩터링: 함수를 본문을 콜백으로 바꾸기 카피 온 라이트 리팩터링하기 함수 본문을 콜백으로 바꾸기

1 min read

CHAPTER 10 일급 함수 I

CHAPTER 10 일급 함수 I 코드의 냄새: 함수 이름에 있는 암묵적 인자 특징 거의 똑같이 구현된 함수가 있다 함수 이름이 구현에 있는 다른 부분을 가리킨다 리팩터링: 암묵적 인자를 드러내기 단계 함수 이름에 있는 암묵적 인자를 확인한다 명시적인 인자를 추가한다 함수 본문에 하드 코딩된 값을 새로운 인자로 바꾼다 함

3 min read

CHAPTER 9 계층형 설계 II

CHAPTER 9 계층형 설계 II 계층형 설계 패턴 패턴 1: 직접구현 패턴 2: 추상화 벽 패턴 3: 작은 인터페이스 패턴 4: 편리한 계층 패턴 2: 추상화 벽 추상화의 벽(abstraction barrier)은 세부 구현을 감춘 함수로 이루어진 계층 팀 간 책임을 명확하게 나누는 것 세부적인 것을 감추는 것은 대칭

4 min read

CHAPTER 8 계층형 설계 I

CHAPTER 8 계층형 설계 I 소프트웨어 설계란 무엇입니까? 소프트 웨어 설계 : 코드를 만들고, 테스트하고, 유지보수하기 쉬운 프로그래밍 방법을 선택하기 위해 미적 감각을 사용하는 것 계층형 설계란 무엇인가요? 계층형 설계는 소프트웨어를 계층으로 구성하는 기술 각 계층에 있는 함수는 바로 아래 계층에 있는 함수를 이

4 min read

CHAPTER 7 신뢰할 수 없는 코드를 쓰면서 불변성 지키기

CHAPTER 7 신뢰할 수 없는 코드를 쓰면서 불변성 지키기 레거시 코드와 불변성 방어적 복사 : 카피 온 라이트 원칙을 지키면서 안전하게 함수를 사용할수 있는 다른 원칙 우리가 만든 카피 온 라이트 코드는 신뢰할 수 없는 코드와 상호작용해야 합니다 모든 코드는 불변성이 지켜지는 안전지대에 있다 안전지대 밖으로 나가는

4 min read

CHAPTER 6 변경 가능한 데이터 구조를 가진 언어에서 불변성 유지하기

CHAPTER 6 변경 가능한 데이터 구조를 가진 언어에서 불변성 유지하기 동작을 읽기, 쓰기 또는 둘 다로 분류하기 쓰기 동작은 불변성원칙에 따라 구현해야 한다 불변성 원칙은 카피 온 라이트(Copy On Write)라고 한다 카피 온 라이트 원칙 세 단계 복사본 만들기 복사본 변경하기 복사본 리턴하기 쓰기를 하면서 읽

5 min read

CHAPTER 5 더 좋은 액션 만들기

CHAPTER 5 더 좋은 액션 만들기 비즈니스 요구 사항과 설계를 맞추기 액션에서 계산으로 리팩터링하는 과정은 단순하고 기계적이였다 기계적인 리팩터링이 항상 최선의 구조를 만들어 주는 것은 아니다 좋은 구조를 만들기 위해서 사람의 손길이 필요하다 중복이 항상 나쁜것은 아니지만 코드에서 나는 냄새이다. 코드 냄새는 나중에

2 min read

CHAPTER 4 액션에서 계산 빼내기

CHAPTER 4 액션에서 계산 빼내기 테스트하기 쉽게 만들기 DOM 업데이트와 비즈니스 규칙은 분리되어야 한다 전역변수가 없어야 한다 재사용하기 쉽게 만들기 전역변수에 의존하지 않아야 한다 DOM을 사용할 수 있는 곳에서 실행된다고 가정하면 안됩니다 함수가 결과값을 리턴해야 한다 함수에는 입력과 출력이 있습니다 입력은

3 min read

CHAPTER 3 액션과 계산, 데이터의 차이를 알기

CHAPTER 3 액션과 계산, 데이터의 차이를 알기 일반적으로 코드에 액션이 너무 많이 사용되고 있는 반면에 계산은 거의 찾아보기 힘든 이유를 알수 있다 액션과 계산, 데이터 함수형 프로그래머는 액션 계산 데이터를 구분한다 문제에 대해 생각할 때 문제에 대해 고민하고 있을 때도 문제를 액션과 계산 데이터로 나눠 생각해

8 min read

CHAPTER 2 현실에서의 함수형 사고

CHAPTER 2 현실에서의 함수형 사고 토니 피자에 오신 것을 환영합니다 계층형 설계(stratifed design)원칙이 어떤것인지 알아 본다 분산시스템을 이해 하려고 타임라인 다이어그램(timeline diagram)을 사용 파트 I: 액션과 계산, 데이터 액션: 호출 횟수와 시점에 의존하는 것 계산: 어떤 것을 결

4 min read

CHAPTER 1 쏙쏙 들어오는 함수형 코딩에 오신 것을 환영합니다

CHAPTER 1 쏙쏙 들어오는 함수형 코딩에 오신 것을 환영합니다 함수형 프로그래밍은 무엇인가요? 함수형 프로그래밍(functional programming) 수학 함수를 사용하고 부수 효과(side effect)를 피하는것이 특성인 프로그래밍 패러다임 부수 효과 없이 순수 함수(pure function)만 사용하는 프

7 min read