이솝프로젝트에 관심을 갖고 있지만.. 저는 소프트웨어쪽의 개발자입니다.
사실 임베디드쪽은 갖고 놀기에 재미있을 것 같아서 손을 살짝 대었던 일인데, 어쩌다보니 거의 주가 되었습니다. 원래는 CS환경 개발자였습니다. 어쩌다 POS쪽 개발을 하다가 보니, PDA용 POS개발까지 제 몫이 되더군요.
산업용 PDA의 대부분이 WINCE를 채택하고 있는 덕에 어쩔 수 없이 WINCE에서 개발을 하는데 .NET CF 기반에서 작업을 합니다.
아시는 분은 아시겠지만 산업용 PDA 중에서 한국에선 이름 난 곳의 제품을 사용하는데, 이 제품의 롬파일에 접근할 수 없습니다. 플래쉬롬을 통해 하드리셋 혹은 리셋 시에 처리할 내용을 세팅이 가능하긴한데.. 이솝처럼 롬을 제어해서 기본 설치환경을 미리 세팅하는 것과는 많은 차이가 납니다.
일단, 현재 가장 해결해야 하는 문제는.. 해당 회사의 단말기(PDA)가 새로 나오면서 시스템이 왕창 바껴버렸다는 겁니다.
운영체제는 WIN CE 4.2 -> WIN CE 5.0(CORE OR PRO)
닷넷버전은 .NET CF 1.1 -> .NET CF 2.0
이런 식으로 변경되었습니다.
운영체제는 별 차이가 없다고 알고 있었는데.. 어째서인지 4.2기반으로 만든 EVC라이브러리가 5.0기반에서는 구동을 하지 않더군요. 그러려니하고 5.0SDK로 재컴파일 했지만.. 비정상 작동을 하더군요.
결국 .NET CF 2.0기반의 네트워크 라이브러리들을 이용해서 신규로 라이브러리를 만들 수 밖에 없었습니다.
재미있는 것은 통신 부분이야 이해를 하겠는데... GC(가베지 콜렉터)가 어떻게 바뀐 건지.. .NET CF 1.1에서 잘 돌아가던 소스가 비정상 작동하는 사태가 벌어졌습니다.
현재 잦은 다운 증상과 느린 속도를 보이는 PDA POS를 볼 때 마다 한숨만 나오더군요.
결국 내린 결론은 .NET CF 2.0에 맞혀서 대대적으로 커스트 마이징 하자는 것으로 맞추고 진행을 해나가고 있는데 이미 WINCE 6이 나온데다, 곧 WINCE 7이 나올 예정인데 이렇게 해서 얼마나 유지할 수 있을 지 걱정입니다.
하드웨어 벤더야 더 좋은 환경을 제공하기 위해서 업그레이드를 하는 거겠지만.. 그덕에 소프트웨어 개발자는...
PDA에서 단순한 일정관리등의 프로그램이었다면 지원 영역에 대해 가볍게 작업이 가능하지만, 포스라는 환경의 특수성 때문에 여러가지 처리가 필요하게 되고, 결과 API사용을 남발해야지만 원하는 기능을 구현할 수 있게 되더군요.(전원관리, 무선네트워크 관리 등)
물론 OPENNETCF라는 좋은 라이브러리 덕에 잘 사용했지만... 이 라이브러리가 WINCE 4.2까지만 서포트 된 라이브러리라서 WINCE 5.0에서 현재 여러 문제를 안겨 주고 있습니다. 게다가 이놈의 소스를 보면 환상적인 스태틱 함수의 사용으로 인해서 몇몇 라이브러리만 사용해도 화끈한 메모리 점유율을 자랑합니다.(WINCE의 대부분의 기능을 .NET에서 사용 가능하도록 처리되어 있습니다.)
OPENNETCF의 후신으로 SDF라는 라이브러리가 존재하는데.. 이놈은 오픈소스가 아닙니다.
라이센스 정책상으로 저희 회사의 경우엔 라이센스를 구매할 필요까지는 없지만 소스를 보면서 작업하기 위해서 구매를 해야만 가능하더군요.
OPENNETCF를 써보신 분은 아시겠지만... 이 라이브러리에 개발자들은... 개발자답게 메뉴얼을 너무 심플하게 만들어 놔서 메뉴얼만 봐서는 이걸 어떻게 만들어야 할 지 답이 안나옵니다.
WINCE API에 대해서 안다고 해도 구현 방식같은 경우엔 개발자들 마음대로 되어 있기 때문에 처리를 위해 델리게이트가 필요한지 인터페이스로 구현해야 할 지 등의 경우엔 죄다 객체 탐색기를 뒤지면서 작업해야만 가능합니다.
가장 답답할 때는 어떤 클래스를 사용해야 할 지는 보여서 생성을 하고 접근을 할려고 하면 접근이 안되는 경우입니다. (무선 네트워크에서 많이 겪었습니다. ㅠㅠ)
우리나라 개발자들 중에서도 오픈 소스에 공짜기 때문에 사용자가 많을 것 같은데.. 어째 이놈을 사용해서 뭘 처리했다는 사용자는 없고 이놈을 건드려봤다라는 사용자만 있더군요.
결국 영문 사이트를 뒤져야 하는데... 문제는 API명이라도 알면 쉽게 검색할 수 있지만, 아예 그 기능이 있는 지 없는 지도 모르는 상황이라면... 답이 안나옵니다.
물론 저도 정보의 교류에 많이 약한 편에 속하지만, 나름 각종 기술서 등은 만들어서 웹에 뿌리고 다녔는데(이솝에도.. 몇개 남아있더군요. 무명인으로 되어 버렸지만..)... 저만큼이라도 하는 사람이 거의 없는 것에 한이 맺힙니다. (한동안은 영어 공부한다고 난리를 쳤습니다.)
그런데 가장 화가 나는 것은... 정보가 아예 없지는 않다는 것입니다. 정보가 없지는 않은데, 검색할 수가 없다는 것. 이건 정말 답이 없더군요. WINCE커뮤니티나, WINCE 개발자 포럼등에 가면 대충이라도 해당 정보를 얻을 수 있습니다. 그런데.. 엄청난 폐쇄정책을 펼쳐서 사이트에 가입을 안하면 검색도 할 수 없게 만들어 놨습니다.
정말이지 정떨어지는 현실인거죠.
리눅스 진형은 그나마 정보의 공유는 잘 되고 있는 것에 비하면.. 정말이지..(근데 재미있는 건 리눅스 진형에서 대부분의 글을 작성한 분들은.. 이솝의 운영진들...ㅋㅋ)
맘은 아픈데, 일정이다 뭐다 바쁜데다 쉬는 날은 잠자기에 바뻐서 요즘은 오픈소스 활동이나, 오픈 DOC 작업을 안 하고 있는 자신을 보면.... OTL
일하다가 일도 안 풀려서 그냥 두서없이 타자 좀 쳐 봤습니다.
에고..