lodash 메소드 중 하나인
thru()에 대하여 알아봅니다.

# Lodash thru() 메소드 알아보기
lodash thru()는 영어 단어 through의 사전적 의미인 "무엇을 통하다~", "이어지다"와 같이
연속되는 체인의 중간에서 특정한 뭔가를 동작하거나 검증하는데 사용하는 메소드입니다.
사용 문법은 아래와 같습니다.
_.thru(Function)생각해보면
thru()를 사용하지 않아도 특정한 기능을 구현할 수 있습니다. 하지만 정해진 기능의 사이에 추가해서 어떤 동작을 수행하게 하거나 검증, 비교 등의 목적으로 thru()를 사용하면 효과적이라 하겠습니다.
thru()를 실행하면 내부 함수를 통해 상위 체인까지의 결과물을 인자로 전달 받을 수 있습니다. 이 값을 가지고 원하는 기능을 만들어 수행하도록 하고 다음 체인에 반환하게 됩니다.
! lodash thru() 예제보기
간단한 예제를 알아봅니다. 만약 아래와 같이 연속된 숫자의 제곱값을 얻을 때 100 보다 큰 값을 제거하기 위한 목적으로 thru()를 작성할 수 있습니다.
_.chain([3, 6, 9, 12, 15])
.map(n => Math.pow(n, 2))
.thru(myArray => myArray .filter(num => num < 100))
.value();
// Result
[9, 36, 81]
위 예제와 같이 100보다 작은 값만 얻기 위해 중간에 _.thru()를 사용하여 값을 필터링하는데 사용하는 것이 가능합니다. 단독으로 사용하는 것보다 thru()를 사용하는 것이 전체 프로세스와 다른 기능 단위로 동작하는 것을 나타낼 수 있습니다.
! 마치면서
lodash()의 thru() 메소드는 tap() 메소드와 매우 유사하게 동작하며 둘 다 디버깅하거나 검증하는데 사용하는 것이 가능합니다. 다만 tap()의 경우 이 후 값을 변환하지 않지만 thru()는 값을 수정하는 것이 다르다는 차이점이 있으므로 상황에 맞게 선택해 적용할 수 있겠습니다.
또 다른 이유로 중간에 반환된 값을 가지고 이 후 동작을 수행할 수 있기 때문에 만약 배열의 필터링에 thru()를 사용한다면 반복에 사용되는 횟수가 처음보다 줄어들 수 있으므로 결과적으로 성능 향상에 도움이 될 수 있겠습니다. 이런 이유로 thru는
함수형 프로그래밍과 잘 어울리는 메소드라 할 수 있죠.
thru()의 특징 또는 장점을 요약하면 다음과 같습니다.
- 작업 중간에 결과를 검사하거나 수정하는 경우 편의성 및 성능의 이점
- 디버깅 또는 검증 등의 과정에 편리
- 중간에 얻은 결과를 다음의 과정에 전달하는데 유용
이와 같은 장점이 있겠다고 하겠습니다. 여기까지 lodash의
thru()에 대하여 알아보았습니다.