슬랙(Slack)을 끄고 피그마(Figma)를 켰다: 국가 기관 ERP 구축 120일, 루멘트의 개발 일지

 “루멘트의 작업대 위에는 무엇이 있을까?”

안녕하세요, 주식회사 루멘트입니다.

“국가 기관 ERP(전사적 자원 관리) 시스템 구축.” 이 단어가 주는 무게감은 상당합니다. 수십만 건의 데이터가 오가고,

단 하나의 오차도 허용되지 않는 무결성이 요구되기 때문입니다.

루멘트는 최근 120일간 진행된 공공 분야 ERP 프로젝트를 성공적으로 마쳤습니다.

오늘은 화려한 결과물 뒤에 가려진, 루멘트만의 치열했던 기술적 고민과 소통 프로세스를 공개하려 합니다.

개발자가 아닌 분들에게는 신뢰를, 현업 개발자분들에게는 흥미로운 기술 아티클이 되기를 바랍니다.


1. 120일의 항해: 왜 메신저 대신 ‘피그마(Figma)‘였나?

보통 개발 외주를 맡기면 카카오톡이나 슬랙 방부터 만듭니다. 하지만 루멘트는 이번 프로젝트에서 실시간 메신저 의존도를 극도로 낮췄습니다.

대신 기획 단계부터 디자인 툴인 Figma를 메인 커뮤니케이션 허브로 삼았습니다.

이유는 명확합니다. “텍스트는 오해를 낳고, 시각화는 확신을 주기 때문”입니다.

ERP 시스템은 복잡한 로직의 집합체입니다. “결재 버튼 누르면 승인 처리해주세요”라는 말 한마디에도 수십 가지 예외 처리가 필요합니다.

텍스트로 대화하면 “아, 저는 그런 뜻이 아니었는데요”라는 말이 나오기 마련입니다.

루멘트는 Figma Wireframe 단계에서 실제 작동하는 버튼, 데이터가 흘러가는 Flow, 예외 상황 팝업까지 모두 시각화했습니다.

클라이언트는 완성될 화면 위에 직접 코멘트를 달았고, 개발자는 기획서가 아닌 ‘화면 그 자체’를 보며 개발했습니다. 덕분에 재작업률을 0%에 가깝게 줄일 수 있었습니다.


2. 기술 스택: 안정성과 최신 트렌드의 교집합

국가 기관 시스템은 보수적입니다. 하지만 루멘트는 안정성(Legacy)을 지키면서도 유지보수 효율을 극대화할 수 있는 최신 기술 스택(Modern Tech)을 제안하고 도입했습니다.

  • Backend: Java 17, Spring Boot 3.0 (전자정부 프레임워크 호환성 고려 및 최신 보안 패치 적용)

  • Frontend: React.js, TypeScript (복잡한 대시보드 데이터의 상태 관리 최적화)

  • Database: PostgreSQL (대용량 트랜잭션 처리 및 비용 효율성)

  • Infra: AWS (EC2, S3), Docker, Kubernetes

 


3. [난제 해결] Redis 캐시 무효화(Cache Invalidation)와 데이터 정합성

이번 프로젝트의 최대 난관은 ‘속도’와 ‘정합성’의 딜레마였습니다. ERP 특성상 통계 데이터를 조회하는 요청(Read)이 많아 Redis를 도입해 속도를 높였습니다.

하지만, 예산이 수정되거나 결재가 반려되는 등 데이터 변경(Write)이 일어날 때, 캐시 된 데이터가 갱신되지 않아 사용자가 “어? 예산 수정했는데 왜 그대로지?”라고 느끼는 문제가 발생할 수 있습니다.

루멘트의 시니어 개발팀은 단순한 TTL(Time To Live) 설정에 의존하지 않고, 정교한 Cache Eviction(캐시 삭제) 전략을 짰습니다.

  1. Look-aside 패턴: 조회 시 캐시를 먼저 확인하고 없으면 DB를 조회하여 부하를 줄임.

  2. Event-Driven Invalidation: 예산 수정과 같은 핵심 비즈니스 로직이 실행될 때, Spring의 AOP(관점 지향 프로그래밍)를 활용해 관련된 Redis Key 그룹을 즉시 파기(Evict)하도록 설계.

결과적으로 대시보드 로딩 속도는 0.3초 미만으로 유지하면서도, 데이터 변경 시 실시간 반영률 100%를 달성했습니다. 이것이 루멘트가 말하는 “보이지 않는 기술력“입니다.


4. 개발이 끝이 아닙니다: AWS 인프라와 운영 기술 전수 (DevOps)

시스템을 다 만들고 “자, 이제 쓰세요” 하고 떠나는 것은 루멘트의 방식이 아닙니다. 클라이언트 내부 담당자가 시스템을 직접 운영할 수 있어야 진짜 프로젝트 종료입니다.

우리는 AWS 클라우드 환경을 구축하며 다음 기술들을 직접 전수(Handover)했습니다.

  • Docker & Container: 개발 환경과 운영 환경이 달라 에러가 나는 것을 막기 위해 모든 애플리케이션을 컨테이너화했습니다.

  • Kubernetes (K8s): 특정 서버에 트래픽이 몰려 죽더라도, 자동으로 새로운 팟(Pod)을 생성해 서비스를 유지하는 ‘Auto-healing’ 기능을 구축해 드렸습니다.

  • AWS S3: 용량이 큰 증빙 서류나 첨부 파일은 비싼 EC2 블록 스토리지 대신 S3에 분리 저장하여 스토리지 비용을 60% 절감했습니다.

우리는 마지막 2주를 **’운영 매뉴얼 교육 기간’**으로 잡았습니다. 단순히 문서를 던져주는 것이 아니라, 담당자가 직접 배포 명령어를 쳐보고 로그를 확인할 수 있도록 트레이닝했습니다.


5. 루멘트의 코드는 ‘미래‘를 향해 있습니다

120일간의 대장정, 3,000번 이상의 커밋(Commit), 그리고 수없이 쌓인 피그마의 코멘트들.

우리가 이렇게까지 집요하게 기록하고, 까다로운 기술을 도입하는 이유는 하나입니다. 소프트웨어는 ‘런칭‘이 끝이 아니라 ‘시작‘이기 때문입니다.

루멘트는 10년 뒤, 다른 누군가가 이 코드를 열어보았을 때도 “설계 참 잘했다”라고 말할 수 있는 시스템을 만듭니다.

복잡하고 어려운 프로젝트일수록, 기술의 깊이와 소통의 투명함을 갖춘 루멘트와 상의하세요.

루멘트의 간편 견적 서비스

원클릭 견적 문의가
성공적으로 접수되었습니다.