바닐라코딩

8주차 과제 - 콜백함수란 무엇인가

단점이없어지고싶은개발자 2021. 9. 12. 20:50
반응형

이번 주 과제는 콜백함수에 대한 과제였다. 자바스크립트에는 Promise라는게 존재하는데 그 전에 함수를 직접 넘겨주고, 그 함수를 가지고 또 넘겨주고 하는 식으로 진행이 됐다. 그러면서 문제점은 점점 코드가 길어지면서 

Callback Hell이 생겨나기 시작했다.

callbackHell...

저 코드를 본 순간 가독성과 어디서 무엇이 잘못되었는지, 코드를 찾고찾고 찾다가 미로에 갇히게 된다. 그래서 Promise가 나오는데 이번 주 과제는 예전으로 돌아가는 과제였다. 

이벤트루프에 있는 병렬적, 직렬적인 이벤트루프를 받아 다시 넘겨주는 문제였는데..정말정말 어려웠다. 그러면서 캐치하지 못한 부분들을 몇 가지 적어보자면

 

1. 에러체크

만약 두 개의 인자를 받는다고 생각하자

function foo(item, func); 

그런데 item이 배열을 받고, func의 함수를 받아야 되는데 그러지 못한다면? 

 

그래서 먼저 에러체크를 해주면 잘못 인자를 받아오면 케이스 이외 예상하지 못한 edge케이스를 고려해야된다!! 

 

2. early return 

수행할 작업이 없거나, 바로 return해야 될 부분이 있다면 코드 작성시 굳이 끝까지 볼 필요가 절대적으로 없다!

 

3. IIFE

즉시 실행 함수 표현(IIFE, Immediately Invoked Function Expression)은 정의되자마자 즉시 실행되는 Javascript Function 를 말한다. - https://developer.mozilla.org/ko/docs/Glossary/IIFE

 

IIFE - 용어 사전 | MDN

즉시 실행 함수 표현(IIFE, Immediately Invoked Function Expression)은 정의되자마자 즉시 실행되는 Javascript Function 를 말한다.

developer.mozilla.org

4. boolean값으로 평가되는 표현을 쓸 때

if (arr.length === 0) {

something..

}

 

이렇게 작성해도 되지만 만약 문자열이 아니거나 다른 것이 들어올 수 있기 때문에 boolean으로 처리해주는게 안전하다

if(!arr.length){

something...

}

 

5. 함수형 프로그래밍 

 

https://medium.com/%EC%98%A4%EB%8A%98%EC%9D%98-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%ED%95%A8%EC%88%98%ED%98%95-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-curry-%EC%99%80-partial-application-a7f83472cf53

 

함수형 프로그래밍 — Curry 와 Partial Application

이들은 대체 무엇이고 어떻게 사용할 수 있는가?

medium.com

 

반응형