2012년 10월 27일 토요일

Open Source RDBMS 인 PostgreSQL 9 소개자료

오픈 소스 진영에서 가장 유명한 DB는 MySQL 일 것입니다. PHP + MySQL 조합은 엄청난 유행과 파급력을 발휘했습니다.

다만 Business Application 을 제작하는 분야에서는 Oracle 과 SQL Server 와 같은 상용 RDBMS 를 사용하는 것이 가장 안전하다고 생각했기 때문입니다.

이제 Business Application 분야뿐 아니라 MySQL의 아성이 깨지지 않을 것 같은 서비스 분야에서도 서서히 새로운 RDBMS 가 떠오르고 있습니다.
뭐 예전부터 명성은 높았지만, 국내는 워낙 유행을 타고, 기능보다는 남들이 많이 쓰고, 한글 자료가 많은 그런 제품을 선호하다보니, 그렇게 많은 보급은 되지 않았습니다.

그게 바로 PostgreSQL 입니다. 현재 9.2.1 버전까지 나왔습니다만, 국내에서 채택한 서비스나 제품은 제가 보지를 못했네요^^ 외국에서는 여러 서비스에서 MySQL 을 제치고 PostgreSQL 로 넘어가고 있습니다.

특히나 외국의 대규모 서비스에서는 MySQL 의 MyISAM 은 절대 고려 대상이 아니고, InnoDB 는 초보 수준의 Join 만을 제공하여, 고려 대상에서 제외하려는 경향이 높아지고 있습니다. (물론 아직도 MySQL 의 점유율이 절대적입니다^^)

한국에서도 무리한 비용이 드는 상용 RDBMS 가  아닌, 유사한 성능을 내는 PostgreSQL 같은 오픈소스 RDBMS 의 도입이 많아졌으면 합니다^^



위는 PostgreSQL 에 대한 설명 자료입니다. 한번 정도 읽어보시면 도움이 되실겁니다.

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를 모르시는 분들은 관심 가져 보시기 바랍니다.