TIL-20220806

khundi·2022년 8월 6일
0
post-thumbnail

함수형 프로그래밍

자료처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임.

함수형 프로그래밍의 특징

1. 순수 함수

  • 동일한 입력을 받았을 때, 항상 같은 값을 반환한다.
  • 부수효과(side-effect)를 갖지 않는다. 외부에 전혀 영향을 끼치면 안된다.

순수 함수의 장점

  • 순수 함수는 실행 시점이 중요하지 않다. 항상 동일한 결과를 만들어내기 때문이다.
  • 주어진 함수의 결과를 항상 예측할 수 있다.

2. 비상태, 불변성(Stateless, Immutability)

  • 함수형 프로그래밍에서의 데이터는 변하지 않는 불변성을 유지해야 한다.
  • 데이터의 변경이 필요한 경우, 원본 데이터 구조를 변경하지 않고 그 데이터의 복사본을 만들어서 그 일부를 변경하고, 변경한 복사본을 사용해 작업을 진행한다.

3. 오직 표현식만 Expressions Only

  • switch, for 을 이용한 명령형 프로그래밍은 함수형 프로그래밍이 아니다.
  • switch, for 대신 forEach, map과 같은 메서드를 이용하여 순회 해야한다.

콜백 함수

함수에 인자로 들어가는 함수.
나중에 호출되는 함수를 말한다.
특별한 선언이나 문법적 특징을 가지고 있는 것이 아닌 그냥 함수다. 나중에 호출되는.
다른 함수에 인자로서 전달되는 함수로 호출방식에 의한 구분으로 붙은 이름이다.

슈도코드

슈도 코드(Pseudo Code)란
의사(疑似: 비교할 의, 비슷할 사 | Pseudo: 가짜의- ) 코드는 컴퓨터 프로그램이나 알고리즘이 수행해야할 내용을 우리가 사용하는 언어 (한국어 또는 영어 등)로 간략히 서술해 놓은 것.

실제 코드가 아닌 사람들의 이해가 목적이기 때문이다.

상수화

  • 재사용될만한 상수들 constants.js로 분리
  • 매직넘버 상수화 시키기

예를 들어 글자 길이가 4 이하여야 한다라는 조건이 있을 때 보통

if(input.value <= 4) {}

이런식으로 구현하는데 다른 사람이 보기에 4는 무엇을 의미하는지 바로 알기 어렵다.

그래서 4를 상수화를 통해 4의 의미를 쉽게 전달할 수 있다.

const INPUT_MAX_LENGTH = 4;
    
if(input.value <= INPUT_MAX_LENGTH) {...}

상수 네이밍 규칙은 uppercase with words separated by underscores ("_") 라고 한다.

모두 대문자로 하고 단어 사이엔 언더스코어를 넣는 Snake Case를 사용한다.

마무리

오늘의 뽀모도로
10 뽀모도로 : 4.1h

profile
안녕하세요. 웹 프론트엔드 개발자 전성훈입니다.

0개의 댓글