kebi.dev
고동민 프로필 사진

Backend / Full-Stack Developer

안녕하세요,
5년차 개발자 고동민입니다.

고등학생 때 개발을 시작해 지금까지 꾸준히 실무 경험을 쌓아왔습니다.

Node.js와 PHP를 주로 사용하며, RTSP/RTMP 기반 동영상·스트리밍 서비스 개발을 담당해왔습니다. 최근에는 실시간 AI 통번역, 온프레미스 LLM 기반 서비스 등 AI 솔루션 개발로 영역을 넓혀가고 있습니다.

Skills

Language

Node.js / TypeScript
  • Express/Fastify, NestJS 기반 백엔드 API 설계·구현
  • 비동기 프로그래밍(Promise/async-await), 스트림/이벤트 루프 이해 및 성능 최적화
PHP
  • 최근 릴리즈된 PHP 8 버전으로 개발
  • Type declarations와 Composer를 활용한 프레임워크·서비스 개발
SQL / PostgreSQL
  • 기본 문법부터 함수, 트리거, 인덱스·뷰 최적화까지 이해 및 활용
  • 벌크 인서트로 성능 튜닝, pgvector 확장을 활용한 벡터 검색 구현

Framework / Library

NestJS
  • 구조와 원리, 모듈을 이해하고 REST API 서버 개발
  • 의존성 주입과 모듈 시스템을 이용한 웹 애플리케이션 개발
React.js
  • Electron 기반 데스크톱 앱의 화면·제어 UI 개발
  • 컴포넌트 단위 UI 구성 및 상태 관리
Electron
  • 실시간 음성 번역 데스크톱 앱을 단일 스택으로 전체 아키텍처 설계·개발
  • electron-forge 기반 빌드·패키징 및 자동 업데이트 배포 파이프라인 구축
Flutter
  • 실시간 통번역 모바일 앱을 전체 개발하여 iOS·Android 양대 스토어 출시
  • WebSocket 기반 실시간 오디오 스트리밍 및 로컬 DB(SQLite) 연동

AI

LangChain / RAG
  • 강의 자료를 파싱·청킹·임베딩하여 벡터 검색 기반 RAG 파이프라인 구축
  • 문서에 근거해 답변하는 AI 챗봇 및 LMS 학습 지원 기능 개발
로컬 LLM
  • Ollama 기반으로 외부 API 없이 폐쇄망에서 동작하는 온프레미스 LLM 환경 구성
  • pgvector와 연동한 검색 증강 생성(RAG) 구조 설계

실시간 / 미디어

WebSocket
  • 실시간 자막 중계, 서버 상태 모니터링, 원격 세션 릴레이 등 다수 프로젝트에 적용
  • 하트비트·워치독을 활용한 연결 상태 감지 및 안정성 처리
RTSP / RTMP / FFmpeg
  • FFmpeg으로 IP 카메라 녹화·일시정지·병합 제어 모듈 개발 (RTSP)
  • 실시간 동영상·스트리밍 서비스 개발 및 유지보수
Wowza Streaming Engine
  • 실시간 사내 방송 및 CDN 솔루션의 스트리밍 엔진 구성·제어
  • 서버 스트리밍 상태 조회 및 정상 유무 판단 로직 구현

그 외

Experience

(주)랩241

2021.09 ~ 재직 중
  • PHP, Node.js(TypeScript) / PostgreSQL 기반 API 및 런타임 서버 개발
  • 레거시 코드 개선 및 DB 최적화 (인덱스, 뷰)
  • RTSP·FFmpeg 기반 녹화기 프로그램 및 실시간 스트리밍 서비스 개발·유지보수
  • AI 실시간 통번역 솔루션 개발 (데스크톱·모바일) 및 RAG 기반 AI 서비스 개발
  • PHP
  • Node.js
  • TypeScript
  • Flutter
  • Express.js
  • NestJS
  • Laravel
  • React.js
  • Electron
  • LangChain
  • Ollama
  • PostgreSQL(pgvector)
  • MySQL
  • WebSocket
  • RTSP/RTMP
  • FFmpeg
  • Wowza
  • Naver Cloud Platform
  • Nginx
  • Apache

