문주영 프로필

문주영

Backend Engineer, Go Developer

서비스 안정성과 확장성을 높이는 Go 백엔드 엔지니어

About

소개

About

백엔드 엔지니어

Go 기반 백엔드 엔지니어로서 2022년 4월부터 현재까지 출입통제·보안 솔루션을 개발하고 있습니다. 인사 데이터 동기화, 단말·외부 시스템 연동, 영상 관리 시스템(VMS) 확장을 주로 담당했습니다.

배치 처리·캐시·비동기 큐를 활용해 데이터베이스 부하를 낮추고, 중복 처리 방지와 연동 구조 개선을 통해 서비스 안정성 및 유지보수성을 높이는 데 집중해 왔습니다.

이름: 문주영
경력: 2022.04 ~ 현재
Email: mjo5178@gmail.com
GitHub Blog

Career

학력 및 경력

학력

Java·Spring 기반 웹 개발 과정

그린컴퓨터 | 2021 - 2022

정보통신공학부

충북대학교 | 2014 - 2021

경력

유니온 바이오메트릭스 | 백엔드 엔지니어

2022.04.11 ~ 현재

출입통제·보안 솔루션 Alpeta의 온프레미스·클라우드 서버와 연계 서비스 개발

Skills

핵심 기술

백엔드 개발

Go, Gin, REST API, API 통합(BFF·어그리게이터), WebSocket, SSE

데이터·비동기 처리

PostgreSQL, MariaDB, MSSQL, Oracle, Redis/Valkey, 인메모리 캐시, 동시성 안전 큐, NATS

시스템 연동

TCP·바이너리 프로토콜, MQTT 기반 단말 상태 연동, VMS REST·SSE 연동, 중복 처리 방지·재시도

실시간 미디어

WebRTC, HLS, FFmpeg

개발 환경

Docker

Projects

주요 프로젝트

업무 프로젝트

Alpeta | 인사 동기화 성능 개선

역할: 백엔드 개발 | 동기화 로직 및 데이터베이스 병목 개선 설계·구현

  • 사용자별 단건 생성일 조회를 500건 단위 배치 조회로 전환해 데이터베이스 왕복 횟수를 축소
  • 기존 사용자 1,000명 동기화 시 생성일 조회를 1,000회에서 2회로 개선
  • 사용자·단말 동기화와 인증·HealthID 로그를 동시성 안전 큐로 분리하고 50~100ms 처리 간격을 적용해 API 처리와 데이터 저장 경로를 분리
  • 단말–도어 매핑에 인메모리 캐시를 적용해 반복 조회를 제거하고 기존 데이터의 중복 저장을 방지

성과: 생성일 조회 경로의 데이터베이스 왕복을 최대 약 1/500 수준으로 줄이고, 동기화 처리와 로그 저장을 분리해 안정성을 높였습니다.

Go, PostgreSQL, 배치 조회, 인메모리 캐시, 동시성 안전 큐
Alpeta Cloud | API 통합 및 단말 연동 안정화

역할: 백엔드 개발 | API 통합(BFF), 서비스 API 및 단말 TCP 연동 구현

  • 사용자·단말·데이터를 통합하는 API 어그리게이터를 구현해 대시보드와 조회 화면에 단일 API 제공
  • 출입 로그 재전송에 업무 식별 키와 시간 범위 기반의 중복 처리 방지를 적용해 동일 로그 묶음의 중복 저장과 후속 수집을 방지
  • 단말 상태를 MQTT로 수신하고 NATS를 통해 모니터링 등 마이크로서비스에 전달하는 이벤트 흐름 구성

성과: 재전송이 잦은 단말 환경에서도 로그 저장과 후속 처리가 한 번만 반영되도록 처리 규칙을 안정화했습니다.

Go, Gin, PostgreSQL, Redis/Valkey, NATS, MQTT, TCP, protobuf, REST
Alpeta | 외부 영상 관리 시스템(VMS) 연동 구조 개선

역할: 백엔드 개발 | 공통 연동 인터페이스와 벤더별 어댑터 설계·구현

  • 벤더별로 구현되던 VMS 연동을 SystemIntegration 계층으로 분리하고, 시스템별 세션·디바이스·매핑·이벤트 수신 기능을 공통 구조로 설계
  • 한화·Emstone·CyberLink 등 3개 VMS를 동일한 어댑터 구조로 연동

성과: 신규 벤더 추가 시 핵심 서비스 수정 없이 연동 모듈을 추가할 수 있도록 하여 변경 범위를 연동 계층으로 한정했습니다.

Go, REST, SSE
MediaServer | 실시간 영상 송출 및 녹화 재생 서비스

역할: 백엔드 개발 | 실시간 송출·녹화 파이프라인 설계·구현

  • 오픈소스 기반으로 RTSP 영상을 WebRTC로 변환하는 저지연 실시간 시청 경로를 구성
  • FFmpeg로 영상을 녹화하고 HLS로 녹화본 재생을 제공했으며, 다중 스트림 모니터링을 지원

성과: 저지연 실시간 시청(WebRTC)과 녹화본 재생(HLS) 경로를 분리해 시청과 보관 요구를 함께 충족했습니다.

Go, Gin, pion/WebRTC, FFmpeg, HLS, WebSocket
bioid_service | 다중 고객사 지원 얼굴 인증 서비스

역할: 백엔드 개발 | 얼굴 인증 SDK 연동 및 외부 연동 API 설계·구현

  • 얼굴 인증 SDK를 연동해 웹캠 기반 얼굴 등록·인증을 구현하고, 그룹웨어 등 외부 시스템용 REST API와 인증 결과 콜백 제공
  • ID/PW·얼굴 복합 인증, 2차 인증, 위·변조 방지, 이미지 1:1 비교와 외부 데이터베이스 연동을 지원하는 공통 서비스 구성

성과: 그룹웨어에 종속되지 않는 독립 인증 서비스로 분리해 여러 시스템이 동일 API로 연동할 수 있도록 구현했습니다.

Go, Gin, GORM, JWT/API Key, 얼굴 인증 SDK

개인 프로젝트

WebRTC-Test | 화상 통화 및 실시간 채팅

Pion SFU와 WebSocket 시그널링을 기반으로 DataChannel 채팅, 선택적 피어 수신, 화면 공유 기능 구현
Go, Pion WebRTC, WebSocket, DataChannel GitHub

사내 문서 RAG | 문서 기반 질의응답

API 명세·프로토콜·매뉴얼을 대상으로 하이브리드 검색(벡터 검색·BM25·재정렬) 기반 질의응답을 구성하고, 기준 데이터와 회귀 테스트로 검색 품질 검증
Python, Ollama, Chroma, BM25, Rerank

협업 경험

신규 단말 프로토콜을 동료와 역할을 나누어 설계·구현하고, 코드 리뷰를 통해 응답 지연과 전송 데이터 크기를 개선했습니다.

SECON(킨텍스) 전시 일정에 맞춰 데모 기능을 개발·연동하고, 현장 시연과 고객 검증을 지원했습니다.

Portfolio

링크

© MunProoo. Backend Engineer Portfolio.