1. 서 론
선박은 점점 대형화, 고속화 되었고, 향후 자율운항선박의 등장은 해상교통 관리의 중요성을 더욱 가중 시킬것으로 예측되며, 이에 따라 실시간 상황 인식(Situational Awareness)을 하기 위한 AIS 데이터의 중요성과 활용은 지속적으로 강조되고 있다. 이러한 해양 데이터 사용의 가장 중요한 역할을 하는 것으로 선박자동식별장치(AIS, Automatic Identification System)가 존재한다. SOLAS 협약(IMO, 2004) 및 IMO 가이드라인(IMO, 2001)에 따라, 국제 항해에 종사하는 총톤수 300톤 이상의 모든 선박에 의무적으로 설치해야 하는 AIS는 선박의 고유 식별 정보(MMSI), 위치 좌표, 대지 속력(SOG), 대지 침로(COG) 등의 동적 정보와 선박 제원, 목적지 등의 정적 정보를 초단파(VHF) 대역을 통해 주기적으로 방송함으로써 전 세계 해상 교통망을 모니터링하는 핵심 인프라로 사용되고 있다. AIS 장비는 선박을 모니터링하는 가장 효과적인 방법으로 인식되어 대부분의 국가들이 자국의 국내법에 따라 설치대상 선박을 점점 확대하고 있으며, 우리나라의 경우에도 10톤 미만의 어선을 제외하고 대부분의 선박에 설치되어 있다.
그러나 AIS 데이터가 가지고 있는 중요성과 공공적인 가치에도 불구하고, 실질적인 데이터 접근과 활용에 있어서는 시스템을 구현하기 위한 기술적인 어려움 때문에 높은 진입 장벽이 존재한다. MarineTraffic이나 VesselFinder와 같은 글로벌 AIS 상용 플랫폼 서비스를 통하여 넓은 데이터 수신구역과 강력한 API를 제공하지만, 데이터 관리의 한계 때문에 실시간 동적정보에 대한 분석 자체가 불가능하다. 그리고 데이터 사용이나 대용량 과거 데이터 분석을 위해서는 유료 구독 서비스를 요구하고 있으므로 예산이 제한된 개인 연구자, 소규모 연구기관, 교육목적 비영리 단체, 개발도상국의 해양 관련 기관은 AIS 정보의 활용을 어렵게 만드는 진입 장벽이 되고 있다.
상용 플랫폼 서비스에 의존하지 않고 자체적인 AIS 모니터링 시스템을 구축하려는 시도는 기술적인 어려움과 비용의 한계를 겪게 된다. 일반적인 AIS 시스템 구축 방식은 대량의 실시간 NMEA(National Marine Electronics Association) 데이터 트래픽을 처리하고 다수의 클라이언트에게 지연 없이 분배하기 위하여 고사양의 서버 하드웨어와 엔터프라이즈급 상용 소프트웨어 라이선스와 AIS 시스템 개발 비용을 필요로 하는 경우가 많다. 이러한 고비용, 고사양 중심의 접근 방식은 초기 시스템 구축에 많은 비용과 유지보수에 많은 비용이 소요되기 때문에, AIS 데이터 활용의 주체를 기술과 자본력을 가지고 있는 특정 기관으로 한정시키는 결과를 가져온다.
이에 본 연구는 AIS 시스템 구축의 기술 접근과 AIS 데이터 접근 확대라는 목표를 가지고, 고가의 전용 서버 장비 없이 일반적인 사양의 데스크톱 PC와 오픈소스 소프트웨어를 활용하여, 실시간 AIS 데이터를 수집, 처리하고 다수의 사용자에게 안정적으로 분배할 수 있는 성능과 비용면에서 합리적인 시스템 아키텍처를 제안하고자 한다. 특히, 사물인터넷(IoT) 분야에서 경량성과 효율성이 검증된 MQTT(Message Queuing Telemetry Transport) 프로토콜을 AIS 시스템의 핵심 프로토콜로 적용하여, 저성능의 일반적인 하드웨어를 사용해도 시스템 구현이 가능하게 함으로써 범용성을 높이게 하였다.
본 연구의 제안된 시스템은 실제 선박에서 사용하는 AIS 장비로 데이터를 수신하여 테스트하고, 그 성능을 정량적으로 검증함으로써, 예산과 인프라의 제한을 받는 다양한 주체들에게 현실적이고 구체적인 구축 가이드라인을 제시하는 것을 목적으로 하였다.
본 논문은 다음과 같은 내용으로 구성된다. 제2장에서는 AIS 데이터 시스템을 대규모로 분석하고 시스템으로 활용하는 기존 연구를 확인하였고, 실시간 모니터링 시스템과 저비용 시스템을 조사하여, 본 연구가 갖는 차별성을 기술하였다. 제3장에서는 시스템 설계의 이론적 배경이 되는 AIS 데이터 구조, WebSocket 통신, 그리고 MQTT 프로토콜의 기술적 특성을 상세히 설명하였다. 제4장에서는 제안하는 시스템의 아키텍처와 Python 기반의 핵심 구현 로직을 코드를 명시하고 설명하였다. 제5장에서는 현재 부산항 인근에서 수집된 AIS 데이터를 기반으로 부하 테스트를 실시하고 품질 분석 내용을 제시하였다. 마지막으로 제6장에서는 연구의 결론과 향후 추가 연구 과제를 제시하였다.
2. 관련 연구
AIS 데이터와 관련된 시스템 구축에 관한 연구는 다양한 방식으로 진행되어 왔다. 이러한 연구는 크게 빅데이터 기반의 대규모 데이터 분석 시스템, 선박 위치를 확인하기 위한 실시간 처리 시스템, 그리고 저비용 시스템 구축을 위한 접근 방식으로 구분할 수 있다.
2.1 빅데이터 기반 해상 교통 및 위험 패턴 분석
첫 번째는 과거에 저장된 대용량 AIS 데이터를 분석하여 통항 패턴을 식별하거나 잠재적인 충돌 위험 해역을 확인하는 연구들이다. 이러한 연구들은 주로 선박의 밀집도와 트래픽 흐름을 거시적인 관점에서 분석하는 데 초점을 두었다.
Spiliopoulos et al.(2017)은 약 5억 개 이상의 AIS 메시지(약 500GB 규모)를 대상으로 전 세계 주요 무역 항로를 분석하기 위해 Azure HDInsight Spark 클러스터를 활용하였다. 이 연구에서는 56개의 CPU 코어와 224GB의 RAM을 갖춘 대규모 서버용 컴퓨터가 사용되었다. 이러한 시스템들은 저장된 데이터를 심층 분석(Deep Analysis)하는 방식으로 복잡한 패턴 마이닝에는 우수한 성능과 효과를 발휘한다. 그러나 시스템 구축을 위하여 고성능·고가의 클러스터 인프라와 전문적인 빅데이터 처리 기술을 요구한다는 한계가 있다. 즉, 실시간 모니터링보다는 사후 분석(Post-analysis)에 최적화되어 있고, 시스템 초기 도입 비용이 높아, 유지보수에 어려움이 높아 소규모로 사용하기에는 부적합한 모델이다.
2.2 웹 기반 실시간 모니터링 시스템
두 번째는 실시간 선박 위치 확인 및 해상교통관제와 충돌의 위험성 평가에 중점을 둔 연구들이다. 이들 연구는 주로 웹 기술을 활용하여 시스템 사용자에게 직관적인 시각화 인터페이스를 제공하는 데 중점을 두었다.
Asana et al.(2025)은 API와 DB를 백엔드(Backend)로 하고 React JS를 프론트엔드(Frontend)로 구성한 웹 기반 실시간 선박 모니터링 시스템을 개발하였다. 이 시스템은 WebSocket 기술을 사용하여 서버와 클라이언트 간의 양방향 통신을 구현하여 평균 61밀리초(ms)의 빠른 응답 속도와 안정성 확보하였다. 그러나 이 방식은 주로 서버와 다수의 클라이언트가 1:1로 직접 연결되는 구조이므로 클라이언트의 동시 접속자 수가 많을수록 서버 메모리와 CPU 부하가 증가하는 문제를 가지고 있다. 이것을 해결하기 위하여 로드 밸런싱(Load Balancing) 등의 추가적인 기술과 시스템 구성이 필요하다.
2.3 저비용 및 IoT 기반 시스템
세 번째는 비용의 효율성과 접근성을 확대하기 위한 연구들이다. SRT Marine(2025)은 소형 어선 및 상업 선박을 대상으로 약 20만 유로 미만의 비용으로 배타적 경제수역(EEZ) 전체를 모니터링할 수 있는 선박 추적 시스템을 구축하여 사용하고 있다. 또한,
Sagala et al.(2024)은 저전력 장거리 통신 기술인 LoRaWAN을 활용하여 Lake Toba에 선박 추적 시스템을 구축하고, 게이트웨이 성능에 따라 2.5km에서 5.7km의 수신 거리를 확보할 수 있음을 실증하였다. 최근에는 사물인터넷(IoT) 분야의 표준 프로토콜인 MQTT를 해양 분야에 적용하려는 사례도 증가하고 있다.
Atmoko et al.(2017)과
Kim et al.(2016)은 MQTT를 사용하여 이동 중인 차량 및 보행자의 위치 정보를 실시간으로 수집하는 IoT 시스템을 개발하였으며, Vaadin Ltd(2025)는 Java와 MQTT를 사용하여 실시간 선박 추적 웹 애플리케이션을 구현하였다. 본 연구는 이러한 저비용 시스템 구축 사례를 활용하되, 단순히 데이터를 수집(Collection)하는 것을 넘어 효율적으로 분배(Distribution)하는 아키텍처를 구현 하였다. 특히, MQTT 브로커를 도입하여 데이터 발행자(수신기)와 이용자(클라이언트)를 구조적으로 분리함으로써, 저사양의 일반적인 하드웨어에서도 시스템 구현이 가능하도록 하여 실용성을 확보했다는 점에서 기존 연구들과 차별화된다.
3. 기술적 배경
3.1 AIS 데이터 프로토콜
AIS는 선박 간 충돌 방지 및 해상교통관제를 위하여 국제적으로 표준화된 항해 통신장비이다. AIS 데이터는 NMEA 0183 표준 포맷인 !AIVDM (수신 메시지) 또는 !AIVDO (자선 메시지) 텍스트(Sentence) 문장 형태로 전송된다. 각 문장은 6비트 ASCII 인코딩 방식을 사용하여 데이터를 압축하며, 정보를 사용하기 위해서는 비트 단위의 파싱(Parsing) 및 디코딩 과정이 필요하다. 동적 데이터(선박위치, 속도 등)는 AIS 항해 상태에 따라 2초에서 3분 간격으로 갱신되므로, 선박교통량이 많은 해역에서는 실시간 시스템에서 초당 수백 건 이상의 메시지를 지연 없이 처리할 수 있는 파싱 기술을 필요로 하며 이를 구현하기 위해 파이썬 언어를 활용하였다(Python Software Foundation, 2024).
3.2 실시간 웹 통신 기술(WebSocket)
일반적인 웹 애플리케이션은 클라이언트가 서버에 주기적으로 데이터를 요청하는 HTTP 폴링(Polling) 방식을 사용한다. 그러나 이 방식은 불필요한 데이터 요청으로 인하여 오버헤드를 발생시키고, 데이터 업데이트 사이에 지연(Latency)을 유발하여 실시간 모니터링이 중요한 선박 모니터링에는 부적절하다. 반면 WebSocket 방식은 클라이언트와 서버 사이에 단일 TCP 연결을 유지하면서 서버와 클라이언트가 동시에 상호 통신을 가능하게 하는 프로토콜이다. 이 방법은 서버에 새로운 AIS 데이터가 수신되는 즉시 클라이언트에게 데이터를 직접 전송하는 방식으로 실시간 사용 및 모니터링을 획기적으로 개선할 수 있다.
3.3 MQTT 프로토콜과 발행-구독 모델
MQTT(Message Queuing Telemetry Transport)는 제한된 네트워크 대역폭과 저전력을 고려하여 설계된 경량 메시징 프로토콜 기술이다. MQTT 방식은 메시지를 발행(Publish)하고 이 메시지를 구독(Subscribe)하는 방식으로 구현된다. 즉, 데이터 생성자(Publisher)는 특정 토픽(Topic)을 발행하여 메시지를 브로커(Broker)에게 전송하고, 브로커는 해당 토픽을 구독(Subscribe)하고 있는 모든 클라이언트에게 메시지를 중계하는 역할을 한다. 이 구조는 MQTT 송신자와 수신자가 필수적으로 동기화될 필요가 없다. 따라서 시스템의 한 부분이 변경되거나 문제가 발생하더라도 전체 시스템에 주는 영향을 최소화할 수 있다. 또한, 1:N 통신을 효율적으로 처리할 수 있으므로 다수의 사용자가 동시에 서버 또는 브로커에 접속하는 AIS 분배 시스템에 최적화된 아키텍처를 제공한다.
4. 시스템 아키텍처 설계
4.1 설계 원칙
본 연구에서 제안하는 시스템은 비용 효율성, 확장성, 안정성의 세 가지를 중심으로 설계되었다.
1) 비용 효율성: 고가의 상용 소프트웨어나 서버 PC 대신, 무료 오픈소스 소프트웨어와 일반적인 PC 하드웨어를 사용하여 초기 구축 및 운용 비용을 최소화하였다.
2) 확장성: 데이터 수집, 처리, 관리 모듈을 독립적으로 구성하고 MQTT 브로커를 통해 연동하여, 향후 데이터 소스나 서비스 기능의 추가나 기능의 확장성을 용이하도록 하였다.
3) 안정성: 데이터량이 폭주하더라도 시스템이 중단되지 않고 안정적으로 동작할 수 있도록 경량 프로토콜인 MQTT를 사용하고, 데이터 처리 부하를 분산시키도록 하였다.
Fig. 1은 데이터 수집부(Data Collection Layer), 메시지 브로커(Message Broker Layer), 데이터 처리 및 웹 서버(Processing & Web Server Layer), 그리고 클라이언트(Client)의 4계층으로 된 구성도이다.
4.2 데이터 수집부 (AIS Receiver & Publisher)
데이터 수집부는 물리적인 AIS 수신기로부터 Raw data를 획득하여 네트워크로 전송하는 역할을 담당한다. 수집된 데이터 중 유효한 AIS 문장(!AIVDM)만을 필터링하여 MQTT 브로커의 특정 토픽(예: ais/raw)으로 발행(Publish)한다. 이 단계에서는 데이터에 대한 해석이나 가공을 수행하지 않고 Raw data 상태 그대로 전송함으로써, 수집 장치의 부하를 최소화하고 데이터 전달 속도를 높인다. 이는 저사양의 임베디드 장치(예: 라즈베리 파이)에서도 수집 노드를 운영할 수 있게 한다. 데이터를 수집하는 방식은 다음의 3가지 방식으로 구현하였다.
1) 로컬 시리얼(COM) 포트: PC에 직접 연결된 AIS 수신기나 트랜스폰더로부터 RS-232/422 인터페이스를 통해 데이터를 수신한다. 보통 Pilot Plug와 같이 사용된다.
2) TCP/WiFi 스트림: 네트워크를 통해 데이터를 전송하는 AIS 기기나 파일럿 플러그(Pilot Plug)로부터 TCP IP와 포트를 통해 데이터를 수신한다.
3) MQTT 구독: 원격지의 MQTT 브로커로부터 발행되는 AIS 토픽을 구독하여 데이터를 수신한다.
위 세 방식은 접속 방법만 차이가 있을 뿐, 접속 방식 자체가 PC 성능에 미치는 영향은 거의 없다. 왜냐하면 AIS raw data는 동일한 텍스트 문장(Sentence) 형태이기 때문이다. 본 연구에서는 실습선 한반도에서 사용 중인 AIS에 시리얼 포트(Serial Port)와 연결하여, NMEA 문장을 실시간으로 수집하고 동시에 MQTT 토픽(Topic)을 발행하여 메시지를 송신하는 것을 병행하였다. 연구에 사용된 AIS raw data 파일은
Fig. 2와 같다.
4.3 메시지 브로커 (MQTT Broker)
시스템의 중앙 신경망 역할을 수행하는 MQTT 브로커는 데이터 수집부로부터 유입되는 모든 AIS raw data 메시지를 수신하고, 이를 처리가 필요한 각 모듈로 분배한다. 본 연구에서는 오픈소스 브로커인 Mosquitto를 사용하였다. 브로커를 중심으로 한 아키텍처는 데이터의 흐름을 단순화하고, 특정 모듈의 장애가 전체 시스템에 미치는 영향을 최소화하였다. 필요에 따라 스마트폰 등 LTE망을 사용하면 훨씬 더 간편하게 서버로 신호를 전달할 수 있다. 특히, 스마트폰에 AIS 수신기를 부착하고 MQTT 브로커가 포함된 전용 애플리케이션(APK)을 제작하여 별도 프로그램을 사용할 경우 저전력 시스템 구현도 가능하다.
Fig. 3은 AIS 수신부에서 MQTT 프로토콜을 사용하여 AIS raw data 신호 그대로 Broker에 전송하는 Python의 핵심코드 문장이다.
4.4 데이터 처리 및 웹 서버 (Subscriber & Web Server)
이 계층은 시스템의 두뇌에 해당하며, Python 기반의 Flask 프레임워크로 구현된다. 데이터를 구독 및 파싱하여 백그라운드 스레드에서 MQTT 브로커의 ais/raw 토픽을 구독하고, 수신된 메시지를 pyais 라이브러리를 사용하여 디코딩한다. 이 과정에서 6비트 인코딩된 페이로드가 위도, 경도, 선명, 속력 등의 의미 있는 정보로 변환된다.
Fig. 4는 AIS raw data를 수신하여 디코딩 과정을 순서대로 정리한 것이다.
디코딩된 데이터는 JSON(JavaScript Object Notation)포맷 형식으로 변환되어, Flask-SocketIO를 통해 웹 클라이언트들에게 실시간으로 전파(Broadcasting)된다. 데이터 처리와 웹 요청 처리를 비동기적으로 수행하여, 대량의 데이터 유입 시에도 웹 서버의 응답성이 저하되지 않도록 설계하였다.
Fig. 5는 python에서 pyais 라이브러리를 사용하여 AIS raw data 신호를 디코딩 하는 핵심 코드이며, AIS raw data 신호를 입력하여 출력되는 값을 예시로 나타낸 것이다.
4.5 클라이언트 (User Interface)
사용자 인터페이스는 웹 브라우저를 통해 접근 가능한 싱글 페이지 애플리케이션(SPA)으로 구현된다. 시각화는 오픈소스 지도 라이브러리인 Leaflet.js와 OpenStreetMap을 활용하여 전자해도(ENC) 비용 없이 지도 기반의 선박 모니터링 화면을 제공한다. 그리고 WebSocket을 통해 서버로부터 수신한 선박 위치 정보를 이용하여 지도상의 마커를 실시간으로 이동시키거나 갱신하면서 동적 업데이트를 한다. 이를 통해 사용자는 별도의 새로고침 없이 선박의 이동을 관찰할 수 있다. 그리고 0단계에서 18단계 까지 마우스 휠로 줌 레벨을 조절하여 다양한 축척의 지도를 사용하여 선박을 모니터링할 수도 있다.
Fig. 6은 OpenStreetMap을 사용하여 선박과 선박이 움직인 항적을 표시한 것이다.
5. 시스템구현 및 환경
5.1 개발 환경 및 도구
본 시스템은 범용성을 확보하기 위해 일반적인 데스크톱 PC 환경에서 개발 및 테스트되었다. 운영체제는 Windows 11을 기반으로 하며, 핵심 소프트웨어 스택은 Python 3.12, Flask 2.2.2, Mosquitto 2.0.15로 구성되었다.
Table 1은 시스템에 사용된 하드웨어와 주요 소프트웨어에 대한 구성이다.
5.2 주요 기능 구현 상세
시스템의 실행은 Flask 웹 서버를 구동함과 동시에 백그라운드 스레드를 생성하여 AIS 데이터 처리를 수행한다. 수신된 AIS raw data는 pyais 라이브러리의 decode 함수를 통해 파싱된다. 파싱된 데이터는 즉시 딕셔너리 객체로 변환되고, DB 저장 로직과 실시간 전송 로직으로 분기되어 동시에 처리된다. AIS raw data 파일 저장, DB 파일 저장, AIS 모니터링은 서로 종속되지 않고 독립적으로 실행 가능하도록 구현하였다.
6. 실험 및 성능 평가
6.1 실험 환경 및 시나리오
제안하는 시스템은 일반적인 사양의 PC에서 안정적으로 동작하는지 검증하기 위해 부하 테스트를 수행하였다. 테스트 장비로는 저전력 프로세서인 Intel N100 CPU와 8GB RAM을 탑재한 미니 PC를 사용하였다. 시중에서 10만원대에서 구매가 가능한 사양의 제품이다. 이는 본 시스템이 지향하는 비용 효율성의 기준을 충족하는 사양이다. 실험은 부산항에 정박 중인 실습선 한반도의 AIS 장비로 데이터를 수신하였으며, 동시에 약 500척의 선박 신호가 수신되는 환경에서 수행하였다. 이때 연결 방식은 시리얼(COM) 포트로 연결하여 데이터를 처리하고, 동시에 MQTT 방식으로 클라이언트 PC에 AIS를 송신하였다. 즉, 로컬 PC에서 데이터를 처리하고 동시에 다른 PC 에서 다수의 웹 클라이언트로 접속하여 맵을 조작하고 데이터를 수신하는 상황으로 실험하였다.
6.2 실험 결과
성능 측정의 주요 지표로는 CPU 점유율과 메모리 사용량을 모니터링하였다.
1) CPU 점유율: 1개의 클라이언트가 접속한 기본 상태에서 시스템의 CPU 점유율은 평균 3~5% 내외로 매우 낮게 유지되었다. 클라이언트 수를 5개로 증가시켰을 때에도 CPU 점유율은 10%를 초과하지 않고 안정적인 상태를 유지하였다. 이는 MQTT를 통한 데이터 분배 구조가 서버의 리소스를 효율적으로 관리하고 있음을 증명한다.
2) 데이터 처리 지연: 데이터 수신부터 웹 브라우저의 지도에 표시되기까지의 지연 시간(Latency)은 로컬 네트워크 환경에서 평균 100ms 이내로 측정되었다. 이는 실시간 관제 목적에 부합하는 성능이다.
3) 장기 안정성: 9일간의 연속 가동 실험을 통해 총 9개의 일별 로그 파일과 수백 개의 시간별 DB 파일이 생성되는 동안 시스템의 중단이나 메모리 누수(Memory Leak) 현상은 관찰되지 않았다.
Fig. 7은 9일간 AIS DB로 저장된 파일이다.
Fig. 2의 원본 파일과 DB파일의 용량을 비교해보면 디코딩되는 과정에서 파일 용량이 대략 50배 정도 증가한다. 이러한 한계 때문에 AIS와 관련된 업무를 하는 연구기관이나 대부분의 VTS는 이러한 DB 파일의 저장 용량 때문에 30일 정도 DB파일을 보유하고 덮어쓰기로 지워지고 있다.
Table 2는 실험 기간 동안 수집된 데이터의 통계를 보여준다. 일평균 약 800여 척의 선박 데이터가 처리되었으며, 최대 99마일 거리의 선박 신호까지 수신되었다. 또한, 정적 정보가 누락되고 동적 정보(MMSI, 위치정보 등)만 수신되는 선박의 비율이 약 15~26%로 확인되었다.
정적정보가 수신되지 않는 경우 일반적인 선박의 모습으로 표시되지만, 정적정보가 수신되지 않을 경우 선박의 길이에 대한 정보가 없으므로 점의 형태로 표시된다.
Fig. 8을 통하여 부산항 내에 있는 선박 중 정적 정보가 없어서 선박의 크기대로 표현되지 못한 일부 선박의 상태를 확인할 수 있다.
AIS에서 수신된 정보로 선종을 필터링 하여, 모니터링 화면에서 구분하여 표시하도록 구현하였으며 데이터 활용도 가능하도록 구현하였다.
Fig. 9는 선종 필터를 사용하여 선박을 분류한 것이다. 다만, 시스템을 더 효과적으로 사용하기 위해서는 부족한 정적정보를 별도로 수집하여 시스템의 신뢰도를 높여야 할 필요성이 확인되었다.
추가적으로
Fig. 10은 실험 기간 중 저장된 데이터를 선박의 GPS 위치를 기반으로 분석한 것을 핫스팟으로 표시한 것이다. 구현한 시스템으로 선박의 밀집도를 색깔로 구분하여 날짜별로 선박 통항량을 비교 분석할 수 있었다. 선박이 주로 사용하는 항로에 대한 패턴도 확인할 수 있었다.
7. 결 론
본 연구에서는 일반적인 데스크톱 PC와 오픈소스 소프트웨어만 사용하여 효과적으로 실시간 AIS 모니터링 시스템을 구축할 수 있음을 확인하였습니다. 특히 경량 메시징 프로토콜인 MQTT를 사용하여, 일반적인 저사양 PC만으로도 데이터 수집과 분배를 효과적으로 처리하여 시스템 부하를 최소화하고 다수의 클라이언트가 동시에 접속하여도 안정적으로 시스템 운용이 가능한 것을 확인하였습니다.
본 연구의 사회적 기여는 다음과 같습니다. 첫째, 과거에 기술적·비용적인 면에서 진입 장벽이 높았던 실시간 AIS 모니터링 시스템을 오픈소스를 사용하여 합리적인 수준과 방법으로 시스템 구축이 가능한 것을 확인하였습니다. 이를 통하여 AIS 모니터링 시스템 구축 비용에 부담을 느끼는 개인 연구자, 소규모 연구 기관, 교육 현장, 그리고 개발도상국의 해양 관련 기관들이 자체적으로 시스템을 구축하고 활용할 수 있는 현실적인 가이드라인이 될 것입니다. 둘째, AIS 데이터 접근성을 쉽게하여 해상교통 관련 연구의 다양성을 넓히고, 프로그램 개발의 다양성을 확보하는 기회를 제공하였습니다.
다만, 본 연구 과정에서 확인된 향후 연구 과제는 다음과 같습니다. 실험 결과, 일부 선박에서 전송하는 AIS 메시지 중 정적정보가 누락되어 데이터를 분석하는 데 한계가 있음을 확인하였습니다. 따라서 향후 연구에서는 부족한 AIS 정적 정보를 별도로 수집·보완하여 AIS 시스템의 정보의 신뢰성를 높이는 방안이 필요합니다. 또한, AIS 시스템을 통해 수집된 AIS 정보를 효율적으로 처리하고, 이를 선박의 해상 교통 패턴 분석이나 충돌 위험 확인 등 해양사고 예방에 적용할 수 있는 후속 연구가 지속적으로 이루어질 필요가 있습니다.