강의에서 코드체계를 설명하면서 이렇게 말했다.
데이터를 다루는 사람에게 코드체계는 데이터베이스의 키와 같은 것이다. 데이터베이스에서 가장 중요한 건 식별 가능성이다.
#2 에서 단계마다 식별자가 발급되는 걸 봤는데, 이번엔 그 코드들이 각각 어떤 물건인지다.
Table of contents
Open Table of contents
선박 식별 코드
- 선명
- IMO 번호 — 배가 건조되면 국제해사기구가 부여한다. 주민등록번호 같은 것이고 해체될 때까지 바뀌지 않는다. 전 세계에 하나뿐이라 이것만 있으면 배를 추적할 수 있다
- 콜사인 — 관제탑에서 배가 들어올 때 부르는 호출부호. PORT-MIS 에서 콜사인으로도 조회할 수 있다. 선박에도 국적이 있고 국적에 따라 콜사인이 다르다
- MMSI(Maritime Mobile Service Identity) — 9자리 숫자
분석 업무를 할 때는 IMO 번호를 쓰는 게 가장 좋다.
바뀌지 않는 키를 고르라는 얘기다. 선명은 바뀔 수 있고 콜사인은 국적에 딸려 있다.
선박 제원 코드
배가 얼마나 큰지, 무엇을 갖고 있는지.
- 총톤수
- 재화중량톤수(DWT) — 이게 진짜 배 무게다
- 컨테이너선 크기 단위 — TEU, FEU
- 흘수 — 컨테이너가 많이 실린 무거운 배가 물을 더 많이 밀어낸다. 선석을 배정할 때 중요하다
흘수로 항만시설 사용료, 도선료, 선박 검사 비용이 정해진다. 물리적 수치 하나가 곧바로 요금표와 연결된다.
화물 · 운송 코드
FCL / LCL
- FCL(Full Container Load) — 컨테이너 통째로. 마스터 B/L
- LCL(Less than Container Load) — 컨테이너를 같이 쓰는 것. 하우스 B/L
#2 에서 본 혼적이 LCL 이고, 그래서 B/L 이 쪼개진다는 게 여기서 연결됐다.
B/L — 선하증권(Bill of Lading). 수출·수입 업무에서 권리증(유가증권) 으로 쓰인다.
화물관리번호 — MRN · MSN · HSN
| 코드 | 의미 | 구조 · 발급 |
|---|---|---|
| MRN (Manifest Reference Number) | 적하목록 참조번호 | 제출년도 2자리 + 운항선사 영문코드 4자리 + 선사 고유번호 4자리 + 체크디짓 1자리 |
| MSN (Master B/L Sequence Number) | 마스터 B/L 일련번호 | 선사·항공사가 적하목록 작성 시 기재해 세관에 제출. 4자리 |
| HSN (House B/L Sequence Number) | 하우스 B/L 일련번호 | 포워더가 혼재화물적하목록 작성 시 기재. 3자리 |
FCL 이냐 LCL 이냐에 따라 코드 체계가 달라진다. 같은 화물이라도 어떻게 실렸느냐가 식별 구조를 바꾼다는 뜻이다.
항구 식별 코드 — 화물이 어디서 어디까지 가는지 나타낸다. 항공의 IATA 코드처럼 항구에도 식별 코드가 있다.
터미널 장비 식별 코드
#1 에서 “STS 크레인을 QC 라고 부른다면 야드 크레인은 뭐라고 부르나” 를 못 적고 넘어갔는데, 여기서 나왔다.
- 안벽 크레인 — QC, 갠트리 크레인, C/C. 에이프런에서 일하는 크레인
- 야드 크레인 — RTGC, RMGC, ARMGC, ASC. 컨테이너를 장치하는 크레인
- 이송장비 — YT, AGV
대한민국의 항만물류 시스템
- PORT-MIS(항만운영정보시스템) — 해양수산부 및 항만공사가 운영
- UNI-PASS(전자통관시스템) — 수출입신고, 적하목록 제출, 화물관리번호 기반 화물추적
우리가 분석할 데이터를 여기서 구한다.
공공데이터는 기록일 뿐이다
여기서부터가 데이터 쪽 얘기였다. 강의에서 제시한 데이터 분석 절차는 이랬다.
질문 정의 → 데이터 위치 → 신뢰성 확인 → 단위 판단 → 분석 시작
질문이 먼저고 데이터가 나중이다. 그리고 이런 말이 붙었다.
공공데이터는 그냥 기록만 되어 있다. 그래서 가공을 해야 한다. 전처리를 해야 한다.
공공데이터는 공공기관이 행정 및 공공업무를 수행하며 만들거나 취득해 관리하는 자료다. 공공업무 → 전자적 기록 → 관리·축적 → 공개·활용 순으로 관리된다.
행정업무의 데이터화
입항 신고 → 시설 사용 → 입항·하역 → 출항 → 분석 데이터
이 순서를 보고 나니 앞의 말이 이해됐다. 업무 절차에서 사용한 데이터이기 때문에 분석에 바로 쓰기에는 부적합하다. 애초에 분석하려고 만든 게 아니라 일을 처리하려고 만든 기록이다.
사람이 읽는 자료 vs 기계가 읽는 데이터
- 사람이 읽는 자료 — 이미지, PDF 안의 데이터. 수작업 재입력이 필요하다
- 기계가 읽는 데이터 — CSV, JSON. 자동 선택·결합이 된다
공개 범위
- 개인정보, 안전, 보안 정보는 제공이 제한된다
- 영업상 비밀과 제3자의 권리도 보호 대상이다
정보공개와 공공데이터 제공은 다르다
| 정보공개 | 공공데이터 제공 | |
|---|---|---|
| 목적 | 문서·보고서 열람, 내용과 결과 확인 | 원천 통계 접근, 새로운 집계·결합 |
| 형식 | PDF 중심 | CSV, API 중심 |
제공 방식 — 파일이냐 API 냐
- 파일 데이터 — 현 시점까지 한꺼번에. CSV, XLSX. 구조 탐색에 편리
- Open API — 조건을 보내 응답받는다. JSON, XML. 반복 수집에 유리
선택 기준도 같이 들었다.
- 파일이 편리한 경우 — 전체 구조를 빠르게 탐색할 때, 과거 자료를 한꺼번에 볼 때, 한 번의 분석
- API 가 편리한 경우 — 최신 값을 반복 수집할 때, 조건을 바꿔가며 자동화할 때, 정기적인 갱신
포맷은 CSV(comma separated values), JSON("key":"value"), XML(계층 구조, 요즘은 JSON 에 밀려 많이 안 쓴다).
API 의 실시간성은 접속 가능 → 기준 시점 → 갱신주기 로 보고, 갱신주기에 맞춰 받아오면 된다.
공공데이터포털은 정부와 공공기관이 관리하는 데이터를 개방하는 통합 플랫폼이다.
회고 — 키를 고르는 감각
IMO 번호 얘기가 제일 남았다. 배가 해체될 때까지 안 바뀌니까 분석에는 이걸 쓰라는 것.
데이터 엔지니어링 공부에서 raw 데이터를 정제할 때 대소문자 하나로 카테고리가 갈라졌던 게 떠올랐다. 그때는 값을 통일하는 문제였는데, 여기서는 애초에 어떤 컬럼을 키로 삼을 것인가 의 문제다. 선명으로 조인하면 배 이름이 바뀌는 순간 깨지고, 콜사인으로 조인하면 국적이 바뀌는 순간 깨진다.
그리고 “공공데이터는 기록일 뿐” 이라는 말도 같은 얘기로 들렸다. 행정 절차가 남긴 기록이라 분석에 맞는 모양이 아니고, 그래서 staging 이 필요하다.
더 공부해볼 것
- 수출할 때 B/L 이 나오고 수입할 때도 따로 나오는 건가 — 같은 화물에 대해 B/L 이 몇 번 발행되는 것인지, 아니면 하나가 넘어가는 것인지
- 항구 식별 코드의 실제 규격 — IATA 코드에 대응한다고만 들었는데 어떤 체계를 쓰는지 (UN 쪽 코드가 있다고 본 것 같다)
- 야드 크레인 4종의 차이 — RTGC · RMGC · ARMGC · ASC 가 무엇이 다른지. 앞의 A 가 automated 인 것 같은데 확인 필요
- 데이터를 보고 프로세스가 그려질 수도 있는 건가 — 지금은 프로세스를 배우고 데이터를 보는 순서인데, 반대로 로그만 보고 업무 흐름을 복원할 수 있는지. 프로세스 마이닝이라는 분야가 이것에 해당하는지
- PORT-MIS 와 공공데이터포털에서 실제로 받을 수 있는 항목 — 어디까지 공개되어 있고 무엇이 제한되는지 직접 확인해볼 것
- MRN 체크디짓 계산 방식 — 마지막 1자리가 검증용이라면 어떤 알고리즘인지