인지컨트롤스 헝가리 WCS 프로젝트 회경




인지컨트롤스 헝가리 코마롬 배터리 공장의 물류자동화 시스템을 위한 WCS를 제작하는 프로젝트였습니다. 그동안은 선배들의 도움을 받으며 프로젝트의 일부를 담당하는 경우가 많았지만 이 프로젝트에서는 처음으로 설계부터 개발, 테스트와 현장 대응까지 프로젝트의 전 과정을 맡아 진행했습니다. 그래서 개인적으로 기억에 남고 고생도 많이했던 프로젝트입니다.
온실속의 화초
선배들의 그늘이 얼마나 넓었는지 이 프로젝트를 진행하면서 비로소 알게 되었습니다. 돌이켜보면 제가 그동안 개발해왔던 환경은 말 그대로 온실 속의 화초였습니다.
고객 미팅부터 업체 간 인터페이스 사양 정의, 프로세스 맵 작성, ERD 설계 등 그동안은 선배들이 위에서 대부분 처리해주었던 일들이었습니다. 이번에는 제가 직접 맡아야 했고 개발만 신경 쓰다가 이 모든 일을 함께 진행하려니 정신이 조금 없었습니다.
Context Switching
CPU 도 Context Switching 은 고비용 작업입니다. 사람이라고 다를건 없었던것 같습니다. 생각보다 흐름이 많이 끊기고 효율이 안나오는 느낌을 받았었습니다.
미팅이 끝나면 에너지가 다 빨려 나갔습니다. 업체중 한곳은 중국업체라 위챗과 번역으로 소통을 해야했습니다.
인터페이스 사양을 정의하고나면 괜히 걱정이 됬습니다. 이 사양으로 충분할까? 수정에대한 부담이었나봅니다. 나만 바꾸면 되는게 아니라 상대 시스템도 바꿔야하니까요 물론 한번에 완벽한 사양을 정의한다는건 욕심입니다. 머리로는 알고 있음에도 마음 한구석 부담이 있었습니다.
프로젝트를 진행하며 겪은 이슈들
DB가 다르다…?
정말 말이 안되는 일이 일어났습니다.
처음 전달받았던 DB 스펙은 MS SQL이었습니다. 그런데 이 사실을 알게 된 건 출국 전날이었습니다. MS SQL 라이선스 키를 전달받기 위해 확인하던 중 실제 현장에서 사용해야 할 DB가 제가 전달받았던 것과 다르다는 사실을 알게 되었습니다.
당시 DAO는 MyBatis로 구성되어 있었습니다. RDBMS의 SQL은 대부분 표준 SQL을 사용하면 큰 문제 없이 작성할 수 있지만 문제는 내장 함수였습니다. 이미 작성된 SQL을 그대로 사용할 수 없는 부분이 생길 수밖에 없었습니다.
결국 헝가리 숙소에 도착하자마자 하루를 통째로 SQL을 확인하고 수정하는 데 사용했습니다.
당시에는 이런 상황을 처음 겪어보기도 했고 무엇보다 출국 직전에 알게 된 예상치 못한 문제라 꽤나 당황스러웠습니다. DBMS 에 대한 의존성을 가져가는것에 대한 문제를 생각해본적이 없었습니다. 여러모로 많이 미숙했던 것 같습니다.
비밀번호가 틀렸다고?
현장에 서버가 도착하고 랙에 설치한 뒤 전달받은 관리자 비밀번호로 서버에 접속하려 했습니다. 그런데 아무리 입력해도 계속 비밀번호가 틀렸다는 경고가 나타났습니다.
정말 당황스러웠습니다.
혹시 업체에서 잘못된 비밀번호를 전달한 것은 아닐까 싶어 핫라인을 통해 다시 확인했지만 해당 업체가 제공해준 비밀번호 리스트를 다 테스트 해봐도 실패하였습니다.
옆에 있던 헝가리 전산 담당자와 번역기를 사용해 상황을 공유하던 중 문득 그의 키보드가 눈에 들어왔습니다.
어라? 뭔가 배열이 다르다!
그제야 이상한 점을 발견했습니다. 서버에 연결된 키보드의 각인은 우리가 일반적으로 사용하는 QWERTY 배열이었지만, 실제 키보드 입력 방식은 헝가리에서 사용하는 QWERTZ 배열이었던 것입니다. 알고 보니 Y와 Z의 위치가 서로 달랐고 특수문자도 달랐습니다.
다시 말해서 제가 비밀번호에 포함된 문자를 입력할 때 의도한 문자와 실제로 입력되는 문자가 달랐던 것입니다.
어떻게보면 정말 별것 아닌 이슈지만 당시에는 서버에 접속하지 못하는 상황에서 원인조차 찾지 못하고 있었기 때문에 식은땀이 날 정도로 당황스러웠습니다. 결국 이 작은 문제를 해결하는 데 수 시간이나 걸렸습니다.
이 일을 겪고 나니 해외 프로젝트에서는 환경이 달라짐에 따라 생기는 이슈가 있다는것을 알게되었습니다.
코로나로 인한 입국하지 못한 중국 개발자들
셔틀랙 테스트는 꽤나 힘든 과정이었습니다. 코로나가 막 시작되던 시기였고 셔틀랙을 담당하던 중국 개발자들이 헝가리로 입국하지 못했었습니다.
결국 중국 개발자들은 원격으로 PC 에 들어와서 대응하고 있었습니다. 테스트 중 문제가 발생하면 위챗으로 상황을 설명하고 상대방이 수정한 뒤 다시 전달받아 확인하는 과정을 반복했습니다.
어려웠던 것은 문제를 설명하는 일이었습니다. 서로의 언어가 달랐기 때문에 번역기를 사용해야 했고 특히 오류 상황이나 기술적인 맥락을 글로 설명하는 것은 생각보다 많은 시간이 필요했습니다.
물론 담당자가 바로 옆에 있었다고 해도 번역기를 사용했겠지만 같은 공간에서 화면을 함께 보고 이야기할 수 있는 것과 원격으로 상황을 설명하는 것은 확실히 달랐습니다.
커뮤니케이션도 프로젝트의 중요한 요소 중 하나라고 생각이 들었습니다.
마치며
인지컨트롤스 헝가리 프로젝트는 처음으로 프로젝트의 전 과정을 직접 맡아 진행했던 홀로서기 프로젝트였습니다. 예상하지 못했던 문제도 많았고 부족한 점도 많았지만 그만큼 많은 것을 배울 수 있었습니다. 특히 개발만 잘하는 것과 하나의 프로젝트를 완성하는 것은 전혀 다른 일이라는 것을 몸으로 배웠던 프로젝트였습니다.
지금 돌아보면 아쉬운 부분도 많지만 그래서 더욱 오래 기억에 남는 프로젝트가 될 것 같습니다.