Devlog

하쿄이_hakyoiii·2022년 3월 2일
0

devlog

목록 보기
2/3

high order function(고차함수) 실무에 적용하기

고차함수란 아래의 조건을 하나라도 충족하는 함수를 말한다.
1. 함수를 인자로 받는 함수
2. 함수를 리턴하는 함수

오늘 실무에 적용했던 고차함수는 함수를 리턴하는 함수였다.

사용하게 된 배경

서버에서 오는 두 개의 데이터를 이용해서 데이터테이블에 세 가지의 다른 값(a 일 때, b일 때, ab일 때)을 그려줘야 했는데, 서버에서 보내주는 데이터가 number일 수도 있고, string일 수도 있었다.
같은 값을 그려줘야 하는데 number와 string일 때의 분기를 해주고 또 a b c 분기를 해주자니 조건문을 여러 개 쓰는 것이 굉장히 불필요한 로직일 것 같았고 조금 더 함수를 활용할 수 있는 방법은 없을까 생각해보게 되었다.

dataType에 따라서 seq: number, name: string 처음 분기를 해주고, 그 값에 따라 3가지의 값을 리턴해주는 함수를 리턴하면 가독성이 좋아지고 코드가 조금 더 명확해 진다는 장점이 있었다.

type DataType = 'Seq' | 'Name";
const displayDataBy = (data: DataType) => {
  if(data === 'Seq') {
    return (aDataSeq: number, bDataSeq: number): string => {
      switch(...) {
        case a : ...       
      }
    };
  } else {
  	return (aDataName: string, bDataName: string): string => {
      switch(...) {
        case a : ...       
      }
    };
  }
};

displayDataBy('Seq')(1, 3);

반복적인 코드가 들어가야 하는 부분이 많아서 재사용성을 어떻게하면 높일 수 있을까 고민하던 찰나에 꽤 괜찮은 코드를 작성했다고 생각했는데, 타입에러가 발생해버렸다.

타입에러에 대해선 다음장에 자세히 정리하도록 하겠다(공부가 필요함)

profile
Hello I'm front-end engineer hakyoung song!

0개의 댓글