Projects

실시간 음성 번역 어플리케이션

2026.08 ~ 현재
코스모스 트랜스퍼 (모바일)

실시간 음성 인식·번역 기반 양방향 통역 모바일 앱, 코스모스 트랜스퍼 제품군의 모바일 라인업 (유비온 협업)

역할
전체 개발
기술
Flutter, 실시간 STT/번역 SDK, WebSocket, SQLite
성과iOS·Android 양대 플랫폼(App Store / Google Play)에 정식 출시

실시간 양방향 통역 기능 개발

  • 마이크 음성을 실시간 STT/번역 SDK에 스트리밍해 두 언어 자막을 동시 생성
  • 화면 상단을 180° 회전해 마주 앉은 상대가 자막을 바로 읽도록 구현

원격 2인 세션(Room) 및 딥링크 참가 구현

  • 방 코드/QR로 두 기기를 자체 WebSocket 릴레이로 묶어 통역 결과를 중계하는 원격 세션 개발
  • Universal/App Link·QR 스캐너·수동 코드 입력 세 경로를 하나의 참가 파이프라인으로 통합

세션 인증 및 연결 안정성 처리

  • refresh token 기반 자동 재발급을 API 진입점 한 곳에서 처리해 세션 끊김 없이 유지
  • 수신 트래픽을 하트비트로 활용하는 워치독으로 연결 끊김을 감지해 경고 표시

대화 기록 저장·재생 및 다국어/반응형 UI

  • 세션 텍스트·오디오를 로컬 SQLite에 저장하고 원어/번역 탭 전환·오디오 구간 재생 지원
  • 5개 언어(한/영/일/중/태) UI·다크모드와 화면 폭 기준 태블릿 반응형 레이아웃 적용

RAG 플랫폼

2026.06 ~ 현재
DScovery-RAG

온프레미스 로컬 LLM과 RAG를 결합해 강의 자료 기반 AI 챗봇 및 LMS 학습 지원 기능을 제공하는 솔루션 (삼성전자 DS부문 사내 학습 플랫폼 DScovery AI 고도화 프로젝트 / 유비온 협업)

역할
전체 개발
기술
Next.js, Node.js, LangChain, PostgreSQL(pgvector), Ollama
성과강의 자료 기반 AI 챗봇 및 LMS 학습 지원 기능 개발

강의 자료 기반 RAG 챗봇 개발

  • 로컬 LLM에 RAG를 결합하여, 강의 자료를 검색·참조해 해당 강의 내용에 근거해 답변하는 AI 챗봇 구현
  • 강의 맥락을 벗어난 임의 답변 대신 실제 자료에 기반한 신뢰할 수 있는 응답을 제공하도록 설계

LMS 학습 지원 AI 기능 개발

  • 강의 자료를 기반으로 학습을 돕는 AI 기능 개발 (퀴즈 자동 생성, 구간 해설, 이해도 체크, 추천 질문 등)

문서 임베딩 파이프라인 및 온프레미스 LLM 환경 구성

  • 강의 자료를 파싱·청킹 후 임베딩하여 pgvector에 저장, 질의 시 유사도 검색으로 관련 자료를 찾는 RAG 파이프라인 구축
  • 외부 API 없이 폐쇄망에서 동작하도록 Ollama 기반 로컬 LLM 환경 구성
관련 기사 ↗

실시간 음성 번역 프로그램

2025.10 ~ 현재
코스모스 트랜스퍼 (소프트웨어 설치형)

강의자의 음성을 실시간으로 텍스트 변환 후 다개국어로 번역하는 AI 번역 솔루션

역할
전체 개발
기술
Electron, React.js, Node.js, TypeScript
성과재학생 100%가 외국인인 대학에 도입, 4개 국어 실시간 번역 자막 제공

