손호영
일본 철도 실시간 API(Go 160k LOC)와 6,375명이 쓰는 서울 지하철 추적 서비스를 만들고, 그 서비스들을 직접 구축한 Railway 스타일 셀프호스티드 PaaS(노라네코·맛챠) 위에서 배포·관제·운영하는 엔지니어입니다. 백엔드 설계부터 CI/CD 파이프라인, 관측성, 공급망 보안까지 전체 수직 스택을 코드로 다룹니다.
Production-ReadyEngineering
직접 만든 배포 플랫폼 위에서 실제 사용자를 받으며 운영 중인 시스템들입니다
Noraneko Platform
Railway 스타일 셀프호스티드 PaaS를 밑바닥부터 구축했습니다. 2대의 OCI VM(노라네코·맛챠) 위에서 push-to-deploy CI/CD, digest 고정 배포, 관측성(메트릭·로그·경보·상태 페이지), 한글 Telegram ChatOps, 암호화 백업까지 — 운영 중인 모든 서비스가 이 플랫폼 위에서 돌아갑니다.
핵심 기여사항
서비스 매니페스트 1개에서 Prometheus 타깃·경보 규칙·Gatus 설정·워치독 env·Ansible 변수 등 6종 산출물을 결정적으로 생성하는 Go CLI `platformctl`(validate/render/deploy/doctor)을 구현했습니다. 테스트 커버리지 83%.
Jenkins 컨트롤러 전체(보안 정책·에이전트·크리덴셜·잡·공유 라이브러리 버전)를 JCasC + Job DSL로 코드화하고, 파이프라인 라이브러리를 불변 태그에 고정해 재현 가능한 CI를 만들었습니다.
GitHub 웹훅을 받는 Go 릴레이를 직접 작성해 HMAC 서명 상수시간 검증, 앵커드 정규식 레포 allowlist, delivery ID 중복 제거를 적용했습니다. 공개 인터넷에 노출되는 관리 UI는 0개입니다.
커밋은 이미지를 준비만 하고, 배포는 사람이 승격하는 2단계 모델을 설계했습니다. release.json에 아카이브한 digest를 승격 시 GHCR과 재대조하고 git ancestry를 검증한 뒤 sha256 digest로만 배포합니다.
Railway — 일본 철도 실시간 API
JR 6사·도쿄메트로·대형 사철 등 19개 운영사의 실시간 열차를 하나의 API로 통합한 Go 백엔드입니다. 운영사별 피드를 수집해 Redis 핫티어에 활성 열차를 유지하고, 시각표(다이아)·직통운행 메타데이터와 결합해 REST·gRPC·SSE로 제공합니다. 별도 Python 파이프라인이 285개 마이그레이션과 시각표 데이터를 소유합니다.
핵심 기여사항
외부 웹 프레임워크 없이 Go 표준 라이브러리 ServeMux로 REST 35개 라우트, gRPC 3서비스 8 RPC(서버 스트리밍 3종), 노선별 SSE 구독을 구현했습니다.
운영사별 어댑터 27종을 독립 goroutine + 독립 서킷 브레이커로 격리해, 한 피드의 장애·타임아웃·레이트리밋이 다른 운영사에 전파되지 않도록 설계했습니다.
2·3개 회사를 걸쳐 달리는 직통운행(直通運転)을 물리 주행 단위로 잇는 체인 엔진(~50개 파일)을 구현했습니다. 열차번호 문자열 일치만으로 잇지 않고 경계역 증거 기반으로 보수적으로 병합합니다.
planned(계획)/predicted(예측)/actual(실적) 3종 정차 시각을 분리하고 예측 근거 필드를 함께 노출해, 실적 없는 값을 계획값으로 위조하지 않는 fail-closed 원칙을 지켰습니다.
RailNetwork
6,375명의 활성 사용자와 12M+ 이벤트를 처리하는 서울 지하철 실시간 추적 서비스 TrainAccAPI 백엔드를 설계·구축했습니다. (2025.11 – 2026.02 기준)
핵심 기여사항
코레일 지하철톡·또타 앱을 Proxyman으로 트레이싱해 숨겨진 SMSS/열린데이터 API 서명을 복원하고, 노선별 폴링 전략을 재설계했습니다.
SMSS 실패 시 서울시 열린데이터 광장 API로 폴백하는 이중 API 폴백 시스템을 구축하고, 노선별 특수 파라미터를 객체로 분리해 유지보수를 단순화했습니다.
행선지 교정·편성 추적 로직을 보강해 식별자 정규화, 임시 열차 스케줄 주입, 종료 열차 로그 저장까지 자동화했습니다.
2호선 순환선 특성 때문에 지연 시 열번이 바뀌는 문제를 열린데이터 응답과 병합·중복 제거하고 trainNo 앞자리를 보정해 해결했습니다.
Girls Band Tabi
Kotlin + Spring Boot 3 + Spring Modulith 기반 이벤트 드리븐 모듈 아키텍처로 밴드 성지순례·라이브 이벤트·커뮤니티를 통합 관리하는 위치 기반 서비스 플랫폼을 설계·구축했습니다. (서버 운영 중, 앱 내부 테스트)
핵심 기여사항
Spring Modulith 이벤트 기반 모듈 아키텍처를 적용해 identity·place·event·social·analytics 5개 도메인을 느슨한 결합으로 분리했습니다.
PostgreSQL + Hibernate Spatial + JTS를 활용한 지리공간 데이터베이스 설계로 Anti-tamper 위치 검증과 근접성 계산 시스템을 구현했습니다.
JWT + OAuth2(Google/Apple) 소셜 로그인 + 이메일 인증을 결합한 다중 인증 체계와 프로젝트 수준 RBAC, Redis 분산 속도 제한을 구축했습니다.
Resilience4j 서킷 브레이커와 Caffeine/Redis 이중 캐시 전략으로 장애 전파 차단 및 성능 최적화를 달성했습니다.
Research &Activities
학술 연구와 오픈소스 기여를 통한 지식 창출 및 공유 활동
• ISIPS 2023 논문 기여
ISIPS 2023 논문 기여
Portable ECG Monitor on Edge Device using TensorFlow Lite
MIT-BIH 부정맥 데이터 전처리, CNN 모델 설계, TensorFlow Lite 8-bit 양자화로 2.4MB→503KB 경량화 및 Arduino Nano 33 BLE 엣지 디바이스 배포
Awards &Achievements
기술 역량과 문제해결 능력을 인정받은 주요 성과들
탄소중립 Innovation Academy 팀 프로젝트
인하대학교
공유 택시 플랫폼을 설계하고 매칭 시스템을 담당해 최우수상을 수상했습니다.
Kaggle Insurance Cross Selling
Kaggle
2,236개 팀 중 83위(상위 3.7%) 성과를 달성했습니다.
Dacon 2024 인하 AI 챌린지
Dacon
AI 경진대회에서 최종 11위를 기록했습니다.
Reply Code Challenge 2024
Reply Challenges
전 세계 1,844개 팀 중 24위(상위 1.3%)를 달성했습니다.
ICPC Seoul Regional 교내 예선
인하대학교
교내 선발전에서 3위를 기록했습니다.
빅데이터·AI 경진대회
AWS · KT AICE
데이터 기반 서비스 최적화 제안으로 TOP 6에 선정되었습니다.
2023 미래자동차 혁신융합대학 AWS DeepRacer 챔피언십
인하대학교
교내 리그에서 5위를 달성했습니다.
TechnologyExpertise
풀스택 개발부터 운영까지, 검증된 기술 스택으로 안정적인 서비스를 구축합니다
AcademicJourney
전문 지식 습득과 실무 역량 강화를 위한 체계적인 학습 과정
인하대학교 컴퓨터공학과에서 학사과정을 이수하며, 알고리즘과 시스템 프로그래밍 분야의 탄탄한 기초를 다지고 있습니다.
추가로 Google for Developers Machine Learning Bootcamp을 수료하여 최신 ML/AI 기술 스택을 습득했으며, 실제 프로덕션 환경에서의 머신러닝 모델 배포 경험을 쌓았습니다.
인하대학교
컴퓨터공학과 학사
주요 성과 및 활동
컴퓨터공학 전공 과정 이수 중
IGRUS / CTP 동아리 운영진으로 참여해 알고리즘 강의 커리큘럼을 체계화
40여 명의 학부생에게 C++과 Python 문제 해결 강의를 진행
Google for Developers
Machine Learning Bootcamp
주요 성과 및 활동
Google의 공식 ML 교육 프로그램 수료
Kaggle Binary Classification of Insurance Cross Selling 과제를 상위 3.7%로 통과
Gemma2 - 2B 모델을 파인튜닝 해 BOJ 알고리즘 문제를 추천해주는 프로젝트를 수행