요즘 오랜만에 신나게 열정적으로 개발을 하고 있다. scala의 매력에 빠졌다. 앞으로 주력 언어를 perl 대신 scala로 사용하고자 한다. 아직 scala가 덜 익숙해서 좀 어려운 부분이 있지만 참 매력적인 언어이다. perl 못지 않게 간결하게 쓸 수도 있고, 매우 유연해서(flexible) 한가지 작업을 하기 위한 다양한 코드 표현이 가능하다. 그리고 procedural가 아닌 functional 언어라서 데이터 중심의 패러다임과 병렬성을 적용하기 좋다.
이제 웬만한 map reduce를 scala, spark으로 작성할 수 있게 됐다. map reduce로 6개 job을 6분 동안 실행시켰던 것을 scala, spark 로 만들어서 실행해보니 2분이 걸렸다.
아직 불편한 것 중 하나는 디버깅, 테스트가 쉽지 않다는 것이다. perl로 할 때는 소스 코드 조금 고치고 바로 그냥 다시 돌려보면서 할 수 있는데, scala, spark으로 할 때는 소스 코드를 고치면 컴파일을 다시해야 하고(sbt 컴파일 하는데 수초 정도 시간 걸림), 일부분만 실행해보는 것이 어려워서 작은 테스트 데이터로 해봐야하고, 실행 중간 값을 출력해보기 어렵다. 그리고 결과 데이터를 stdout으로 간단히 출력해보는 것도 가능할 것 같은데 아직 해보지는 않았다. 좀 더 빠르고 쉽게 간단히 디버깅, 테스트 하면 좋겠다. sbt를 데몬 형태로 띄워두고 빠른 컴파일/인터프리터 방식이 있다는데..
댓글 없음:
댓글 쓰기