지하철 표지판 관리 프로그램
2002년도 초반에 진행하던 프로젝트 중에 지하철 표지판 관리 프로그램도 있었습니다.
역시 개발 툴은 Delphi 5.0이었고 안타 깝게도 미완성이었던 프로젝트입니다.
시작
첫 회사는 도면을 많이 다루는 회사여서 그리고 지하철과 관련된 일을 많이 하면서 지하철의 표지판 관리에 어려움이 있다고 해서 개발 진행하기로 하였습니다. 관리를 엑셀로 하시더라고요.
역별로 엑셀에 도면 이미지를 붙이고 거기에 표지판 번호를 붙이고 다른 시트에 각 번호에 대한 표지판의 정보를 관리하시고 표지판의 정보와 표지판 이미지도 삽입해서 관리하고 계셨습니다.
역에서 표지판을 바뀔 때마다 엑셀에서 그 표지판을 찾아서 다른 툴을 이용해서 이미지를 수정해서 바꿔주는 게 힘들다고 하시더라고요. 그래서 Delphi 5.0과 아파쳐라는 도면관리 툴을 가지고 프로젝트를 기획을 하기로 하였습니다.
프로그램 기획
아파쳐라는 툴이 있습니다. 저도 이때 처음 사용해 본 툴인데 도면에 심벌을 올리고 각 도면이랑 데이터베이스를 연결하여 도면의 수치, 위치 정보 등을 관리하며 리포팅을 할 수 있다고 합니다.
각 심벌이랑 링크도 가능하고요. 외국에서 개발된 툴이며 이미 FM(Facility Management) 쪽에서는 많이 사용하는 툴이라고 하더라고요. 예를 들면 사무실 도면이 있고 사무실 도면에 책상 심벌, 의자 심벌을 그리고 그 심벌에다가 책상, 의자의 정보를 데이터베이스에 등록해놓으면 사용자가 도면을 보다가 책상,
의자를 클릭하면 입력된 정보가 뜹니다.
이툴을 이용해서 각 역사별 층 도면을 입력하고 거기에 표지판 위치에 심벌을 그립니다. 그 심벌을 클릭하면 제가 개발한 프로그램이 실행되면서 표지판 정보와 표지만 이미지를 불러옵니다.
제프로 그램에서 표지판 이미지를 수정하면 될 거 같았습니다. 그렇게 기획을 하고 개발을 시작합니다.
구현
우선 역을 하나 정해서 구역에 대한 프로그램을 개발해 보기로 하였습니다.
아파쳐 툴에 층별 도면을 입력하는 작업을 했는데 도면을 작업해 주시는 분들이 엄청 고생을 하셨어요 인터페이스가 별로라고 하시더라고요. AutoCad에 비해 도면 그리는 기능이 많이 부족하다고 층별 도면 작업한 내용에 제가 표지판 표시볼을 그립니다. 처음 하는 작업이고 엑셀의 정보와 하나하나 비교하면서 심벌을 그리느라 시간이 많이 걸렸습니다. 심벌 정보과 이미지를 표시, 수정하는 프로그램 작성을 시작합니다.
문제점
여기에서 문제가 발생합니다. 아파져 매뉴얼(다행히 한글입니다)을 보고 개발을 하는데 아파 처에서 심벌을 클릭했을 때에 제가 개발한 프로그램이 실행되도록 하는 건 매뉴얼을 보고 했는데 심벌의 정보를 가져오는 방법을 모르겠습니다. 두꺼운 매뉴얼을 열심히 뒤지면서 봤는 제 잘 모르겠더라고요.
아파쳐에 제가 개발한 프로그램을 등록해 주고 심벌이랑 클릭하면 제 프로그램이 뜨는 예제가 있어서 구현은 했는데 심벌 정보를 가져오는 부분은 아무리 살펴봐도 방법을 모르겠네요.
초보 개발자의 한계입니다. 이때 선입 개발자도 없어서 물어볼 사람도 없었어요!!!!
결국 아파쳐의 한국 공급 업체에 SOS를 했습니다. 저희가 이런 기능이 필요한데 도움 주실 수 있는지 그래서 담당자와 미팅하러 제가 개발한 프로그램을 들고 찾아갔습니다.
제 프로그램을 보여드리고 필요한 기능을 요청하는데 담당자분께서 OLE를 사용하라고 하시더군요 그러면서 그 자리에서 엑셀을 가지고 OLE 값 가져오는 부분을 알려주셨습니다.
아! 전 드디어 방법을 찾았네요. 매뉴얼에 OLE 관련된 부분도 있고 인터넷에서 델파이로 OLE 하는 부분에 대한 자료도 찾았습니다.
OleVariant로 선언해서 값을 받아오는 부분 VB 프로그램 소스도 받아서 그 소스를 델파이로 포팅 하여 제가 개발하는 프로그램에서 클릭한 심벌 정보를 받아오는 걸 성공합니다.
프로젝트가 점점 재미있어지더라고요. ㅎㅎ 그래서 이미지 수정 부분 쪽 개발을 못하였지만 팀장님에게 보여드릴 정도인 층별 도면 정보를 보면서 표지판의 위치의 심벌을 클릭하면 표지판 정보가 뜨는 부분까지 보여드렸습니다.
굉장히 맘에 들어 하시더군요.
이제 표지판 이미지 수정 기능만 개발하면 되는데 갑자기 다른 프로젝트가 시작이 됩니다. 정말 급하게 다른 프로젝트를 진행하게 되면서 이프로젝트는 미뤄지게 되고 원청에서도 기간이 미뤄지자 관심이 없어졌는지 프로젝트가 취소되어 미완성이 되었습니다.
그때 완료했으면 좋았을 거 같다는 생각을 많이 했습니다.
댓글
댓글 쓰기