메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

스칼라를 배워야하는 3가지 간단한 이유

한빛미디어

|

2015-06-09

|

by 한빛

26,040

제공 : 한빛 네트워크
저자 : Brian Foster
역자 : 박소은
원문 : 3 simple reasons why you need to learn Scala


Brian Foster편집자 노트 : 만약 당신이 Java SE나 Java EE 개발 환경에 확고히 자리잡은 자바 개발자라면, 새로운 기능 업데이트를 기다리는 것에 익숙할 것입니다. 변화는 정보 제공의 속도에서 시작됩니다. 여러분은 아마 조금 더 적은 양의 코드로 더 많은 것을 할 수 있을 것이라고 생각하며(실제로 그렇기도 합니다!) 스칼라나 클로저같은 JVM 언어에 손을 대보고 있을 수도 있습니다. 그러나 매일 쏟아지는 업무 책임들을 감당하기에는 진입 장벽이 너무 높다는 것을 깨달았을 것입니다. 변화를 해야하는 강한 동기가 없음에도 불구하고, 새로운 것을 배우는 이유는 무엇일까요?


Learning Scala Scala Days를 앞두고, 샌프란시스코의 Fort Mason Center는 아이디어를 공유하고 "양쪽 세계 모두에서 최고"인 언어의 최신 유스케이스들을 탐구하는데에 신난 개발자들로 가득차있을 것입니다. 스칼라는 École Polytechnique Fédérale de Lausanne에서의 작은 시작부터 점점 발전해왔습니다. 함수형 프로그래밍과 객체 지향 프로그래밍의 융합이 최첨단 기업과 스타트업을 넘나들며 빠르게 발전하고 있는 지금이 코드 스니펫에 발만 담그는 것을 멈추고 기본부터 다져갈 좋은 타이밍입니다. 아래의 글은 스칼라를 공부하는 것이 왜 당신을 더 좋은 자바 개발자로 만들어주는 지에 대한 세가지 간단한 이유입니다. Jason Swartz의 새로운 책 Learning Scala로부터 발췌하였습니다. 

 

 

1. 더 좋은 코드를 짜게 될 것입니다

여러분은 애플리케이션을 안정화시키고, 의도하지 않았던 부작용으로부터 발생하는 이슈들을 줄이기 위해 함수형 프로그래밍 테크닉을 사용할 수 있을 것입니다. 변할 수 있는 자료 구조로부터 변하지 않는 자료구조로 바꾸고, 일반적인 메서드로부터 환경에 영향을 미치지 않는 순수한 함수(pure functions)로 바꿈으로써, 여러분의 코드는 더 안전해지고, 더 안정화되고, 더 쉽게 이해될 것입니다.

또한, 여러분의 코드는 더 간단해지고 더 표현력이 있어질 것입니다. 만약 현재 Python, Ruby나 Javascript와 같은 동적 언어로 작업을 하고 있다면, 짧은 표현 문법(expressive syntax)을 사용하는 것, 불필요한 구두법을 피할 수 있는 것, 맵과 필터로 작업을 간단하게 한줄로 줄이는 것 등의 장점에 이미 익숙할 것입니다. 만약 Java, C# 그리고 C++ 같은 정적 타입 언어에 더 익숙하다면, 타입과 구두점, 정형화된 코드를 없앨 수 있습니다. 또한, 다른 컴파일 언어에서는 보기 힘든 표현 문법을 채택하는 것이 가능합니다.

마지막으로, 당신의 코드에 타입이 강하게 적용될 수도 있고(명백하게 타입을 구체화하지 않고도 말이죠) 다중 상속과 믹스인(mix-in) 모두를 지원합니다. 더불어, 어떤 타입 불일치이던지, 코드가 실행되기 전에 잡아냅니다. 정적 타입 언어 개발자는 타입 안정성(type safety)과 스칼라 낼 수 있는 성능에 익숙해 질 것입니다. 동적 언어 개발자는 표현 언어(expressive language)에 머물면서도 안정성과 성능을 놀라울 만큼 향상시킬 수 있을 것입니다.


2. 더 좋은 엔지니어가 될 것입니다

타입 안정성을 갖추고 고성능인 애플리케이션(Java나 C++에서 처럼)을 짧고 표현적인 코드(Ruby나 Python에서 처럼)로 작성할 수 있는 엔지니어는 다른 이들에게 깊은 인상을 남기면서 몸값이 비쌀 것입니다. 저는 여러분이 이 책을 읽고 스칼라 프로그래밍을 시작한다면, 이 장점을 모두 취하는 프로그램을 작성할 수 있을 것이라고 생각합니다. 스칼라의 함수형 프로그래밍 특징의 장점을 모두 누리면서도 타입안정성을 갖춘 표현적인 코드를 작성할 수 있으며, 그 어느때보다 생산적이 될 것입니다.

어떤 새로운 프로그래밍 언어를 학습하는 것이든, 이질적인 문법을 접하는 것 이외에도, 문제를 해결하고 알고리즘과 자료 구조를 디자인하는데에 새로운 접근을 할 수 있는 혜안을 주기에 노력할 가치가 있습니다. 하지만 스칼라같은 함수형 프로그래밍 언어를 공부하는 것은 무엇보다도, 자료 변이성, 고계함수(higher-order function), 부작용 등의 컨셉을 새로운 아이디어로써 받아들이게 해줄 뿐만 아니라, 이를 현재의 코딩 작업과 디자인에 적용하는 방법에 대한 도움을 주기 때문에 가치가 있습니다. 인라인 함수와 정적 타입으로 작업하는 것이 현재의 니즈에 맞지 않을 수도 있지만, 이들의 장점과 단점에 대해 직접 경험해볼 수 있을 것입니다. Java 8에서의 새로운 람다 표현처럼, 여러분이 현재 사용중인 언어에 부분적으로 이러한 기능들을 적용하는 것이 가능해졌을 때, 여러분은 그들을 적절하게 다룰 준비가 될 것입니다.


3. 더 행복한 엔지니어 될 것입니다

위 문구에는 과장이 다소 포함되어있긴 하지만, 만약 여러분이 더 잘 작동하고, 더 잘 읽히고, 디버깅이 더 잘되고, 전보다 빠르게 실행되는 코드를 쉽게 작성 할 수 있는 수준의 능숙한 개발자가 된다면, 무엇보다도 이러한 코드를 더 빠르게 작성할 수 있는 개발자가 된다면, 그 과정이 행복해질 것입니다.

물론 코딩이 인생의 전부라고 말하는 것이 아닙니다. 평균적인 소프트웨어 엔지니어의 작업 스케쥴 중 반 이상이 코드를 작성하는 데에 소요된다는 뜻도 아닙니다.

그러나 코드를 작성하는 시간이 더 즐거워질 것이고, 여러분의 작업에 더 큰 자부심을 가질 수 있을 것입니다. 이 정도면, 새로운 것을 배우기 충분한 이유가 되지 않을까요.

TAG :
댓글 입력
자료실

최근 본 책0