Mendix에서 Siemens Teamcenter연결(1/3)

안녕하세요.repixel 의 Mendix 엔지니어 하현수입니다. 최근 Mendix 앱에 Siemens Teamcenter(PLM)를 연동하는 프로젝트를 진행했습니다 문서만 보면 모듈 설치 → 설정 → 끝인 것 같지만 실제로는 SSO(OIDC), 권한(Allowed role), 위젯/모듈 호환, DB 드라이버/암호화 옵션 같은 현실 이슈가 연쇄적으로 등장합니다. 지면을 늘리기보다 실제 현장에서 도움이 된 핵심 2 가지에 집중해 공유합니다. 1) 우리가 선택한 연동 아키텍처와 결정 배경 2) 초기 장애 포인트와 해결 전략(체크리스트 포함
왜 Teamcenter 를 붙였나(맥락)
우리의 목표는 설계–제조 데이터 흐름을 표준화하고, PLM 정보를 Mendix 앱에서 빠르게 탐색/업무화하는 것이었어요. 기존에는 내보내기·엑셀·스크립트에 의존해 중복/지연/권한 불일치가 잦았죠. Teamcenter 연동은 이 병목을 줄이고, SSO/감사 일관성까지 확보하려는 시도였습니다
우리가 선택한 구성
모듈/익스텐션 | 하는 일(핵심 역할) |
Teamcenter Connector | Teamcenter와의 기본 연동 프레임워크 제공. 세션 관리, SOA/REST 호출 래핑, 샘플 마이크로플로우/페이지로 로그인→조회→바인딩 흐름 검증 지원 |
Teamcenter Extension | 커넥터를 보완하는 설정/예제 UI와 헬퍼 제공. 서버/테넌트/리소스 경로 입력, 토큰 상태 확인, 예제 목록·상세 화면으로 응답 바인딩 확인. |
OIDC SSO | 사내 IdP와 OIDC 표준 기반 SSO 연동. Redirect URI, 클레임(groups/roles) 매핑을 통해 로그인·역할 부여·토큰 수명 관리. |
Encryption | 런타임 비밀값(클라이언트 시크릿, DB 암호, API 키 등) 암복호화 유틸. EncryptionKey 주입/회전 및 안전한 보관을 위한 인터페이스 제공. |
Community Commons | 문자열/날짜/파일/컬렉션/JSON 등 범용 유틸리티 액션 묶음. 마이크로플로우에서 전처리·포맷팅·변환 작업에 활용. |
UserCommons | 로그인 이후 사용자 객체 초기화, IdP 그룹→앱 역할 매핑 보조, 세션 관련 편의 액션 제공. |
Mx Model Reflection | 런타임에 도메인 모델의 엔티티/어트리뷰트를 선택적으로 노출. Excel/DB 모듈/동적 매핑 기능에서 도메인 구조 참조할 때 사용. |
DatabaseReplication | 외부 DB 스키마→Mendix 엔티티로 복제/동기화. 소스 연결, 테이블↔엔티티 매핑, 초기 적재 및 증분 스케줄링 지원. |
Database Connector | 외부 DB에 직접 SQL 쿼리 실행(읽기/쓰기). 파라미터 바인딩, 커넥션 풀·트랜잭션 제어 등 데이터 액세스 유틸 제공. |
- OIDC: 계정·권한·만료 정책을 조직 표준과 맞춤(운영 단순화)
- Teamcenter Connector/Extension: PLM 도메인/샘플 플로우 재사용으로 학습·검증 속도↑
- Encryption/Mx Model Reflection: 비밀·키 관리와 런타임 도메인 노출 제어에 필수
설치 직후, 바로 부딪힌 현실 이슈들
설치후 에러 이슈를 방지하는 3단계 루틴부터 정리합니다.
1단계: 모듈 설치(마켓플레이스)
위에 있던 필요한 모듈들을 모두 import합니다
2단계: 호환성 정리(강추)
- App → Tools → Update All Widgets (오래된 위젯 일괄 갱신)
- Convert(버전 변환 로그 확인) 진행
- Clean Deployment Directory 후 재빌드/런
3단계: “샘플 앱 기준” 빠른 오류 대응
- ClaimEntityAttribute_NewEdit 페이지의 ComboBox 경고/에러 → 22Default value = empty 로 설정(빈값 초기화 이슈 방지)
- React Client 런타임 이슈(빈 화면/라우팅 실패) → Runtime → Use React Client = No
- 참조 누락(액션/위젯 없음) 컴파일 에러 → Keyboard Shortcut, URL Redirector 등 선택 모듈도 위젯 업데이트 재실행
Tip입니당 : 샘플 페이지가 돌아가야 앱의 바인딩/권한/SSO 흐름도 점검이 쉬워집니다. 바인딩 대상(엔티티/어트리뷰트)과 데이터소스는 반드시 재확인하세요.
핵심 흐름: 처음 연결은 이렇게(SSO → 커넥션 → 매핑 → 호출 테스트)
1) SSO(OIDC)
- OIDC 모듈 추가, 환경에 맞게 설정
- Redirect URI 를 IdP에 등록(콜백 미등록은 1순위 실패 원인)
2) Teamcenter 커넥션
- Teamcenter 서버 URL(tcurl, fmsurl 등) 및 인증 방식 설정
3) 도메인 모델/매핑
- 끌어올 객체(Item, Dataset 등) ↔ Mendix 엔티티 매핑
- Mx Model Reflection으로 노출할 엔티티 선택(필요 최소만)
4) SOA/REST 호출 테스트
- 샘플 마이크로플로우로 로그인→조회→바인딩 점검
- 실패 시 응답코드(401/403/500) 기준으로 인증/권한/엔드포인트 역추적
문제–원인–해결–재발방지
문제 - 로그인 이후 빈 화면 / LoginAction 롤백 / 18452(도메인 인증) 등 예상
원인 - Allowed role 누락(페이지/마이크로·나노/네비게이션/퍼블리시드 서비스 진입점 중 1 곳이라도 비어 있으면 막힘) - 통합 인증(Integrated Authentication)과 도메인 신뢰 불일치 - EncryptionKey 미설정 - JDBC 옵션 부적합(encrypt, trustServerCertificate, Kerberos 등)
해결
- 진입점마다 Allowed role 명시
- 통합 인증 대신 SQL Auth 또는 OIDC 토큰 기반으로 단순화, 혹은 AD/Kerberos 신뢰 확인 - EncryptionKey 환경변수/비밀관리로 주입(부팅 시 검증)
- JDBC 옵션 재검토(임시로 trustServerCertificate=true → 운영 전 CA 기반으로 복원)
방지
- 배포 파이프라인에 사전 점검 스텝 추가(역할 매핑/비밀 존재/위젯 버전/DB 핸드셰이크) - 문제 재현 플레이북(캡처/로그 경로/테스트 계정/토큰 캡처) 문서화 Teamcenter Extension 한눈에 보기(샘플로 빠르게 보정) - 환경 설정 페이지에서 서버/테넌트/리소스 경로 입력 - 로그인/토큰 상태 위젯으로 인증 플로우 점검 - 예제 목록/상세로 SOA/REST 응답이 Mendix 엔티티에 바인딩되는지 확인
- 실제 스키마가 다르면 ComboBox 초기값/매핑 이슈가 재현될 수 있으니 엔티티/속성 치환에 주의 데이터 도우미: DatabaseReplication / Database Connector / Mx Model Reflection - DatabaseReplication: 외부 DB 스키마 → Mendix 엔티티 복제 → 소스(JDBC/사용자/스키마) → 매핑(테이블→엔티티, 컬럼→어트리뷰트) → 풀 로드 → 증분 스케줄 - 대용량은 배치 크기/트랜잭션 전략/로그 레벨로 튜닝
- Database Connector: 외부 DB 에 직접 쿼리(읽기/쓰기)
- 파라미터 바인딩·커넥션 풀·암호화 옵션 체크 - Mx Model Reflection: 런타임에서 노출할 엔티티/어트리뷰트 선택적 공개(Excel/DB 모듈이 참조)
오프라인(온프렘) 배포: Windows Service Console
이번에 웹페이지를 만들고 확인하는 과정에서 서비스를 구동하는 서버가 인터넷이 불가능한것을 알게되었고 그로인해 오프라인 배포를 함께 경험해보았습니다.
어렵지 않지만, 처음인분들을 위해 위 내용도 함께 공유합니다
Mendix 앱을 윈도우 서비스로 구동합니다.
1. Mendix Service Console 설치
2. 애플리케이션 추가: MDA 파일 지정(f7키 누르면 설정창이 나옵니다)
3. 런타임 설정: 데이터베이스(이미 존재/새로 생성), 관리자 계정, 커스텀 설정
4. 서비스 계정/권한: 파일·DB 접근 권한 점검
5. 서비스 설치→시작 후 로그 확인(Wrapper/Mendix 로그)
상세 단계와 스크린샷은 공식 문서를 참고하세요.
(예: Deploy a Mendix app on Microsoft Windows – Service Console)
현재는 이렇게 구동합니다 (요약입니다)
인증/권한 계층
OIDC SSO: 사내 IdP로 로그인 → 토큰 수령 → Mendix에서 그룹/클레임→역할 매핑.
역할 기반 접근(RBAC): 페이지/마이크로·나노플로우/퍼블리시드 서비스의 진입점별 Allowed role로 실행 경로 제어.
데이터 경로
조회(Read): Mendix → Teamcenter SOA/REST 호출로 Item / Revision / Dataset / BOM 단위 조회 및 화면 바인딩.
선택적 캐시(Sync): 빈번히 보는 핵심 속성만 로컬 엔티티에 동기화(변경 이벤트·스케줄 기반), 나머지는 온디맨드 조회.
앱 계층
UI/페이지: 목록→상세→연관 탐색(도면→BOM→공정) 흐름.
도메인 노출: Mx Model Reflection으로 필요한 엔티티만 공개(Excel/DB 모듈 연동용), 과노출 방지.
유틸: Community Commons/UserCommons로 전처리·세션 보조, Encryption으로 비밀/키 관리.
배포/운영
Windows Service Console로 온프렘 서비스 구동, Wrapper/Mendix 로그 모니터링.
환경 분리: DEV/TEST/PROD별 OIDC 클라이언트·리다이렉트 URI·Teamcenter 엔드포인트 분리 관리
자 이렇게 해서 팀센터를 연동하는 과정에 있어서 생길 수 있는 여러가지 문제점들을 알아보는 시간이 되었습니다. 이 문서로 인해 조금의 시간이 더 절약될 수 있었으면 좋겠습니다.
팀센터에 대한 전반적인 이해와 멘딕스를 함께 다룰 수 있으면 더 편하겠지만 단순히 “연결”에 집중하고 싶으신 분들이 참고하기 좋은 문서로 생각됩니다
이번 편(1/3)은 현재 아키텍처가 어떻게 구성되어 있고, 셋업 시 필수 운영 요건을 맥락과 함께 묶어 살폈습니다.
다음 편(2/3)에서는 Teamcenter Bom data 구조와 실제 서비스에서 사용하는 방법을 함께 알아보도록 하겠습니다!