제조 실행 시스템, MES를 여러 환경에서 제공하려면 화면을 띄우는 것뿐 아니라 이후의 변경도 함께 생각해야 합니다. 업무 기능이 바뀔 때 웹과 모바일 구현을 각각 관리하면 개발과 유지보수의 부담이 늘어납니다. 한솔 PNS의 표준소프트웨어연구 업무에서 저는 기존 업무·공정 자동화 소프트웨어를 웹 기반 크로스플랫폼 서비스로 구성하고, 이를 개발할 사내 표준 프레임워크를 설계·구축·배포했습니다.
웹과 모바일이 같은 개발 기반을 쓰도록
제안한 구성은 반응형 웹과 iOS·Android 앱을 하나의 모노레포에서 관리하는 방식이었습니다. 웹에는 Next.js를, 모바일에는 React Native와 Expo를 사용했습니다. 플랫폼별 결과물을 만들되 공통 개발 기반을 함께 관리해, 중복되는 개발과 이후 유지보수 비용을 줄이는 것이 목적이었습니다.
모노레포는 여러 앱의 코드를 같은 저장소에 두는 구성입니다. 제게 중요한 것은 저장소를 합치는 행위 자체보다, 공통으로 사용할 소프트웨어를 표준 라이브러리로 만들고 여러 개발자가 그 기준을 사용할 수 있게 하는 일이었습니다. 특정 화면 하나의 구현에서 끝나는 과제가 아니라, 후속 개발이 출발할 기반을 만드는 역할이었습니다.
라이브러리와 사용 방법을 함께 배포했습니다
표준이 실제 개발에 쓰이려면 구현과 사용 방법이 함께 전달돼야 합니다. 공통 라이브러리가 있어도 개발자가 적용 방법을 알지 못하면 각자 다른 방식으로 같은 문제를 풀게 됩니다. 저는 표준 소프트웨어 라이브러리를 개발·관리하는 것과 함께 가이드라인을 작성해 배포했습니다.
개발자 교육도 직접 진행했습니다. 프레임워크를 만든 사람이 계속 대신 구현해 주는 방식으로는 다른 개발자의 작업 기반이 되기 어렵습니다. 라이브러리와 문서를 전달하고 사용 방법을 설명하는 단계까지 맡아, 설계한 구성을 조직에서 사용할 수 있는 형태로 넘겼습니다.
이 과제는 제가 구현한 기능을 배포하는 데서, 다른 개발자가 다음 기능을 만들 수 있도록 지원하는 일로 이어졌습니다. 크로스플랫폼 구성을 제안하고 구현한 뒤 실제 사용 방법까지 전달하면서, 프레임워크의 설계와 조직 내 도입을 함께 맡았습니다.