The ADAPTIVE Communication Environment  의 약자가 ACE 이다. 간략하게 기원을 말하면 Douglas C. Schmidts 란 분이 기초를 만들고 Open Source 로 공개를 하자 개발자들이 벌떼처럼 모여들어서 지금의 ACE 를 만들어 냈다.

정식에 가까운 소개를 하자면 ACE 의 Overview 를 번역하는 정도에 그칠듯 하니 일단 ACE 의 공개 홈페이지를 링크하고 (걍 오버뷰를 해석해서 쓸까... )

http://www.cs.wustl.edu/~schmidt/ACE.html


어째서 내가 ACE 를 선택했는지 내 입장에서 글을 쓰는게  여러모로 편리할것 같다. Java 대신 C++ 을 선택한 내 삶에 후회는 없었지만 , 내 입장에서 Java 는 부러운점이 많았다. 그 쉬운 코딩, 강력한 적응성, 쉬운 이식성 - 내가 게으르기 때문에 더더욱 !!

그러다가 맡게 된 KT 전파연구소의 분석서버, 서버는 근 5년간 해 오고 있던 일이라 별로 부담은 없었지만 왜 그리 귀찮았는지.. 다시 소켓 연결하는 부분 Process 나 User 관리하는 부분 , 소켓 관리하는 부분을 다시 항상 하는 모듈과 사용하는 C++ 언어에 연관되게 다시 작성하는 일 ( AIX 면 VAC , 다른 Unix 모듈이면 사용하는 언어가 따로 등등 ) 들을 다시 할려고 생각하니 갑자기 드는 생각이 있었습니다. "아 앞으로도 서버를 만들때마다 이짓을 해야 하나.."

갑자기 드는 생각이 있었습니다. 만약 서버 어플리케이션 종류대로(포크방식이든, 쓰레드 방식이든) 한 모듈을 만들어 놓구, 다른 컴포넌트를 조합해서 서버가 만들어지는 형태로 구현 시켜 놓으면, 나중에 OS 가 바껴도 돌아갈 수 있는 구조가 (흡사 자바처럼) 있다면 그 얼마나 편할까, 한가지 형태만 잘 만들어 두면 조금의 변경만 가해도 그 비싸다는 서버 프로그램을 뚝딱 하고 만들 수가 있지 않을까!! 란 생각에 찾은것이 ACE 입니다.

ACE 는 오픈프로젝트로 전 세계의 잘나가는 사람들이 손을 댔고, 또  전 세계에 자기가 필요로 하는 OS , 개발툴 환경들에 맞게 수정이 가해져서 이식성이 매우 높습니다. 자체적으로도 텍스트가 잘 정의되어 있구, 또 그 텍스트를 바탕으로 해서 나온 책도 여러권 존재합니다. 즉 배우기도 쉽고 - C++ 을 아는 사람이면 누구나 - , 예제도 잘 정리되어 있고, 그 예제에 대한 해석까지 존재하는 정말 속된말로 '괜찮은' 솔루션 입니다. 물론 부정적인 견해의 안티도 존재합니다. 저에게 많은 도움을 주는 Koei 군도 자기말로는 아니라고는 하는데 ACE에 대한 부정적의견을 가끔 내비치고는 합니다.

하지만 개발을 진행해오면서 느꼈던 제 유일의 감정은 말을 하곤 합니다. '여러 사람이 오랬동안 작업과 리팩터링을 해온것은 절대 내가 만든 라이브러리에 떨어질 이유가 없다.' 남들이 뭐라고 해도 이제 귀에 잘 안들어 오는거 같습니다. 쓰면서 진짜 편안함을 느꼈기 때문에, 이게 광신의 지름길이긴 하지만 일단 계속 사용하면서 불편함을 느낄때까지는 써보려고 마음 먹구 진행합니다.

이것은 제 ACE를 쓰면서 시작된 서버프로그래밍의 역사입니다. KT 전파연구소 작업을 할때 진행했던것입니다.

+ Recent posts