267
5
장
암시
implicit def urlToProcess
(
url
:
URL
):
URLBuilder
=
...
implicit def stringToProcess
(
command
:
String
):
ProcessBuilder
=
...
implicit def stringSeqToProcess
(
command
:
Seq
[
String
]):
ProcessBuilder
=
...
휴! 꽤 긴 목록이다. 하지만 이 목록을 대강 살펴보고 나서 스칼라 라이브러리가 암시를 어떻게
활용하고 지원하는지 감을 잡을 수 있었으면 한다.
5.8
암시를 현명하게 활용하기
암시적 인자 기법은
DSL
을 만들거나, 준비 코드를 최소화한
API
를 만들 때 상당히 유용한 도
구다. 하지만 이런
API
나
DSL
에 전달된 암시적 인자와 값은 거의 눈에 띄지 않기 때문에 코드
를 이해하기가 상당히 어렵다. 따라서 암시적 인자를 현명하게 사용해야 한다.
암시를 눈에 잘 띄게 만드는 방법 하나는 암시적 값을 모두
implicits
라는 패키지나
Implicits
라는 객체에 넣는 관례를 따르는 것이다. 이런 방식을 사용하면, 코드 사용자가 ‘
implicit
’라는
단어를 임포트 문에서 보고, 스칼라에서 많이 사용되는 기본 암시와 더불어 다른 암시를 추가
로 사용 중임을 알 수 있다. 다행히 요즘의
IDE
는 사용 가능한 암시를 보여준다.
5.9
마치며
이 장에서는 스칼라의 암시에 대해 자세히 살펴봤다. 암시의 능력과 유용성을 그 단점과 함께 제
대로 알기 바란다.
이제 함수형 프로그래밍의 원칙으로 깊이 들어갈 준비가 되었다. 먼저 핵심 개념을 논하고, 그
런 개념이 왜 중요한지 설명할 것이다. 그 후 라이브러리에 있는 대부분의 컨테이너 타입이 제공
하는 강력한 함수를 살펴볼 것이다. 또한 그런 함수를 사용해서 간결하지만 강력한 프로그램을
만드는 방법을 볼 것이다.
Get 프로그래밍 스칼라: 실용적인 스칼라 활용법을 익히는 가장 확실한 실전 바이블 (2.11.x 버전 기반) now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.