레이블이 JVM인 게시물을 표시합니다. 모든 게시물 표시
레이블이 JVM인 게시물을 표시합니다. 모든 게시물 표시

2012년 11월 10일 토요일

요즘 공부하고 있는 Scala 라는 언어 소개 자료

요즘 JVM 에서 도는 java, groovy, closure, scala 등을 공부하고 있습니다.

java 야 기본 중에 기본이라, 말하면 잔소리고,

groovy는 동적 언어로서 간단한 프로토 타입이나 테스트 코드 작성에 유용하고, Solution에서 동적 script 가 사용될 때, groovy 를 표준으로 삼게 되면, 많은 잇점이 있습니다. 같은 JVM에서 돌고, 동적인   Script를 class 로 빌드해서 재 사용이 가능하여, 속도면에서도 상당한 장점을 가지게 됩니다. 또한 기존 java 라이브러리를 활용하게 되면, 더욱 강력한 기능을 제공할 수 있습니다.

groovy의 단점이라면, 동적언어로서 숙명적으로 실행 속도가 문제가 됩니다...
java 와 비교해서 같거나 더 뛰어난 성능을 가지면서, 여러가지 발전적인 기능을 가진 언어는 없을까 고민 중에 회사 동료들이 Scala에 대한 정보를 알려줘서 알게 되었습니다.

Scala는 OOP + 함수형 언어 특성 모두를 가지는 다방면의 기능을 가진 언어입니다.
만약 새로운 서비스를 만들게 된다면, Java 보다는 Scala 를 주요 언어로 선정하고 싶을 정도입니다.

다음은 제가 본 Scala 관련 소개 자료 중 유용한 자료라 생각됩니다.
한번 보시고, 괜찮다고 생각되신다면 공부해 보시길...



2012년 10월 26일 금요일

새로운 JVM 용 통신 서버 : vert.x

node.js 라는 비동기 통신 서버가 나온게 2009년 인가요?
어쨌든 javascript의 재발견이니, 새로운 시도니 엄청 각광을 받으며, 지금도 잘나가고 있지요...

엄청난 동접 수를 지탱해야 하는 웹 서버의 앞단을 node.js 로 하는 게 거의 진리가 되고, 그 이외에 내부 통신 부분에서도 쓰이도록 했습니다. ㅎㅎ

근데 말이죠 node.js 의 한계가 하나의 프로세스에 하나의 스레드만 있는 구조라 여러 프로세스를 구동 시켜야 하고, 이런 다중 프로세스들의 관리는 또 다른 프로세스 ( 캐시 / MQ / DB ) 에서 관리하도록 해야 합니다.
즉 부가 작업이 많이 들어가게 되지요.

뭐 어차피 대부분의 어플리케이션이 DB, Cache 는 기본으로 사용하니 별 문제가 안되겠지만, 직접 만들어야 한다면 좀 그렇죠?^^

더군다나 client 와 server 모두 javascript 로 되어서 좋다고 하는 분들도 많지만, 여전히 서버 개발자들은 java 를 더 선호하고, JVM 의 성능과 안정성에 많은 신뢰를 보내고 있지요...

여기에 node.js 와 같이 비동기 통신 모듈이면서, JVM 위에서 구동되어, 여러 언어로 구현할 수 있는 vert.x 에 대해 소개합니다.




소개 자료를 보면 기존 node.js 의 장점을 모두 수용하고, 신뢰성 있고 다양한 언어로 구현할 수 있어 많은 개발자가 쉽게 접근할 수 있음을 알 수 있을 것입니다.

물론 nginx 나 play! framework 처럼 이미 잘 만들어진 web server나 web framework을 사용해도 좋지만, 성능이 아주 민감하다면, 고려해볼만 합니다.

닷넷 진영에서는 이러한 정보에 대해 접할 시도나 기회도 아주 적었는데, Java 진영으로 오니, 이러한 새로운 제품이나 시도가 넘쳐나서, 기쁘기도 하고, 버겁기도 하네요^^

어쨌든 Java 진영의 거의 모든 고성능 통신 모듈은 netty.io 를 기반으로 한다는 거...
그러니 netty.io 를 사용하면 기본은 먹고 들어간다는 거^^

2012년 10월 21일 일요일

비동기 프로그래밍 by Netty and Scala

요즘 자바 진영의 개발을 하고 있습니다만...
공부를 계속하다보니, Scala 가 눈에 들어오네요^^

같은 JVM에서 수행되고, Java, C# 보다 더 유연하고, 편하고, 빠르고...
물론 Ruby, Groovy, Python 같은 Dynamic 은 아니니 유연성은 좀 떨어지고, 컴파일 속도가 좀 느린 단점이 있긴 합니다.




요런 발표 자료를 보시면 이해가 좀 더 잘 될 듯...

혹시 Java 진영에서 개발하시는 분 중에 Scala를 모르시는 분들은 관심 가져 보시기 바랍니다.