요즘 제가 기술적 아이디어를 집중시키고 있는 이슈는, PC와 태블릿간에 업무시스템을 연동시키는 문제입니다. 저는 델파이/C++빌더 개발자이고 PC 개발에만 관심이 있어 제가 생각하는 태블릿은 안드로이드나 아이패드가 아니고 윈도우8 태블릿인데요.
적어도 현시점에서는, 안드로이드, 아이패드와 PC기반 업무시스템을 연동시키는 것은 현실적으로 효율성도 낮고 무리가 너무 큽니다. PC 시스템과 완전히 별개로 새로운 개발 프로젝트를 진행해야 하지요. 저는 PC 업무시스템을 최소한의 추가 투자로 태블릿에서도 운영하는 것을 목적으로 하기 때문에, 같은 이유로 윈도우RT 태블릿도 고려 대상에서 빠집니다.
물론 업무시스템을 사실 일반적인 사무 환경에서만 사용하는 기업들은 태블릿을 고려할 필요가 거의 없습니다. 하지만 제조기업, 의료시설, 서비스기업 등의 경우 제조 현장이나 진료 현장에서 태블릿을 PC처럼 활용할 수 있다면 업무 효율성을 많이 높일 수 있지요.
사실 작년까지 나온 윈도우 태블릿들은 1kg 내외로 장시간 들고 작업을 하기엔 너무 무겁고 배터리도 금방 닳았기 때문에 현실에 적용하기엔 무리가 많았는데요. 최근 몇달 사이에 나온 윈도우8 태블릿들은 600g 정도로 아이패드보다도 더 가벼우면서도 10시간까지 사용할 수 있는 넘들까지 나와 있어서 적용 가능성이 높아지고 있지요.
윈도우8 태블릿이라면 태블릿 형태를 갖췄을 뿐이지 사실상 일반 PC와 동일한데 개발 관점에서 뭐가 문제냐 할 수 있겠습니다만. 물론 물리적으로야 PC기반 업무시스템을 윈도우8 태블릿에서 실행시키는 것은 아무런 문제가 없습니다. 소프트웨어적으로 PC윈도우 환경과 동일하기 때문에, 그냥 설치해서 실행하면 그대로 돌아가죠.
문제는, PC기반 업무시스템들 중 다수가, 하나의 화면에 복잡한 컨트롤들이 빼곡히 들어차있는 구성이 많다는 겁니다. 아주 단순한 조회 화면이 아닌 이상 대부분이 그렇죠. 조회 화면이라도 검색 조건이 몇개 이상 넘어가면 복잡해지기 시작합니다.
그런데 이런 복잡한 구성의 화면을, 기껏해야 10인치대인 태블릿 화면 크기에 올리려면 이야기가 복잡해집니다. 게다가 사람 손으로 터치 기반으로 동작시키려면 기존 업무 시스템들의 화면들은 컨트롤의 크기도 너무 작고 갯수도 너무 많습니다. PC 환경의 경우 디스플레이도 보통은 20인치를 넘어가는 대화면이고요. (태블릿과 4배 이상이죠) 또 손의 터치가 아닌 더 세밀한 포인팅이 되는 마우스를 주로 사용하므로 문제가 되지 않았던 것이죠.
그래서 업무시스템을 태블릿에서 실질적, 효율적으로 사용하려면 각 화면상의 크기와 배치를 새로 해야 할 것입니다. 즉 이것은 디바이스 자체의 특성의 차이로 인한 이슈입니다.
그런데 이건 거의 순수하게 레이아웃의 문제일 뿐, 기능의 문제가 아닙니다. 윈도우8 태블릿이라면 당연히 윈도우8 PC와 동일한 기능을 모두 구현할 수 있죠. 윈도우8 태블릿에선 iOS나 안드로이드 기반의 다른 모바일 디바이스들에서처럼 기능을 줄일 필요가 전혀 없습니다.
기능을 줄일 필요가 없으므로, 작아진 화면이라도 레이아웃만 성공적으로 배치한다면, PC용과 태블릿용의 두 화면 사이에 코드를 완벽하게 공유할 수 있는 것입니다. 델파이와 C++빌더의 관점에서 보면, 소스 파일 하나에 dfm 파일 두개를 연결하고, 특정 조건에 따라 두 dfm중 하나를 로드할 수 있게 만들면 됩니다.
실질적인 개발자의 관점에서 보자면, PC용으로 개발된 화면 dfm의 복사본을 수정하여 레이아웃만 태블릿용으로 조정하면 됩니다. 물론 하나의 pas(혹은 cpp) 파일에 dfm 두개를 연결하는 건 지원되지 않지요.
의외로, 이 문제에 대해 기술적으로 간단한 해결책이 있습니다. 델파이와 C++빌더에서 지원하는 폼 상속이죠. VFI, Visual Form Inheritance인데요. 일반적인 클래스의 상속에서 한발 더 나가서 화면과 코드를 통째로 상속받는 거죠. 이런 VFI, 폼 상속을 이용하면 이미 PC용으로 개발한 화면을 태블릿용으로 레이아웃과 크기 등을 변경할 수 있습니다. 두 폼은 코드를 완전히 공유할 수 있는데다 특정 디바이스를 위한 조건적인 코드를 추가할 수도 있죠.
PC-태블릿 사이에서 화면의 코드를 공유하는 방식으로서 이 폼 상속은 기술적으로는 완벽한데요. 수천개 이상인 업무 시스템의 화면을, 개별 화면마다 일일이 PC 버전의 레이아웃을 태블릿 기준의 레이아웃으로 변경하는 건 엄청난 노가다가 될 거라는 거죠.
물론 코드라도 공유가 되니까, 일단 일이 절반이나 줄어드는 거고요. 게다가 레이아웃만 변경하면 되는 일이므로, 사실 여기에 구하기도 힘든 델파이/C++빌더 개발자를 투입해야 할 필요가 없습니다. 심지어는 폼 디자인 방법의 기초 정도만 알려주고 초급 디자이너를 붙여도 되지요. ㅎㅎ
그런데 업무시스템 프레임워크 개발자로서, 화면 개발자가 최대한의 생산성과 기술적 완성도를 내는 것을 목표로 하는 제 입장에서는, 이런 폼 상속 방식은 어쨌든 이론적으로 MM이 50% 가량 증가해야 하는 문제라 맘에 안드네요. 그래서 더 복잡하더라도 개발자 생산성을 더 높일 수 있는 방법을 고민하고 있습니다.
아이패드나 안드로이드 태블릿과 달리 윈도우8 태블릿의 가장 큰 장점이 기존의 PC시스템을 최소한의 투자로 돌릴 수 있다는 건데요. 공수가 전체의 절반이나 추가된다면 그런 장점이 많이 희석되는 거죠.
물론 PC 시스템을 태블릿용으로 돌리기 위한 추가 작업들은 화면 단위에 대한 고려 외에도 다른 이슈들도 많이 있습니다. 하지만 업무시스템의 프레임워크란 것은 적어도 수백개, 많게는 1만개 이상의 업무 화면들을 호스팅하는 일종의 플랫폼이기 때문에, 아무래도 화면 단위의 작업 효율성이 전체 프로젝트의 생산성을 절대적으로 좌우하게 되죠.
다른 생각 가능한 이슈들의 예를 들자면, MDI의 문제가 먼저 떠오르네요. 현재 국내의 업무시스템들은 MDI 방식을 압도적으로 많이 사용하고 있는데요. 태블릿형태의 디바이스에서 MDI 차일드 방식으로 업무화면들을 띄우는 것은 사용 편의성을 크게 떨어뜨릴 가능성이 크죠. 그래서 MDI가 아닌 태블릿에 적절한 새로운 형태로 바꿔야 할 것 같고요.
어쨌든..
최근 여러해 동안 제가 주로 해온 잡이 주로 업무시스템 프레임워크 개발이라, 이런 문제로 고민중에 있습니다. 어느 정도 방향성이 결정되면 실제로 윈도우 태블릿을 구입해서 테스트도 해봐야겠고요..
요즘 제가 기술적 아이디어를 집중시키고 있는 이슈는, PC와 태블릿간에 업무시스템을 연동시키는 문제입니다.
저는 델파이/C 빌더 개발자이고 PC 개발에만 관심이 있으므로 제가 생각하는 태블릿은 안드로이드나 아이패드가 아니고 윈도우8 태블릿인데요.
적어도 현시점
제가 고민하고 있는 업무시스템에서 화면 개발의 문제와는 좀 다르지만, 상당히 비슷한 기술적 이슈에 대해 볼랜드포럼의 김태선님이 좋은 의견을 주시기도 하셨네요. 제가 볼랜드포럼에 올린 같은 글에 김태선님이 쓴 댓글을 참고해보세요.
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=free&no=22176