Skip to content

Scala

스칼라(Scala)는 객체 지향 프로그래밍 언어와 함수형 프로그래밍의 요소가 결합된 다중패러다임 프로그래밍 언어이다. 스칼라의 이름은 <skah-lah>라고 발음하며 'Scalable Language'에서 따왔다. 적은 양의 코드로도 방대한 규모의 시스템을 작성할 수 있다는 특징이 있다. 자바의 자바 가상 머신 에서 실행 할 수 있으며 자바의 API도 그대로, 혹은 스칼라의 형식에 맞춰 약간 수정한 형태로 사용 할 수 있다.

스칼라는 다른 언어로 표현할 수 있는 패턴을 매우 간결하게 표현할 수 있는 범용 프로그래밍 언어이다. 객체 지향 프로그래밍 언어와 함수형 프로그래밍의 요소의 결합과 자바 API의 적용을 통해 프로그래머의 생산성을 높이는데 도움을 준다. 그 예로 같은 기능을 하는 프로그램을 작성했을 때 자바로 작성했을 때에 비해 2-3배의 코드 길이가 줄어든다.

자바 런타임 환경(런타임 환경 (JRE))과의 상호 호환성이 좋으며, .NET을 위한 지원도 제공하고 있다.

Categories

Ruby로 만든 Sinatra 에 영감을 얻어 만든 web micro-framework 라고 소개하고 있습니다. 다른 full-framework 과는 달리 가볍고, 유연합니다. 개발자가 다른 형태의 라이브러리를 사용할 수 있도록 모듈화가 잘 되어있고, 기존 servlet container 표준을 잘 지킵니다. 특이한 것은 scalate 라는 템플릿 엔진을 이용하여, 다양한 포맷을 쓸 수 있습니다. (Scaml, SSP, Jade 등등) 이거 상당한 장점이라고 보는게, 여러가지 포맷 중 맘에 드는 거 사용하다가 중간에 바꿔도 되고, 여러명이 다른 포맷을 사용해도 됩니다. (이게 장점인지 단점인지 다를 수 있겠지만 저는 장점으로 보고 싶습니다.) 또한 Play Framework 2 에서 제공하는 Template 엔진을 spin off 하여 제작한 Twirl 도 지원합니다. spray.io 처럼 Akka 를 이용하여 비동기 통신을 지원하고, Atmosphere 를 이용한 비동기 통신도 지원합니다. REST-API 를 개발하고, 문서를 만드는 것도 Swagger 를 이용하면 아주 좋은 결과물을 만들 수 있습니다.

  • 고차함수 (Higher-order function)