2014년 10월 16일 목요일

Erlang ,Cowboy, Riak


오랜만의 포스팅이다.
작년 10월에 포스팅하고, 거의 1년만이다.
그 동안 많은 일이 있었다.

erlang,riak으로 만든 SNS 서비스를 성공적으로 오픈했었다.
하지만, 서비스는 잘 되지는 않았다.

1년만에 다시 비슷한 서비스를 만든다.
그 1년 동안, 서버 코딩은 놓고, Unity를 이용한 게임 개발에 몰두했었다.
다시 서버 코딩을 시작하게 되었는데...
개발 환경이 매우 많이 바뀌었다.

riak은 1.4에서 2.0.1로 매우 많이 업그레이드 되었고,
erlang/OTP 도 15B03에서 17로 업그레이드 되었다.

Cowboy 또한 업그레이드 되었다.

Cowboy는 Erlang 17을 요구한다. 내부적으로 새로 생긴 데이터타입인 map을 지원한다.
하위 버젼의 Erlang에서는 empty map을 지칭하는 #{} 구문에서 에러를 내뱉는다.

Riak은 16B02기준으로 되어있다.
17로 컴파일하면 에러를 내뱉는다. 쿨럭~
rebar.config의 R16을 요구하는 라인을 없애도 컴파일 되지 않는다.

그리고, basho에서 만든 Erlang을 쓰지 않으면 security feature를 쓸 수 없다고 한다. 정말?

riak을 소스 컴파일 하기 위해서는 basho의 erlang을 쓸수밖에 없다.
결국은 erlang버젼을 맞추려면, cowboy버젼을 erlang R16에 맞춘 버젼을 쓸 수 밖에 없을 듯 하다.

cowboy를 쓰는 erlang은 17로 하고,
riak용 erlang은 16B02로 쓰는 방법이 있겠지만,
번거롭다.

다행히, cowboy master버젼이 아닌 1.0.0은 erlang 16B02에서 빌드가 된다.

To basho,
Please risk to be compiled in Erlang/OTP R17!