최근에는 AKKA자체의 장점을 주위 사람에게 소개해주고 있지만, 실제 적용가능한지? 유용한것인지?
설득하는데는 어려움에 있습니다. 국내에서 성공사례가 없고 운영서비스 자체에 대부분 분산 처리를위한
장치가 없으며,부자연스럽게 어떤 외부 솔류션과 연동하여 분산 서비스를 유지시키고 있습니다.
하지만 "분산환경에서 유연한 동시성 개발모델" 이라는 주제하에
언랭-OTP / GO언어등 직접 서비스에 녹인 성공사례가 많이 나오고 있으며, 성공사례의 이면을 살펴보면
기존 언어및 프레임워크 그리고 고전전인 해결방법의 문제점을 철저하게 분석하고 새로운 개발 모델을 제시한다란점입니다.
자바및 닷넷프레임워크 진영에서 우리의 방식으로 문제를 풀래라고 귀를 닫았다고 하면 AKKA는 탄생하지 못했습니다.
자바 진영에서는 심지어 SCALA라는 새로운 언어를 만들고 JAVA와 AKKA를 동시에 사용할수있는 프레임워크도 만들었습니다.
또한 기존 솔리드형태의 웹서비스의 한계를 느끼고 https://www.playframework.com/ 라는 새로운 마이크로서비스에 적합한 웹서비스도 준비했습니다.
MS진영에서도 이에 대응하기위해 orleans 이라는 프로젝트를 공식적으로 진행하고 있으며, 저의 플래폼 예상이 항상맞지는
않으나~ 언젠가 닷넷 프레임워크에 기본으로 탑재를 시킬듯도 보입니다.
또한 MS역시 IIS형태의 솔리드 서비스가 스케일아웃이되는 분산환경에 적합하지 않을것으로 분석하고
http://owin.org/ 라는 오픈형 웹서비스를 MS가 개발팀을사고 닷넷프레임워크에 공식적으로 녹였습니다.
오픈프로젝트는 별개로 진행되고 있으며 asp.net 개발자도 잘모르더군요 microsoft.iis.host 같은 네임스페이스를 버린지 오래되었으며
실제 asp.net이 owin.host 기반으로 작동중인 사실을 owin.host의 탄생배경은 윈도우/IIS탈출을 통한 마이크로 웹서비스에 있습니다.
이야기가 돌아 웹서비스까지 갔지만 , 웹서비스 환경에 적용하는 이슈라면 중요한 내용입니다.
어쨋건 Actor개념은 언랭에서 나왔으며, Actor모델 지원은 각 진영에서 가진 프레임워크에서 아주 중요하게 생각하고
있다란것이며, 과장을 하면 AKKA의 시작은 Actor이며 마지막까지 Actor입니다.
분산환경 비동기처리를 유연하게 하기 위해 AKKA일 필요는 없습니다.
다만 이에 준하는 개발모델을 미리 익혀두고 대비해두는것
장단점과 특징이 존재하기때문에 기존꺼를 대체하는 용도가 아닌, 기존에 하기 힘들었던 부분에대해
능동적으로 개발모델을 개선하지 않는 다고하면 새로운 개발 모델을 배울필요가 없습니다.
비능동적으로 완성된 어떠한 메시지큐를 통해서 처리하는게 적합하면 그렇게 하면 됩니다.
하지만 각 주요 플래폼 개발 진영에서 서비스 해도 문제없을만큼 사례와 문서와 샘플을 준비 해놓았으며
개발자에게 능동적으로 분산환경을 직접 설계할수 있는 기회를 줬다라고 생각하며, 이것을 포기하면 안된다고
생각합니다. 객체 지향이후로 새로운 개발 패러다임이 되지 않을까? 추측해보며 아래 링크를 통해
각 진영에서 어떻게 프로젝트가 진행이 되고 있는지 정도는 파악을 하면 도움이 될듯 합니다.
Actor적용한 개발 툴킷:
- http://akka.io/
- http://getakka.net/
- https://www.microsoft.com/en-us/research/project/orleans-virtual-actors/
확장에 용이한 마이크로 웹서비스:
기타: c++ python node.js 등 주요 메이져 언어에서도 actor를 지원하려는 움직임이 구글링을 통해 포착이됩니다.
분산환경 동시성처리를 위해 Actor가 유일한 개발모델이 아니며,
언급대상이 너무많고 주제가 흐려질까 제외하였습니다. 사실 필자도 다 파악못할정도로 많습니다.
다만 액터모델은 자바/MS진영에 서 공식적으로 지원하는 개발 모델임은 확실합니다.