티스토리 뷰

이런거 써도 될런지 모르겠지만 일본회사라서 상관 없을라나. 일단 써본다.

앞으로 회사에서 유저의 어플리케이션 기동, 어플 내의 현질 등의 이벤트 정보를 수집하고, 그것을 통해 광고의 효과를 올리는 업무를 해야 한다.


그렇기 때문에, 일단 데이터를 받아들이기 위한 웹서버를 만들어야 하는데.. 고려해야 할 점이 몇 개 있다.

1. 전국에 있는 유저가 높은 빈도로 어플을 열었다 닫았다 할 것이다. 

2. 1 보다는 낮은 빈도로 현질데이터가 들어올 것이다.

3. 게임 어플 내에서 세일 이벤트같은 것이 진행 중일 때, 많은 양의 1과 2의 데이터가 몰려올 것이다.


웹 서버의 가장 중요한 덕목은 엄청난 트래픽이 밀려 들어와도 다 받아들일 수 있을 것. 뻗지 않는 것이다.


사실 나는 Web을 잘 모르는데.. 만들어 보라고 말하면서.. 후보로 거론해 준 Web Framework 는 spray akka, finagle, finch 정도였다. 조금 검색해 본 결과 요즘 finch 가 잘 나가는거 같더라. 문서도 많고...



finch 가 Scala의 Web Framework 에서 두번째로 빠르다고 올린 트윗이다. 


여기서 눈에 띄는게 있다. 바로 1위 Colossus

Colossus 가 무엇인가.. 하니 러시아의 블로그 서비스 tumblr 가 만든 Web Framework 이다.

사실 tumblr라 하면.. 음란물을 올려주는 사람들이 많은 아주 고마운 서비스라고 할 수 있는데.. 거기에서 요즘 잘 나가는 거 같은 finch 보다 빠른 것을 만들어 주니.. 써보지 않을 수가 없었다. Colossus 는 akka 베이스라 빠르다고 하더라.


Colossus 를 사용하는 사람이 적은지, 인터넷에 글이 별로 없더라.. finch 와 대조되는 부분.. 그래서 누군가 나 같이 Colossus 를 사용해 보고 싶은 사람이 있으면, 참고하라고 샘플소스를 Colossus Quickstart 를 참고해  gist 에 올렸다. Scala가 너무 익숙치 않아서, 공부하면서 하고 있다. Vector((a, b), (c, d))  → Map(a -> b, c -> d) 로 바꾸는데 엄청 헤매면서 했다.


Colossus가 akka 베이스라면 작업을 병렬로 처리하기 위해서 worker 를 추가해야 하는 것도 있는건지.. 알아서 추가가 되는건지..

댓글
댓글쓰기 폼