목록으로
업무 생산성 개선을 위한 AI 활용
위험에 빠진 선장을 구하라, 나홀로어선 사고 분석 및 경보 AI모델
공공개방데이터의 접목과 하이브리드 딥러닝, 로컬 llm의 프롬프트 엔지니어링을 통한 나홀로 조업선의 위험(사고) 상태를 감지하여 경보하는 AI모델
🤖 활용 AI 도구
claude, codex
① 어떤 상황에서 AI를 활용했나요?
저는 AI 전공자도, 개발을 직업으로 하는 사람도 아닌 현장 해양경찰관입니다. 최근 5년간 나 홀로 조업 중 발생한 사고로 45명이 사망하거나 실종됐습니다. 1인 조업선은 사고가 발생해도 곁에서 신고해 줄 사람이 없어 사고 인지가 늦어진다는 점이 늘 마음에 걸렸습니다.
“사람이 신고할 수 없다면, 배의 움직임인 항적을 분석해 위험을 먼저 알아낼 수 없을까?”
이 질문에서 프로젝트를 시작했습니다. 그러나 아이디어를 실제 시스템으로 구현할 개발 역량이 부족했습니다. 해결하고 싶은 현장 문제와 아이디어는 있지만 이를 만들 기술이 없는 상황에서, 생성형 AI를 개발 파트너로 활용했습니다.
② 어떤 AI를 어떻게 활용했나요?
먼저 딥러닝의 기본 개념을 직접 공부했습니다. 그 과정에서 항적 데이터를 분석하면 1인 조업선의 이상 징후를 탐지할 수 있겠다는 방향을 세웠습니다. 이후 문제 정의와 접근 방법을 생성형 AI와 논의하고, 실제 구현에는 Claude를 주로 활용했습니다.
Claude의 도움을 받아 항적 데이터를 학습에 적합한 형태로 정제하는 전처리 과정부터 LSTM 오토인코더 기반 이상 탐지 모델과 Conv1D-BiLSTM 기반 조업 행동 분류 모델의 구현·학습까지 진행했습니다. 또한 실시간으로 선박의 위험도를 보여주는 관제 대시보드도 제작했습니다.
해양경찰 데이터가 외부로 유출되지 않도록 인터넷 연결 없이 내부에서 작동하는 로컬 LLM도 적용했습니다. 로컬 LLM은 선박의 속도와 침로 변화를 분석해 관제자가 이해하기 쉬운 문장으로 항적 상황을 설명하도록 구성했습니다.
이 과정은 한 번의 지시로 완성된 것이 아닙니다. 결과를 확인하고, 문제의 원인을 찾고, 수정 사항을 다시 요청하는 과정을 반복했습니다. 프로젝트의 방향과 판단은 제가 담당하고, 구현 과정에서 막히는 부분은 생성형 AI와의 대화를 통해 해결하는 협업 방식이었습니다.
③ 활용 결과 어떤 변화가 있었나요?
현재 이 프로젝트는 가능성을 확인하기 위한 프로토타입 단계입니다. 사람의 생명과 직결되는 시스템인 만큼 실제 현장에 적용하려면 정확도를 더욱 높이고, 다양한 해역과 선박·조업 상황을 대상으로 충분한 검증을 거쳐야 합니다.
다만 공개된 항적 데이터를 기반으로 한 시뮬레이션에서는 사고 조기 탐지의 가능성을 확인했습니다. 해양안전심판원 재결서에 공개된 실제 사고 항적을 재구성해 적용한 결과 사고발생 5분내 사고 발생을 감지하였습니다.
이러한 결과가 시스템을 곧바로 현장에 적용할 수 있다는 뜻은 아닙니다. 그러나 선박의 항적만으로도 사고 징후를 조기에 포착할 수 있다는 아이디어가 실제 데이터에서 작동할 가능성을 확인했다는 점에 의미가 있습니다. 신고를 기다리는 방식에서 한 걸음 더 나아가, 시스템이 먼저 위험을 발견하는 능동형 해양 안전관리의 가능성을 보여준 것입니다.
④ 나만의 방식 또는 개선 포인트는 무엇인가요?
저만의 방식은 프로젝트 전체를 AI에 맡기지 않고, 연구하듯 가설을 세우고 실험으로 검증한 것입니다.
딥러닝의 기본 원리를 직접 공부한 뒤, 정상 항적과 다른 움직임을 탐지하기 위해 LSTM 오토인코더를 선택했습니다. 조업 중인 선박의 행동을 분류하기 위해서는 Conv1D-BiLSTM을 적용했습니다. 코딩에는 Claude의 도움을 받았지만, 어떤 모델을 왜 사용할지와 실험 결과를 어떻게 해석할지는 생성형 AI와 논의하며 제가 주도적으로 판단했습니다.
모델의 성능 역시 감이 아니라 실험을 통해 개선했습니다. AI-Hub의 ‘어선 조업 패턴 항적 데이터’를 활용해 모델을 학습하고, 문제가 발생할 때마다 원인에 대한 가설을 세운 뒤 실험으로 검증했습니다.
예를 들어 학습 데이터는 제주 지역 연근해 어선의 항적이었기 때문에, 모델이 특정 해역의 위치 정보에만 익숙해질 수 있다고 판단했습니다. 이에 절대좌표 대신 위치·속도·침로의 변화량을 사용하면 다른 해역에서도 적용할 수 있을 것이라는 가설을 세웠습니다. 이후 학습과 위험도 추론을 반복한 결과, 제주 밖의 데이터에서도 탐지 성능이 유지될 가능성을 확인했습니다.
로컬 LLM의 항적 분석 성능을 높이는 과정도 같은 방식으로 진행했습니다. 멀티모달 로컬 모델에 항적을 이미지로 그려 입력하거나 벡터 형태로 변환해 입력하는 등 다양한 방식을 실험했습니다. 그 결과 속도와 침로의 변화를 서술문으로 변환해 입력했을 때 LLM이 항적 상황을 가장 안정적으로 해석한다는 사실을 확인했고, 최종적으로 이 방식을 채택했습니다.
또한 AI가 작성한 코드에서 위험 점수를 실제보다 부풀리는 부분을 발견해 제거하는 등, AI가 만든 결과도 반드시 사람이 검증한다는 원칙을 지켰습니다. 현장 경험과 직접 학습한 이론, 생성형 AI의 구현력을 결합한 것이 저만의 방식입니다.
⑤ 다른 사람도 따라 할 수 있나요?
충분히 가능합니다. 오히려 저처럼 코딩이 능숙하지 않은 현장 직원에게 생성형 AI가 더 큰 도움이 될 수 있습니다.
이 프로젝트를 시작하는 데 특별한 장비나 많은 예산이 필요하지는 않았습니다. 필요했던 것은 현장에서 발견한 구체적인 문제의식, AI에게 무엇을 요청하고 결과를 어떻게 판단할지 결정할 수 있는 기본적인 공부, 그리고 생성형 AI와의 지속적인 대화였습니다.
처음부터 완벽한 결과를 얻지 못하더라도 결과를 직접 확인하고, 문제점을 찾아 수정 요청을 반복하면 비전공자도 실제로 작동하는 프로토타입을 만들 수 있습니다. 또한 AI-Hub처럼 누구나 접근할 수 있는 공개 데이터를 활용했기 때문에 비슷한 방식으로 다른 분야의 문제에도 접근할 수 있습니다.
현장의 사람이 문제를 정의하고, 구현은 AI와의 대화로 풀어가며, 결과는 다시 사람이 검증하는 것. 이 절차 자체가 누구나 재현할 수 있는 AI 활용 방법이라고 생각합니다. 이러한 방식은 관제 업무뿐 아니라 문서 작성, 데이터 분석, 업무 자동화 등 다양한 분야에도 적용할 수 있습니다.
저는 AI 전공자도, 개발을 직업으로 하는 사람도 아닌 현장 해양경찰관입니다. 최근 5년간 나 홀로 조업 중 발생한 사고로 45명이 사망하거나 실종됐습니다. 1인 조업선은 사고가 발생해도 곁에서 신고해 줄 사람이 없어 사고 인지가 늦어진다는 점이 늘 마음에 걸렸습니다.
“사람이 신고할 수 없다면, 배의 움직임인 항적을 분석해 위험을 먼저 알아낼 수 없을까?”
이 질문에서 프로젝트를 시작했습니다. 그러나 아이디어를 실제 시스템으로 구현할 개발 역량이 부족했습니다. 해결하고 싶은 현장 문제와 아이디어는 있지만 이를 만들 기술이 없는 상황에서, 생성형 AI를 개발 파트너로 활용했습니다.
② 어떤 AI를 어떻게 활용했나요?
먼저 딥러닝의 기본 개념을 직접 공부했습니다. 그 과정에서 항적 데이터를 분석하면 1인 조업선의 이상 징후를 탐지할 수 있겠다는 방향을 세웠습니다. 이후 문제 정의와 접근 방법을 생성형 AI와 논의하고, 실제 구현에는 Claude를 주로 활용했습니다.
Claude의 도움을 받아 항적 데이터를 학습에 적합한 형태로 정제하는 전처리 과정부터 LSTM 오토인코더 기반 이상 탐지 모델과 Conv1D-BiLSTM 기반 조업 행동 분류 모델의 구현·학습까지 진행했습니다. 또한 실시간으로 선박의 위험도를 보여주는 관제 대시보드도 제작했습니다.
해양경찰 데이터가 외부로 유출되지 않도록 인터넷 연결 없이 내부에서 작동하는 로컬 LLM도 적용했습니다. 로컬 LLM은 선박의 속도와 침로 변화를 분석해 관제자가 이해하기 쉬운 문장으로 항적 상황을 설명하도록 구성했습니다.
이 과정은 한 번의 지시로 완성된 것이 아닙니다. 결과를 확인하고, 문제의 원인을 찾고, 수정 사항을 다시 요청하는 과정을 반복했습니다. 프로젝트의 방향과 판단은 제가 담당하고, 구현 과정에서 막히는 부분은 생성형 AI와의 대화를 통해 해결하는 협업 방식이었습니다.
③ 활용 결과 어떤 변화가 있었나요?
현재 이 프로젝트는 가능성을 확인하기 위한 프로토타입 단계입니다. 사람의 생명과 직결되는 시스템인 만큼 실제 현장에 적용하려면 정확도를 더욱 높이고, 다양한 해역과 선박·조업 상황을 대상으로 충분한 검증을 거쳐야 합니다.
다만 공개된 항적 데이터를 기반으로 한 시뮬레이션에서는 사고 조기 탐지의 가능성을 확인했습니다. 해양안전심판원 재결서에 공개된 실제 사고 항적을 재구성해 적용한 결과 사고발생 5분내 사고 발생을 감지하였습니다.
이러한 결과가 시스템을 곧바로 현장에 적용할 수 있다는 뜻은 아닙니다. 그러나 선박의 항적만으로도 사고 징후를 조기에 포착할 수 있다는 아이디어가 실제 데이터에서 작동할 가능성을 확인했다는 점에 의미가 있습니다. 신고를 기다리는 방식에서 한 걸음 더 나아가, 시스템이 먼저 위험을 발견하는 능동형 해양 안전관리의 가능성을 보여준 것입니다.
④ 나만의 방식 또는 개선 포인트는 무엇인가요?
저만의 방식은 프로젝트 전체를 AI에 맡기지 않고, 연구하듯 가설을 세우고 실험으로 검증한 것입니다.
딥러닝의 기본 원리를 직접 공부한 뒤, 정상 항적과 다른 움직임을 탐지하기 위해 LSTM 오토인코더를 선택했습니다. 조업 중인 선박의 행동을 분류하기 위해서는 Conv1D-BiLSTM을 적용했습니다. 코딩에는 Claude의 도움을 받았지만, 어떤 모델을 왜 사용할지와 실험 결과를 어떻게 해석할지는 생성형 AI와 논의하며 제가 주도적으로 판단했습니다.
모델의 성능 역시 감이 아니라 실험을 통해 개선했습니다. AI-Hub의 ‘어선 조업 패턴 항적 데이터’를 활용해 모델을 학습하고, 문제가 발생할 때마다 원인에 대한 가설을 세운 뒤 실험으로 검증했습니다.
예를 들어 학습 데이터는 제주 지역 연근해 어선의 항적이었기 때문에, 모델이 특정 해역의 위치 정보에만 익숙해질 수 있다고 판단했습니다. 이에 절대좌표 대신 위치·속도·침로의 변화량을 사용하면 다른 해역에서도 적용할 수 있을 것이라는 가설을 세웠습니다. 이후 학습과 위험도 추론을 반복한 결과, 제주 밖의 데이터에서도 탐지 성능이 유지될 가능성을 확인했습니다.
로컬 LLM의 항적 분석 성능을 높이는 과정도 같은 방식으로 진행했습니다. 멀티모달 로컬 모델에 항적을 이미지로 그려 입력하거나 벡터 형태로 변환해 입력하는 등 다양한 방식을 실험했습니다. 그 결과 속도와 침로의 변화를 서술문으로 변환해 입력했을 때 LLM이 항적 상황을 가장 안정적으로 해석한다는 사실을 확인했고, 최종적으로 이 방식을 채택했습니다.
또한 AI가 작성한 코드에서 위험 점수를 실제보다 부풀리는 부분을 발견해 제거하는 등, AI가 만든 결과도 반드시 사람이 검증한다는 원칙을 지켰습니다. 현장 경험과 직접 학습한 이론, 생성형 AI의 구현력을 결합한 것이 저만의 방식입니다.
⑤ 다른 사람도 따라 할 수 있나요?
충분히 가능합니다. 오히려 저처럼 코딩이 능숙하지 않은 현장 직원에게 생성형 AI가 더 큰 도움이 될 수 있습니다.
이 프로젝트를 시작하는 데 특별한 장비나 많은 예산이 필요하지는 않았습니다. 필요했던 것은 현장에서 발견한 구체적인 문제의식, AI에게 무엇을 요청하고 결과를 어떻게 판단할지 결정할 수 있는 기본적인 공부, 그리고 생성형 AI와의 지속적인 대화였습니다.
처음부터 완벽한 결과를 얻지 못하더라도 결과를 직접 확인하고, 문제점을 찾아 수정 요청을 반복하면 비전공자도 실제로 작동하는 프로토타입을 만들 수 있습니다. 또한 AI-Hub처럼 누구나 접근할 수 있는 공개 데이터를 활용했기 때문에 비슷한 방식으로 다른 분야의 문제에도 접근할 수 있습니다.
현장의 사람이 문제를 정의하고, 구현은 AI와의 대화로 풀어가며, 결과는 다시 사람이 검증하는 것. 이 절차 자체가 누구나 재현할 수 있는 AI 활용 방법이라고 생각합니다. 이러한 방식은 관제 업무뿐 아니라 문서 작성, 데이터 분석, 업무 자동화 등 다양한 분야에도 적용할 수 있습니다.