관리 메뉴

HAMA 블로그

Vert.x 와 Akka 의 차이 ?? 본문

Vert.x

Vert.x 와 Akka 의 차이 ??

[하마] 이승현 (wowlsh93@gmail.com) 2015. 5. 16. 21:09


Vert.x 와 Akka 는 아주 비슷한 점이 많다. 액터/리액티브 모델이란 점에서 둘은 앞으로 계속 동반자이자 경쟁자로
살아 갈 것으로 보인다. 따라서 둘을 비교 해
봐야 겠는데 아직 내가 그럴 경험은 없으니 남의 시야를 통해 살펴본다.
먼저 스택 오버플로우에서 Vert.x vs Akka 로 검색해보니 다음과 같은 글이 나온다.

http://stackoverflow.com/questions/21481238/difference-in-message-passing-model-of-akka-and-vert-x

정리하면 

외견적인 모습으로 둘은 매우 비슷하긴한데  비록 내 개인적인 생각일지 몰라도  Vert.x 는 Akka 보다는 

더  메세지큐 미들웨어들과 개념이 비슷한거 같다.  Vert.x 의 topology 는 좀 더 평면적인데  Verticle  은 

다른 Verticle 과 메세지를 공유하고 응답을 받어. 대신 Akka 는 좀 더 tree 와 비슷하지.

Vert.x  는 대중적인 여러 언어들사이에서 더 나은 상호운용성을 가질수있는데 ,  이것은 나한테 매우

중요한 선택포인트야.  니가 메세지큐 시스템들과 함께 액터를 같이 사용할 필요가 있을때 그리고 

좀더 복잡성을 다룰필요가있을때 Vert.x 는 그것을 좀더 간단하고 우아하게 다를수있게 한다. 

그래서 답은 흠흠 어느게 더 낫냐?  그건 그때 그때 달라요 이다. 

Vert.x 가 더 완전한 솔루션이라는걸 고려해야해. tcp, http server, routing, websocket 같은거 

지원하니깐 저런건 꽤나 놀랍지 암튼 졸라 full stack 이야.  api 도 매우 깔끔하지.  만약 네가 akka 를 

선택한다면 넌 play, xitrum  o spray 같은 framework 가 필요할것야,  개인적으로 난 별로지만 ~

또한 기억해둘건 vert.x 는 꽉 막힌 플랫폼이 아니란거야, 넌 vert.x 를 akka 또는 kafak 를 같이 쓸수 있

어.  예를 들어, 오버헤드없이 시스템의 부분들을  분리하는 방법을 Verticle 을 이용해   꽤나 간단하게 

만들지.  살랴살랴~

뭐 별로 큰 도움이 될거 같진 않은 글이다 ;; 
잡스런 기능들이 필요하면 Vert.x   /  순수한 Actor 로서의 기능이 필요하면 Akka ?? 
근데 Akka 도 잡스러운(?) 기능이 점점 많아지고 있습니다. akka.io  가보면 많은 내용을 볼 수 있겠다.
Akka 도 액터간 통신도 가능하지만 TCP와 HTTP 를 지원하니 그 자체 만으로 웹서비스를 제공 할 수 있지만
Akka 기반의 웹프레임워크인 플레이2를 사용하는 편인거 같다. Vert.x는 그에 비해 그 자체만으로 웹서비스 풀스택을 
구현하는게 좀 더 편한듯..

다음은 인포큐에서 진행한 Vert.x 의 창조자의 인터뷰에서 발췌한 글을 살펴보자. 원문은 요기 


인포큐 : 스칼라와 아카에 대한 생각은 어떤가요? 

팀폭스:  스칼라의 파워에 대해서 존경하고 매우 좋아합니다. 스칼라를 만들어 가는 사람들에 대해서도 마찬가지구요. 나에게 스칼라의 주요 문제는 너무 어렵다는것입니다. 많은 것들을 배우고 익숙해져야 하는데 자바같은 메인스트림이 결코 될 수 없을 거에요. 뭐 그렇지만 님들이 엄청 똑똑한 팀을 가지고 있고 스칼라를 잘 다룰 수 있다면 스칼라는 매우 좋은 선택이 될 거라고 봅니다. 

아카는 뛰어난 시스템입니다. 이것도 내가 매우 존중하고 있어요. 어떤 부분에서는 둘이 매우 비슷합니다. Vert.x 는 "액터 같은" 접근법을 동시성에 있어서 가지고 있죠. 우리도 데이터를공유하는 변경 가능성에 대해 피하려고 하고 있어요. 상태변경이 없는 순수성을 지향하죠.  새로운 리액티브 스트림 "표준" 을 이용하는데 Vert.x와 Akka는 상부 상조 할 것입니다. 양쪽 모두 동일한 Zeitgeist (시대정신) 을 가지고 있어요. 어떤 맥락에서는~ 

나는 이 둘이 둘 중하나만 택해야 한다고 보지 않습니다. 서로 같이 사용할 수 있을거에요.
꽤 괜찮은 탄력성 좋은 리액티브의 길로 가는 길에서 이 둘은 좋은 길동무가 될 것입니다.

역시나 뭐 별거 없네요 ㅎㅎ

Comments