비용을 들여 플랫폼에 영향을 받지 않는 엔디안 체계로 바꾸는게 맞는걸까요??

choco6의 이미지

금융권에서 미션 크리티컬한 업무의 서버 프로그램을 담당하고 있습니다.
현재까지 운용중인 서버 플랫폼이 알파 시스템 위에 구동되는 True64 유닉스입니다.
아시다시피 Alpha 서버는 little-endian 체계입니다. 게다가 저희 서버에 물려있는 client 장비들도 x86 계열의 cpu를 차용하고 있었던 구조라서 과거 서버 프로그래을 설계했던 개발자 분들이 엔디언 체계를 고려하지 않고 시스템을 개발하는 우를 범하고 말았습니다.
그래서 sparc 계열의 시스템이 연동될 때 바이너리 데이타 일부를 컨버전하면서 근근히 운영해 왔죠.

그러다 노후 시스템 교체시기가 도래하면서 조만간 서버 플랫폼이 IA64 기반인 서버를 도입하게 되었습니다.
그러면서 자연히 서버 어플리케이션을 포팅할 때 엔디안 체계를 어떻게 할 것이냐가 이슈로 떠올랐습니다.
그런데 공교롭게도 IA64도 알파와 마찬가지로 little-endian체계라서 선택의 기로에 놓이게된 것이죠..
만약 포팅을 쉽게 하려고 하면 프로그램을 크게 손 댈 필요없이 프로그램 일부를 바꿔주고 컴파일 환경만 수정하면 손쉽게 IA64 플랫폼으로 이식할 수 있습니다.
그러나 장기적으로 이기종이 시스템에 연동될 때 엔디안 체계에 종속적인 문제가 생기고 서버 프로그램 패키지를 국내나 해외에 판매할 때 이것이 제약사항으로 작용할 수도 있는 단점이 있지요..

그렇다면 이 기회에 서버 프로그램을 엔디안에 영향을 받지 않는 형태로 수정할 것인가.
그렇게 하려면 별도의 프로젝트를 진행해서 많은 수정기간과 테스트, 그리고 더 많은 개발자들이 투입되는 비용이 발생하게 됩니다.
한마디로 돈과 폼을 들이게 되는데 이렇게 처음에 비용을 들이고 나면 나중에 연동되는 시스템의 플랫폼에 영향을 받지않게 되는 장점을 가지게 되겠죠.
그런데 문제는....
범용 UNIX OS 시장에서 big-endian을 사용하고 있는 이기종이라고 해봤자 Sparc칩 기반의 솔라리스와 AIX칩을 사용하는 AIX unix 정도입니다.
향후 대세가 IA64와 amd64를 채용하는 unix가 시장의 트렌드라면 과연 폼과 돈들여서, 게다가 안정성까지도 다시 검증해야하는데 서버 프로그램의 엔디안 체계를 굳이 바꿀 필요가 있느냐 하는 것입니다..

기술 경영진에서는 이 문제의 판단을 제게 맡겨놓았는데...참 고민되네요..
돈들이고 노력 들여서 엔디안 체계에 영향을 받지 않는 프로그램으로 수정하는게 향후 유연성 측면에선 맞는 일이겠지만, 실제 시장의 대세가 big-endian을 채용하는 시스템이 점점 사라지고 IA64를 채용하는 시스템이 추세라면 말짱 헛짓거리 한 셈이니까요..

혹시 저와 비슷한 선택의 기로에 놓이셨던 개발자분이나 매니저 분이 계시다면,
제가 어떻게 자료를 수집하고 판단을 내려야할지 조언 부탁드립니다.

purewell의 이미지

두 가지 정도 방법이 있는데...

1. 프로토콜에 숫자를 문자열 표현한다.
2. 바이너리 프로토콜이라면 hton*류 함수를 사용한다.

뭐 이 정도 되겠습니다.

_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz

_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz

obbaya의 이미지

판단에 대한 책임을 져야한다면

전 바꾸겠어요......

솔라리스는 모르겠지만 AIX는 '이기종이라고 해봤자' 라고 하기엔

조금 버겁지 않을까요 금융권 장비에서...