Electron 기반 전체 아키텍처 재설계 및 개발

  • 기존 Python/gRPC로 구성된 디스플레이 프로그램을 Electron 단일 스택으로 처음부터 재설계
  • 제어 프로그램과 화면 프로그램을 하나의 통합 구조로 개발 및 유지보수

자동 업데이트 및 배포 파이프라인 구축

  • 신규 버전마다 사용자가 직접 재설치해야 하던 문제를 해결하기 위해 electron-forge 기반 빌드·패키징·배포 파이프라인 구성
  • 앱 실행 시 최신 버전을 자동으로 감지·설치하는 자동 업데이트 구현
  • 사내 라이선스 서버를 통한 Squirrel 기반 RELEASES·nupkg 배포
관련 기사 ↗

실시간 음성 번역 프로그램

2025.04 ~ 2025.09
코스모스 트랜스퍼 (설치형)

강의자의 음성을 실시간으로 텍스트로 변환 후 다개국어로 번역하는 AI 번역 솔루션

역할
유지보수 및 개발
기술
Electron, React.js, Node.js, Python
성과강의 진행 안정성 및 사용자 편의성 70% 이상 향상

강의 중 입력 소스 변경

  • 언어 인식 AI의 입력 소스가 강의 시작 시 고정되어 여러 언어로 입력할 수 없던 문제
  • 강의 언어를 바꾸면 기존 gRPC 연결을 끊고 해당 언어로 재연결하는 로직 추가

.wav 파일을 .mp3로 변환

  • 세션을 일시정지할 때마다 .wav 음성 파일이 새로 생기던 문제
  • 일시정지 시 .wav 파일을 백업·병합하여 마지막에 강의 전체 mp3를 내려받을 수 있게 설계

번역 화면·제어 프로그램 개발 및 유지보수

  • 제어 프로그램: Node.js, Electron, React.js
  • 화면 프로그램: Python, gRPC

CDN 솔루션

2024.05 ~ 2024.12
LABY-CDN

삼성전자 DS 교육관리시스템(LMS)의 콘텐츠 캐시를 관제하고 약 60대의 서버를 로드밸런싱하기 위한 솔루션

역할
서비스 전체 구조 설계, 프론트엔드·백엔드 개발, 비디오 캐시 관리 및 IP 기반 URL 리디렉션 구현
기술
Wowza Streaming Engine, Apache, Nginx, PHP, Node.js, WebSocket
성과콘텐츠 캐시 관제 시스템 도입으로 동영상 재생 품질 80% 향상

사업장 서버 상태 실시간 통신

  • WSS로 각 동영상 서버와 상태 표시 서버를 연결해 상태를 실시간 표출
  • 스트리밍 상태(Wowza)를 조회하여 서버 정상 유무 판단

IP 기반 URL 리디렉션

  • 클라이언트 IP 기준 가장 가까운 사업장의 동영상 URL 반환
  • 사업장 정상 유무를 판단해 가장 가까운 정상 사업장으로 반환

프론트엔드 및 백엔드 개발

  • 프론트: HTML, CSS, Vanilla JS
  • 백엔드: PHP, Node.js
트러블슈팅
문제 · NAS 과다 호출 우려

새로 등록된 동영상을 처음 조회할 때 모든 사업장이 NAS에서 동영상을 가져가 트래픽이 몰리고 캐싱이 제대로 되지 않을 것으로 판단했다.

해결 · 지역별 Nginx 캐시 서버

사업장 지역마다 Nginx 캐시 서버를 증설하고 Reverse Proxy를 적용했다.

의료평가 디브리핑 솔루션

2023.04 ~ 2023.07
LABY-Debriefing

국군의무학교에서 사용하는 임상수행능력 향상을 위한 의료평가 및 관리 솔루션

역할
백엔드 개발, 인코더 제어 모듈 개발, 시스템 통합 테스트 및 배포
기술
Node.js, FFmpeg, RTSP, PostgreSQL, Apache, PHP, WebSocket
성과실시간 모니터링 및 자동화 시스템 도입으로 교육 관리 효율성 50% 증가

