Scala 창시자가 직접 집필한 스칼라 바이블 Programming in Scala. 바이블이라고 불릴 만큼 굉장히 상세하고 그만큼 책이 많이 두껍다.
욕심으로는 처음부터 다 공부하고싶지만 그러기엔 너무 많은 시간이 걸릴 것이기에, 앞으로 scala와 play, akka 등을 공부하고 다루면서 이해가 되지 않는 부분이 있을 때 그 부분을 집중적으로 공부해보려 한다.
그 시작으로 21장 암시적 변환과 암시적 파라미터 를 선택했다. 그 이유는, 앞서서 '누구나 쉽게 스칼라 + 플레이' 라는 책을 후루룩 공부했는데 가장 모호한 부분이 implicit 예약어 였기 때문이다.
결론부터 요약하면 implicit 은 암시적으로 형 변환을 가능하게 해준다.
예를 들면 Int 형의 파라미터를 받는 함수에 Double 형의 데이터를 넣는 경우 다른 언어에서는 type 에러가 발생한다. 하지만 scala 에서 implicit 을 사용하면 자동으로 형 변환이 되도록 만들 수 있다.
Scala 컴파일러는 타입에러가 발생하는 경우 바로 포기하는 것이 아니라 암시적 변환을 할 수 있는 함수나 클래스 등이 스코프 내에 있는지 찾아보고, 가능한 경우 형변환을 하여 에러발생 없이 코드가 진행되도록 한다.
이러한 암시는 아래와 같은 세가지 경우에 쓰인다.
암시는 코드를 좀 더 자연스럽고 가독성있게 하고 기존의 자료형들과도 자연스럽게 어우러지게 하지만 아무래도 명시적이지 않은 만큼 조심해서 사용해야 한다. 자칫 잘못하면 코드가 이해하기 어려워지거나 의도한대로 동작하지 않거나 할 수 있을 것이다.
implicit 이 대체 뭘까 모호해서 어렵게 생각했는데 책을 읽고 공부해보니 꽤나 재미있는 부분인 것 같다.
스칼라가 유연한 언어라는 말을 봤었지만 이해되지 않았고, -> 와 같은 부분들도 왜 이렇게 만들었을까 이해가 되지 않았었는데 어떤 원리인지 알고나니 오히려 재미가 느껴졌다.
C에서도 float형 변수에 int 데이터를 저장하면 자동으로 형 변환이 되었었는데 스칼라는 이런 부분을 개발자가 활용할 수 있도록 열어둔듯한 느낌도 든다.
scala 를 처음 접했을 땐 난해하게 느낀 부분이 많았는데, 점점 알아가는 재미가 있는 것 같다.
더 많이 알아가보고 싶다!