Page History
...
이전 개발팀에서 AKKA적용스토리를 잠깐 이야기 해보겠습니다.
3~4년전 분명 C++인 이 메이져인 우리개발팀에게 SCALA와 더불어 AKKA 플래폼 사용을 권장받았습니다.결정하였습니다.
고집스러운 C++ 개발자에게 이러한 민주주의방식으로 자바기술을 선택한다는것은 아주 어려운 과정이였습니다.
- 웹서비스로의 도약을 위해 자바혹은 닷넷이 필요하다
- 개발자의 대부분은 웹개발자이며 , 저수준 TCP패킷처리를 통해 서버개발을 할수 없으며 무엇인가가 필요하다.
- SCALA/AKKA 가 그러한 서버 기술에대해 평준화되는 무엇인가를 준비해 놓은것같으니 팀에서 배우고 준비하자
간단하게 요약하면 위 3가지 스텝으로 결정이 되었으며 서버개발에 있어서 자바 개발자를 유입시키기 시작했습니다.
어떠한 개발자에게는 이것은 지구를 침략하는 외계생명체와 같았으며우리 개발팀에게 이것은 지구를 침략하는 외계생명체였으며, 관련 자료도 찾기힘들었습니다.
적어도 국내에서 언급조차 안되던 시기였으니까요 시기였으니까요 , 실제로 이과정에서 c++노선을 유지하여 팀을 떠나
더 잘되신 분도 계십니다.
JAVA진영에서 외치던 그 플래폼을 결국 C++진영에서 JAVA를배워 가며 AKKA를 통해 기존 서비스를 바꾸자라고 바꾸는 프로젝트가 진행이되었습니다.
이 과정중, 자바에서 대용량 웹소켓을 액터와 연결하고 트래픽 테스트를하고 검증하는 과정을 오히려 팀내 자바 진영에 가르키기 까지 했으며
안정적인 버젼조합에 대해 공유를 하였습니다.( 네티 + 앱모스피어 + 액터 + 스칼라버젼 : 각 버젼별로 안정적인 + PLAY + AKKA : 초기버젼에서 안정적인 라이브러리
조합을 찾기란 거의 헬이였습니다. 마치 옛날옛적 컴퓨터 조립할때 안맞는 구성으로 작동이안되는 시절이 있었듯이 )
이 이 과정에서 실제 이름을 대면 유명한 자바개발자 라고 소개받았지만, 큰 도움을 받지 못했습니다.
...
Data를 직접 메모리 해제를 해야안심이 되는 C++개발팀은 자바에서 자동처리되는 객체를 믿지 않았기때문입니다.
그렇게 불신으로 자바개발 플래폼을 의심하고 사용하기 시작했습니다.
팀내 자바개발자는 JVM을 믿고 잘 사용하기 때문에 이러한 문제에대해 고민하지 않는듯 보였습니다.
하지만 JMX등 자바 플래폼에서 운영 성능 문제해결을 위해 많은고민을 했고 몇가지 툴들을 사용하기 시작하면서
분명 C++에서 고민했던 여러 문제들을 쉽게 풀어나가는 점에서 어떤 문제들은 쉽게 풀어나갔으며 어느부분 이해하고 동의하기 시작하였습니다.
결국 극한의 성능 테스트를 통과하고 AKKA를 통한 웹서비스및 모바일 서비스 런칭을 성공하였습니다.
극한의 성능테스트 링크에서 이것이 실제로 일어난 일임을 확인할수 있습니다. ( 로드 테스트 결과도 당시 로드 테스트 목표및 결과에대한 정보도 포함 )
이후 이후 다른 목표를 가진 프로젝트는 팀내 JAVA진영에서는 가지고 대부분 순수 JAVA진영 개발자들만이 남게된 프로젝트는 서비스런칭에 성공하지 못했습니다.
조직에서 일어난 특수한 케이스이며 목표가 달랐기때문에 목표하는 바가 달랐으며 결과로 가지고 개발능력을 판단하는게 아니며, AKKA에 대한 순수이해는 자바진영의 개발자들이 분명 더 뛰어났습니다.
기존 서비스개발자가 필요없어도 성공할수 있다고 착각을 하고 진단을 빨리하지 못한게 프로젝트의 실패요인중 하나입니다.
고집스러운 고집스러운 C++ 개발자가 언어를 뛰어넘는 기술을 받아들이고 그것을 이해하려는 능동적인 활동에 의미를 두겠습니다.
기존 서비스개발자가 스스로 새로운 도구를 사용하고 능동적으로 개선하려 하지 안았다면, 아주 어려운일이 될것입니다.
의미가 있습니다. 지금은 아마 C++에서도 Actor의 개념을 활용하는 라이브러리가 있을것으로
생각됩니다.
어휘력이 약하고 단어선택이 부자연스러워서 이것이 무슨 구글번역기 돌린 문서로 생각할수도 있으나
글쓴이이가 국내에서 직접 격은 스토리입니다추측됩니다.
- AKKA 성공사례 (국내최초라고 단언 말할수 있겠습니다만 의미 없습니다. 성공사례보다는 최초 적용사례가 맞을지도 모르겠습니다.)
MS도입 사례
...