아파치 카프카(Apache Kafka)의 소스코드를 분석하다가 브로커 서버 코드가 스칼라(Scala)라는 언어로 구성되어 있는 것을 알게되었다. 스칼라로 짜여진 부분에서 자바 클래스를 가져다 쓰고 있고, 그 부분을 고려한 코드들이 자바 소스코드에 남아있어서 어쩔 수 없이 스칼라 코드를 봐야했다.
하지만 내 맥북에 설치되어 있는 인텔리제이에는 스칼라 설정이 되어 있지 않았고 스칼라 코드는 그냥 평범한 텍스트 파일에 불과했다. 메소드 호출이나 클래스 등을 따라갈 수 있는 IDE의 기능을 사용할 수 없어서 코드 분석이 매우 어려웠다.
그래서 IntelliJ에서 스칼라 코드를 잘 볼 수 있도록 설정을 변경해봤다.
스칼라(Scala) 설치하기
스칼라는 JVM 위에서 동작하는 프로그래밍 언어로 자바(Java)가 미리 설치되어 있어야 한다. 일단은 인텔리J(IntelliJ)와 JDK는 설치되어 있다고 가정하겠다. 이제 스칼라를 설치해야 한다. 스칼라는 스칼라의 공식 다운로드 페이지 (https://www.scala-lang.org/download/)에서 설치할 수 있다. 하지만 더 편한 brew 명령을 통해 설치했다.
$ brew install scala
HomeBrew를 통해 쉽게 설치가능하다. 윈도우의 경우 scoop 을 이용할 수 있고 리눅스의 경우 apt-get이나 yum 등을 이용해서 스칼라를 설치할 수 있을 것이다.
스칼라가 설치되었다면 "scala"라는 명령을 실행해보자.
$ scala
Welcome to Scala 2.12.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_191).
Type in expressions for evaluation. Or try :help.
scala>
그러면 위와 같이 스칼라의 expression을 입력할 수 있는 쉘 비슷한 입력창이 뜨게 된다.
인텔리제이 플러그인(IntelliJ Plugin) 설정하기
스칼라를 설치했으니 이제 인텔리제이(IntelliJ)의 플러그인을 설치해야한다.
[Preferences] - [Plugins] 을 들어간다.
[Browse repositories...] 버튼을 눌러서 스칼라 플러그인을 찾는다.
[Install] 버튼을 눌러서 Scala 플러그인을 설치한다.
플러그인 설치가 끝나면 재시작을 해준다.
재시작을 하면 프로젝트의 스칼라 코드를 분석하는 "Indexing" 과정을 거친다.
그러다가 No Scala SDK in module 이라는 메시지와 함께 스칼라 코드의 부분부분에 빨간색이 쳐지고 문제가 있음을 알린다. 맥북에 설치한 스칼라가 설정되어있지 않은가보다. (SDK를 찾아서 설정하려했는데 경로를 볼 수 없었다.)
[Project Structure]를 실행한다.
Global Libraries 항목에서 "+" 버튼을 눌러서 "Scala SDK"를 추가한다. 항목이 없을 경우 [Download]를 하거나 설치된 Scala SDK를 찾아서 추가해준다.
스칼라 SDK가 추가되면 스칼라 코드를 볼 수 있다.
스칼라 코드가 하이라이트 되었고 시간이 지나면 심볼들도 인덱싱되어 코드분석을 쉽게 할 수 있다.
댓글