lowcode 썸네일형 리스트형 [Mendix] 배포 실패! ConnectionBusException과 DB 동기화의 악몽 (feat. Unique Constraint) Mendix 개발 과정에서 로컬 테스트는 완벽했는데, 운영(Production) 서버 배포 단계에서 DB 에러로 식은땀을 흘렸던 경험을 정리해 드립니다. 로컬에서 기능 개발을 마치고 기분 좋게 운영 서버로 배포(Deploy)를 눌렀습니다. 그런데 진행률 바가 멈추더니 빨간색 에러 로그를 뱉어내며 배포가 중단되었습니다.1. 문제 상황: 40개의 DB 명령, 그리고 실패로그를 확인해보니 GitHub 통신 오류 같은 네트워크 문제가 아니었습니다. 명백한 Database Synchronization(DB 동기화) 오류였습니다.Plaintext ERROR: ... The database has to be updated.INFO - ConnectionBus: Executing 40 database synchroni.. 더보기 [Mendix] Spotfire 연동 2탄: 배치 스케줄링 & 데이터 중복 방지 (feat. Full Refresh) 지난 포스팅에서 복잡한 Join 문제를 해결하기 위해 Reporting Entity(납작한 통계 테이블)를 만들고, ETL Microflow까지 구현했습니다. 이제 남은 건 이 로직을 "자동으로" 돌리는 것뿐이었죠.하지만 역시나 Mendix, 호락호락하지 않았습니다. 두 가지 난관이 기다리고 있었는데요.스케줄러 버튼이 없다? (Runtime vs Studio Pro)데이터가 계속 쌓인다? (Duplicate Issue)1. Mendix 스케줄러: "버튼이 왜 없어?"일단 매일 밤 데이터를 갱신해야 하니 스케줄러를 찾아봤습니다. 웹 런타임 화면(ScheduledEvents)에 들어갔는데... [Add] 버튼이 없습니다.알고 보니 Mendix의 Scheduled Event는 런타임에서 설정하는 게 아니라, .. 더보기 [Mendix] 복잡한 DB Join 없이 Spotfire 대시보드 데이터 뽑아내기 (feat. 셀프 ETL) 최근 Mendix로 구축된 시스템의 데이터를 활용해 Spotfire 대시보드를 만드는 작업을 진행했습니다. 보통의 웹 애플리케이션 개발이 아니라, 데이터 시각화를 위한 백엔드 데이터 구조를 잡는 일이었죠.그런데 Mendix의 DB 구조... 아시는 분들은 아시겠지만 정말 희한합니다.1. 문제 상황: Mendix DB의 높은 장벽Mendix는 ORM(Object Relational Mapping) 기반이라 물리적인 테이블 명이 Module$Entity 형태로 생성되고, 테이블 간의 관계(Join)는 별도의 참조 테이블로 복잡하게 얽혀 있습니다.우리가 흔히 SQL에서 하듯 LEFT JOIN, INNER JOIN을 걸어서 데이터를 뽑아내려고 보니, 대시보드에 필요한 '기준 정보'들이 전부 각기 다른 테이블에 .. 더보기 이전 1 다음