- 커링은 무엇이고 왜 사용하는가?
: 클로저를 이용하여 여러 개의 매개변수를 하나의 호출문에 전달하지 않고, 여러 호출문을 체이닝하여 매개변수를 각각 하나씩 전달하는 기법
ex)f(a, b, c) => f(a)(b)(c)
: 커링을 사용하면 관심사의 분리 관점에서 이로움, 구체적으로 관심사가 서로 다른 다양한 매개변수의 조합을 분할하여 전달할 수 있다는 점에서 코드 작성 시 효율을 높일 수 있음
: 커링을 구현하려면 함수가 함수 자체를 반환하는 구조로 작성하는데, 이 때 화살표 함수를 사용하면 좀 더 간단하게 작성할 수 있음
ex)(a) => (b) => { }
- 태그드 템플릿(Tagged Template)은 무엇이고 왜 사용하는가?
: 템플릿 리터럴을 함수 호출문처럼 사용할 수 있는 문법을 의미함
: 태그드 템플릿을 작성하여 호출하면 첫 번째 매개변수로는 템플릿 리터럴 안에 작성한 정적 데이터(문자열)을 배열로 전달하고, 두 번째 매개변수로는 템플릿 리터럴 안에 작성한 동적 데이터(${ }
안의 값)를 배열로 전달함
: 이처럼 문자열 데이터를 분리하여 매개변수에 전달할 수 있다는 차원에서 라이브러리를 사용할 때 Styled Component 등을 생성하는 경우 주로 사용함
toEqual
메서드와toStrictEqual
메서드의 차이점은 무엇인가?:
toEqual
과toStrictEqual
은 객체를 비교할 수 있는 메서드라는 점에서 동일, 그러나toStrictEqual
은 프로퍼티 값이undefined
인 경우 테스트 결과를 실패로 반환함
: 즉 말 그대로toStrictEqual
이 좀 더 엄격한 비교를 수행함
- Window 환경에서 스크립트 명령어로 환경 변수를 전달할 때 참조할 수 없는 오류가 발생한다면, 어떻게 해결할 수 있는가?
:
cross-env
패키지를 설치하면 문제를 해결할 수 있음, 작성할 명령어 앞에cross-env
삽입하면 됨