SWIM은 왜 쓰는 걸까? — 항공 시스템이 ‘연결’되는 진짜 이유
SWIM은 왜 쓰는 걸까?
이전 글에서 나는 항공 SI 프로젝트에 처음 들어오면서
“SWIM이라는 걸 계속 듣는데 정확히 뭔지 모르겠다”는 상태였다.
👉 (이전 글 참고) 항공 SI 온보딩 이야기 1편
문제는 ‘연결’이었다
항공 시스템은 생각보다 단순하지 않다.
- 관제 시스템 (ATC)
- 비행계획 시스템 (FDP)
- 공항 시스템 (AODB)
- 항공사 시스템
- 기상 시스템
👉 이 모든 시스템이 각자 따로 존재한다
문제는 여기서 발생한다.
❗ 서로 데이터 형식도 다르고
❗ 통신 방식도 다르고
❗ 연결 방식도 제각각이다
SWIM 없이 연결하면 어떻게 될까?

예전 방식은 단순했다.
- 시스템 A → 시스템 B 직접 연결
- 시스템 B → 시스템 C 또 직접 연결
결과는?
👉 지옥의 인터페이스 구조
- N:N 연결 구조
- 유지보수 난이도 폭발
- 장애 발생 시 원인 추적 어려움
그래서 등장한 게 SWIM이다

SWIM(System Wide Information Management)은
한마디로 정리하면 이거다.
“항공 시스템 간 데이터를 표준 방식으로 공유하는 플랫폼”
조금 더 쉽게 말하면:
👉 항공판 API + 메시지 플랫폼
SWIM의 핵심 개념 3가지
1. 표준화 (Standardization)
- 데이터 형식 통일 (XML / JSON)
- 인터페이스 정의 (Service)
👉 “이 데이터는 이렇게 생겼다”를 모두가 공유
2. 서비스화 (Service-Oriented)
기존:
- 시스템 간 직접 연결
SWIM:
- 서비스 등록 → 필요한 시스템이 호출
👉 REST API / MQ 기반 구조
3. 느슨한 결합 (Loose Coupling)
이게 핵심이다.
- 시스템 A는 B를 몰라도 된다
- 그냥 “서비스”만 알면 된다
👉 변경 영향 최소화
EUROCONTROL 기준으로 보면
유럽 SWIM 구조는 더 명확하다.
- REG (Registry) → 서비스 등록/조회
- IE (Information Exchange) → 데이터 전달
- ESI → 외부 시스템 연결
👉 즉,
- REG = API 문서 + 서비스 카탈로그
- IE = 메시지 브로커 (RabbitMQ 느낌)
그럼 결국 뭐가 좋아지는가?
정리하면 이거다.
✔ 개발자 입장
- 인터페이스 명확
- 재사용 가능
- 유지보수 쉬움
✔ 운영 입장
- 장애 추적 가능
- 모니터링 용이
- 확장성 확보
✔ 조직 입장
- 표준 기반 협업 가능
- 외부 기관 연동 쉬움
그런데 여기서 중요한 포인트
SWIM은 단순 기술이 아니다.
👉 “조직 간 데이터 공유 방식” 자체를 바꾸는 개념이다
그래서 도입이 어려운 거다.
관련 태그 글
Apex Seoul 개발 기록 - 브라운관으로 보는 북악, CRT와 VHS 셰이더
Apex Seoul에 스캔라인과 둥근 브라운관 외곽, 색 번짐과 테이프 떨림을 더했다. 단순한 일렁임에서 CRT 형태를 잡고, PLAY와 시간 표시까지 셰이더 안에 넣은 과정을 정리했다.
Apex Seoul 개발 기록 - 모바일 조작과 PWA를 준비하는 방향
가상 버튼을 기본으로, 기울기 조향은 선택으로. Apex Seoul의 모바일 입력과 권한 처리, 화면 회전 시 일시정지, 설치형 PWA까지 앞으로 구현할 방향을 정리했다.
Apex Seoul 개발 기록 - 세 대의 프로파일, RPM 컷, Retry시 리소스 오류
세 차량의 코너링 설정을 프로파일로 분리했다. 터보 차량의 변속과 RPM 컷을 수정하고, Retry 뒤 나무가 사라지던 Scene 수명주기 버그를 정리했다.
Apex Seoul 개발 기록 - 코너에 갇힌 차를 도로로 돌려보내기
코너 충돌 뒤 가속해도 움직이지 못하는 상황에 자동 복귀를 붙였다. 정상 정차와 고착을 구분하는 조건, 도로 중앙 배치와 차량 상태 초기화, 깜박임 연출, 타임어택 기록을 지키는 처리까지 정리했다.
Apex Seoul 개발 기록 - 차량별 로컬 기록과 기본값 복원
최고 시간 하나만 저장하던 레이싱 게임에 차량별 PB와 최근 완주 이력을 붙였다. localStorage 저장부터 내부 배열 기반 기본값, 리셋 후 기록이 되살아나지 않게 하는 처리까지 정리했다.