IP 카메라 제어

  • FFmpeg으로 IP 카메라의 녹화/일시정지/정지 기능 개발 (RTSP)
  • 일시정지 시 생긴 동영상 조각을 병합하여 서비스

백엔드 개발

  • RESTful 규칙을 따르는 서버 API 개발
트러블슈팅
문제 · 꺼지지 않는 녹화

네트워크 이상이나 신호 중복 수신 시 녹화 서버가 종료 신호를 놓칠 수 있었다.

해결 · 주기적 동기화와 최대 시간

녹화 서버와 디브리핑 서비스의 녹화 상태를 주기적으로 동기화하고, 녹화 최대 시간을 설정해 서버에 무리가 가지 않게 제한했다.

클라우드 기반 LMS 서비스

2022.09 ~ 2023.02
클라우드러닝

학원 인코더 자동 녹화 및 클라우드 기반 LMS 서비스

역할
백엔드 개발, 동영상 배포 시스템 구축
기술
Apache, PHP, Node.js, PostgreSQL, FTP
성과동영상 배포 시스템의 병렬 처리 구현으로 배포 속도 70% 향상

동영상 병렬 업로드

  • 직렬로 처리되던 녹화본 클라우드 업로드를 크기를 정한 Queue로 병렬 처리
  • 클라우드 업로드뿐 아니라 동영상 다운로드(FTP)도 병렬 처리

JWT 도입

  • 세션 기반 로그인을 JWT로 리팩터링해 서버 세션 부담 감소

백엔드 개발

  • RESTful 규칙을 따르는 서버 API 개발
  • 서버 속도 향상을 위해 HTTP/2 도입
트러블슈팅
문제 · 게시글 이미지 업로드

텍스트 에디터가 이미지를 본문에 바이너리로 넣어 조회 쿼리 응답이 느려졌다.

해결 · 파일 변환 및 주소 매핑

본문의 이미지 바이너리를 파일로 저장하고 그 자리에는 파일 경로를 넣었다.

문제 · 쌓이는 진도율

플레이어가 주기적으로 남기는 진도율 데이터가 너무 많아져 진도율 조회가 느려졌다.

해결 · 주기적 진도율 병합

3개월이 지난 동영상은 실시간 진도율을 처리하지 않고 스케줄러가 진도율만 따로 모아 저장하도록 바꿨다.

서비스 바로가기 ↗

실시간 사내 방송 솔루션

2022.03 ~ 2022.09
LABY-CAST

인코더를 통한 실시간 사내 방송 시스템 솔루션

역할
실시간 스트리밍 기능 구현, 솔루션 유지보수
기술
Wowza Streaming Engine, IIS, ASP, MSSQL, .NET
성과사내 방송 시스템 안정성 향상으로 시청률 40% 증가, 시스템 다운타임 15% 감소

방송 시작 신호 제어

  • 사업장별 Wowza 스트림 전송은 허용해 두고 최상위 메인 서버에 신호를 주어 방송 제어

테이블 백업

  • 외부 업체가 동기화하는 사용자·부서 테이블을 백업하고 관리
트러블슈팅
문제 · 많은 사용자 추가

방송 시 사용자 추가에서 만 건 정도의 I/O가 발생해 느렸다.

해결 · 벌크 인서트

MSSQL 최대 개수인 2,000개씩 끊어 벌크 인서트해 쿼리 속도를 높였다.

문제 · 중복된 사용자

외부 업체 데이터가 중복으로 들어오는 경우가 있었다.

해결 · Set을 활용한 중복 제거

프론트(JavaScript)에서 Set으로 1차 제거하고, 백엔드(C#)에서도 중복을 확인해 예외 처리했다.

Military Service

공군 병장 만기 전역

2019.01 ~ 2020.11
  • 공군 정보체계관리단 정보체계관리(30010)
  • 응용 소프트웨어 관리 및 개발 보직

기술 블로그

작업하면서 부딪힌 문제와 새로 배운 것을 매일 기록합니다.

blog.kebi.dev ↗