mosaiks are made of tesserae: GUI design for a co-simulation framework
이 논문은 모자이크 (mosaik) 공시뮬레이션 프레임워크에 '테셀라 (tesserae)' 개념을 도입하고 드래그 앤 드롭 방식의 GUI 를 개발하여 스크립트 기반의 복잡성을 해소하고 접근성을 높이는 동시에 기존 프레임워크의 유연성과 확장성을 유지하는 방법을 제시합니다.
지금까지 모자이크라는 도구를 사용하려면 파이썬 (Python) 이라는 프로그래밍 언어로 직접 코드를 작성해야 했습니다.
비유: 마치 거대한 레고 성을 쌓을 때, "왼쪽 3 번 블록을 5 번 쌓고, 그 위에 오른쪽 2 번 블록을 1 번 얹고..."라고 매번 말로 지시하는 것과 같습니다.
현실: 에너지 시스템 (스마트 그리드 등) 은 태양광 패널, 풍력 터빈, 배전선로 등 수천 개의 부품이 얽혀 있습니다. 코드로 하나하나 지시하려면 매우 어렵고, 실수하기 쉽습니다. 전문가가 아니면 접근 자체가 불가능했습니다.
2. 해결책: "테셀라 (Tesserae)"라는 새로운 블록
저자들은 이 문제를 해결하기 위해 **'테셀라 (Tesserae)'**라는 개념을 도입했습니다.
비유: 모자이크 (Mosaic) 는 작은 돌조각 (테셀라) 으로 그림을 만드는 예술입니다. 이 논문에서는 하나의 '돌조각'을 '작은 레고 세트'로 정의했습니다.
예: "태양광 패널 100 개"를 따로따로 조립하는 게 아니라, "태양광 패널 100 개가 들어있는 상자 (테셀라)" 하나를 가져오는 것입니다.
이 상자를 드래그해서 화면에 놓으면, 안에 들어있는 100 개의 패널이 자동으로 만들어집니다.
장점: 이제 사용자는 수천 개의 부품을 일일이 다룰 필요 없이, '상자 (테셀라)' 단위로 사고하고 연결하면 됩니다.
3. 새로운 도구: "드래그 앤 드롭" 그래픽 인터페이스 (GUI)
이제 이 '테셀라'들을 이용해 마치 퍼즐을 맞추듯 시뮬레이션을 설계할 수 있습니다.
어떻게 작동하나요?
화면 왼쪽에서 필요한 부품 (예: 태양광, 풍력, 전력망) 을 드래그해서 화면 중앙으로 가져옵니다.
이 부품들 (테셀라) 을 선으로 연결합니다.
예: "태양광에서 나온 전기를 전력망으로 보내라"라고 선을 그으면, 프로그램이 알아서 수천 개의 연결 고리를 자동으로 만들어줍니다.
화살표 방향: 데이터가 양쪽으로 오가는지, 한쪽만 보내는지 등을 직관적으로 설정할 수 있습니다.
효과: 코딩을 몰라도, 레고나 퍼즐을 조립하듯이 복잡한 에너지 시스템을 설계할 수 있게 됩니다.
4. 기술적 뒷받침: "오븐에 구워진 빵" (Baking)
사용자가 화면에서 퍼즐을 맞추면, 그 뒤에서 자동으로 코드가 생성됩니다.
비유: 사용자가 만든 그림을 오븐에 넣는 (Baking) 과정입니다.
사용자가 그린 '테셀라'와 '연결선'이라는 **생면 (Abstract)**을 오븐에 넣으면, 모자이크 엔진이 이를 실제 작동하는 코드로 구워낸 (Concrete) 결과물을 만들어냅니다.
만약 중간에 오류가 생기면, 전체가 다 망가지는 게 아니라 오류가 난 부분만 표시해 줍니다. 나머지 잘 만들어진 부분은 계속 작동하게 해줍니다.
5. 왜 중요한가요?
누구나 참여 가능: 에너지 전문가, 정책 입안자, 학생 등 코딩을 모르는 사람들도 직접 시뮬레이션을 설계할 수 있습니다.
실수 감소: 수천 개의 연결을 일일이 코드로 적을 때 생기는 실수를 줄여줍니다.
미래 지향성: 이 도구는 웹 기반이어서, 나중에 여러 사람이 함께 하나의 시뮬레이션을 실시간으로 편집하거나, 클라우드에서 실행하는 '서비스'로도 발전할 수 있습니다.
요약
이 논문은 **"복잡한 에너지 시스템을 코딩으로 조립하는 대신, 직관적인 '테셀라'라는 블록을 드래그 앤 드롭으로 연결하여 누구나 쉽게 시뮬레이션을 만들 수 있게 만든 새로운 도구"**를 소개합니다. 마치 복잡한 레고 조립을 코딩 대신 퍼즐 놀이처럼 만든 것과 같습니다.
제시된 논문 "GUI design for a co-simulation framework"에 대한 상세 기술 요약은 다음과 같습니다.
1. 문제 정의 (Problem)
스크립트 기반 접근의 한계: 오픈소스 공시뮬레이션 프레임워크인 mosaik은 현재 Python 스크립트를 사용하여 시나리오를 구성합니다. 이는 에너지 및 엔지니어링 분야의 많은 잠재 사용자에게 진입 장벽이 됩니다.
시각화 부재 및 오류 가능성: 스크립트 기반 방식은 수천 개의 엔티티 (엔티티 인스턴스) 를 생성하고 연결하는 데 유연하지만, 시나리오의 시각적 표현이 부족합니다. 자동화된 시각화 생성은 너무 단순하거나 너무 상세하여 인지 부하를 증가시키고, 이질적인 공시뮬레이션 설계 시 오류 발생 확률을 높입니다.
기존 도구의 부족: 기존 공시뮬레이션 도구들 (HELICS, AIOMAS, DACCOSIM NG 등) 은 대부분 프로그래밍 정의나 XML/CSV 기반 설정에 의존하거나, GUI 기능이 도메인 특화적이거나 확장성이 부족하여 대규모 다중 에너지 시스템에는 적합하지 않습니다.
2. 방법론 (Methodology)
저자들은 mosaik 프레임워크의 접근성을 높이기 위해 Tesserae(테세라) 개념과 이를 기반으로 한 그래픽 사용자 인터페이스 (GUI) 를 도입했습니다.
Tesserae (테세라) 개념 도입:
모자이크의 한 조각 (tessera) 에서 영감을 얻어, 개별 엔티티를 관리 가능한 단위로 그룹화하는 추상화 계층을 정의했습니다.
엔티티 생성 및 선택: 테세라는 특정 시뮬레이터의 모델을 기반으로 새 엔티티를 생성하거나, 기존 시뮬레이션에서 필터링된 엔티티를 선택하는 방식으로 정의됩니다.
연결 관계 (Relations): 테세라 간의 연결은 일대일 (one-to-one), 무작위 (random), 다대일 (many-to-one), 수동 (manual) 또는 다른 연결의 조합 (composition) 으로 정의할 수 있습니다. 이를 통해 양방향 데이터 흐름의 일관성을 자동으로 보장합니다.
추상화 및 구체화 프로세스 (Baking):
추상 시나리오 (Abstract): GUI 에서 테세라와 연결 관계로 정의된 시나리오.
구체 시나리오 (Concrete/Orbit): Python mosaik API 를 실행하는 'Orbit' 객체로 변환되는 과정. 이 과정에서 실제 시뮬레이터가 시작되고 엔티티가 생성되며, 추상적 연결이 실제 엔티티 쌍으로 매핑됩니다.
오류 허용 및 부분 재사용: 초기화 실패 시 전체가 아닌 해당 요소만 'Baking problem'으로 처리하여 부분 시나리오 작업을 가능하게 하며, 변경 사항에 따라 기존 엔티티를 재사용하거나 새로 생성하는 지능형 알고리즘을 적용했습니다.
아키텍처 설계:
웹 기반 프레임워크: Svelte(프론트엔드) 와 Python(mosaik-orbit, 백엔드) 을 사용.
WebSocket 통신: 프론트엔드와 백엔드 간의 실시간 데이터 교환.
배포 유연성: 웹 기반 'Simulation-as-a-Service (SimaaS)' 플랫폼과 데스크톱 애플리케이션 (Electron 등) 두 가지 사용 사례를 모두 지원.
3. 주요 기여 (Key Contributions)
Tesserae 메타모델 제안: 개별 엔티티 수준이 아닌 그룹화된 단위 (테세라) 로 시나리오를 정의하여 복잡한 공시뮬레이션 설정을 직관적으로 관리할 수 있게 함.
Drag-and-Drop GUI 개발: 스크립트 작성 없이 시뮬레이터, 테세라, 연결을 드래그 앤 드롭으로 생성하고 실행할 수 있는 인터페이스 구현.
오픈 소스 및 확장성:mosaik-orbit 패키지를 PyPI 에 공개하여 GUI 없이도 고성능 머신에서 GUI 로 설계된 시나리오를 실행 가능하게 함. 또한, 시뮬레이터 개발자를 위한 플러그인 인프라 구조를 제안.
유연성과 일관성 유지: 스크립트 기반의 유연성 (수천 개 엔티티 생성, 동적 조정) 을 해치지 않으면서도 시각적 직관성을 추가.
4. 결과 (Results)
사용성 향상: 코딩 지식이 부족한 정책 입안자, 그리드 계획자, 학술 연구자 등 다양한 배경의 사용자가 공시뮬레이션 설정에 접근할 수 있게 됨.
시나리오 관리: 복잡한 에너지 시스템 (예: 태양광, 풍력, 제어기, 배전선로 간의 연결) 을 시각적으로 명확하게 표현하고, 연결 관계의 일관성을 자동으로 유지할 수 있음.
기술적 구현: Svelte Flow 를 활용한 그래프 기반 시각화, Python 백엔드와의 WebSocket 연동, 부분적 Baking(초기화 실패 시에도 다른 요소 실행) 등의 기능이 성공적으로 구현됨.
현재 상태: 시뮬레이터 추가, 테세라 생성, 연결, 실행 등 기본 기능은 완성되었으며, 오픈 소스로 GitLab 에 공개됨.
5. 의의 및 향후 전망 (Significance & Future Work)
접근성 혁신: 에너지 시스템 및 사이버 - 물리 시스템 (CPES) 분석을 위한 공시뮬레이션의 진입 장벽을 낮추어 더 넓은 사용자 계층을 확보할 수 있는 기반을 마련함.
협력적 작업 환경: NFDI4Energy 컨소시엄과 연계하여 시뮬레이션 모델 레지스트리 통합, SimaaS 허브 연동, 그리고 여러 사용자가 동시에 시나리오를 편집하는 협업 기능 구현을 계획 중.
확장 가능성: 디버깅, 실시간 분석, 결과 시각화 기능 추가 및 사용자 연구 (비프로그래머 대상) 를 통해 도구 완성도를 높일 예정.
표준화 기여: 다양한 시뮬레이션 도구를 연결하는 표준화된 인터페이스와 메타모델을 제공하여 다중 에너지 시스템 연구의 효율성을 증대시킴.
이 논문은 코딩 의존도를 줄이고 시각적 직관을 강화함으로써 대규모 공시뮬레이션 설계의 복잡성을 해결하고, 에너지 시스템 연구 및 개발의 민주화를 촉진하는 중요한 도구로 평가됩니다.