747
24
메타프로그래밍: 매크로와 리플렉션
의사인용 문서에는 블록의 문장이 실행되기 전에 디버깅 메시지를 출력하는 것과 같은 다른
유용한 예제가 가지 있다.
24.4.2
매크로에 대한 마지막 고찰
매크로의 강력함은 상당히 매혹적이다. 하지만 매크로를 개발하고, 디버깅하고, 유지보수하는
것은 어려운 일이다. 서드파티 라이브러리에서 매크로를 활용하는 방법에 대한 많은 예제를
있을 것이다. 또한 전체 리플렉션
API
, 특히 매크로 패키지는 실험적인 기능이며, 계속해서
빠르게 변할 있음을 염두에 두어야 한다.
24.5
마치며
지금까지 책을 읽은 독자라면, 스칼라의 모든 주요 기능과 그런 기능을 가장 활용하는
법을 배웠을 것이다. 책의 예제 코드가 여러분의 프로젝트에서 틀로 활용할 수 있을 정도로
쓸모 있기를 바란다. 다른 종류의 애플리케이션이나 툴킷에 대한 더 많은 예제가 필요한 독자
타입세이프 웹사이트의 액티베이터 프로젝트 (
http
://
typesafe
.
com
/
activator
)보라.
또한 타입세이프는 스칼라, 아카, 플레이, 그리고 여러 가지 새로운 도구에 대한 개발자와 상용
사용자 지원을 제공한다. 타입세이프는 교육과 컨설팅도 제공한다.
스칼라가 향후 몇 년간 어떻게 변할까? 책의 초판이 나온
5
년이 지났다. 언어의 성숙도와
업계가 스칼라를 채택하는 부분에서 그간의 변화는 엄청나다. 나는 앞으로도 계속 사용자층이
빠르게 늘어나리라 생각한다. 특히 빅데이터 영역에서 더 그렇다. 스칼라 자체의 변화는 안정화
되는 중이다. 심지어 매크로조차도
1
~
2
안에 안정화될 것이다. 스칼라나 스칼라 생태계
대해 진행 중인 대부분의 작업의 목적은 성능을 향상시키고, 버그를 줄이며, 언어의 ‘결점’
쓰지 못하게 방지하고,
IDE
같이 스칼라를 사용하기 위한 도구를 향상시키는 있다.
마틴 오더스키는 현재 새로운 타입 시스템을 기반으로 하는 스칼라와 비슷한 언어를 개발 중이
다. 그 언어의 이름은
DOT
며, 이는 의존성 객체 타입 지정
dependent
object
typing
의 약자로, 스칼
3
.
0
이 될 지도 모르겠다 (관심 있는 독자는
DOT
슬라이드(
http
://
bit
.
ly
/
1wQmW72
)
PDF
(
http
://
bit
.
ly
/
1E8x3Ff
)보라 ).
748
4
고급 주제 및 실전 응용
DOT
원소가
3
개인 배열같은 개념을 타입으로 기술할 있는 의존성 타입 지정
dependent
typing
이라는 최신 타입 이론을 바탕으로 한다. 현재 대부분의 언어의 타입 시스템에서는 타입으
로 크기에 대한 제약 사항과 같은 것을 표현할 수 없다. 왜 이것이 문제가 될까? 그런 제약사항
을 표현할 수 있다면 정확성을 증명할 수 있는 프로그램이라는 우리의 궁극적인 목표에 더 가
까이 다가설 있기 때문이다. 그런 경우, 타입을 정리
theorem
로, 프로그램을 그 정리에 대한
proof
으로 생각할 있다 (위키피디아 페이지 (
http
://
bit
.
ly
/
1rGuOjy
)보라 ).
이 새 언어에서는 타입 시스템을 다른 방식으로 단순화하고, 스칼라 언어의 단점도 없앨 것이
다. 하지만 그렇게 되려면 적어도 년은 걸릴 것이다.
그러는 동안 여러분은 성숙한 자바 생태계의 풍성함을 누리면서 스칼라를 활용해서 애플리케이
션을 만드는 방법을 향상시킬 있다. 또한 거기서 한발 나아가 최근 활기가 넘치는 자바스
크립트 생태계를 스칼라를 자바스크립트로 이식한
scala
.
js
(
http
://
www
.
scala
-
js
.
org
)
활용할 수도 있다. 나는 책이 여러분이 발전해나가는 도움을 주기를 희망한다.

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.