SOFTWARE ENGINEER · BACKEND & SYSTEM INTEGRATION

처음 보는 시스템에서도
데이터가 끊기는 지점
끝까지 추적합니다.

BEMS, FMS, IoT·통합관제 프로젝트에서 장비와 현장의 데이터를 수집하고, 서버·DB·API를 거쳐 사용자의 화면까지 연결해 왔습니다.

15분 수만 개 계측 포인트
수집·집계 주기
30–60분 → 5분 순찰 결과 일일 정리
확인 작업으로 단축
1주 → 1개월 Flutter 학습 후
내부망 순찰 앱 완성

01 · ABOUT

모르는 기술보다
풀리지 않은 문제가
더 불편합니다.

신입으로 입사해 처음 맡은 BEMS 프로젝트에서 백엔드 개발자는 저 혼자였습니다. 15분마다 계측 데이터를 모으고 집계하는 시스템이 며칠 뒤 멈추는 문제부터 해결해야 했습니다.

누구에게 답을 받을 수 없는 상황이라 로그를 남기고, 데이터가 들어오는 순간부터 저장되고 화면에 표시되는 과정까지 하나씩 나눠 확인했습니다. 데이터를 chunk와 bulk 단위로 처리하도록 바꾸고, 작은 팀이 운영하기에는 무거웠던 구성을 단순화했습니다.

그 뒤로 Flutter, 내부망, Oracle, RTSP, Serial, Modbus TCP처럼 처음 접하는 환경을 여러 번 만났습니다. 그때마다 필요한 만큼 빠르게 공부하고, 장비·DB·API·화면 사이의 연결을 직접 확인하는 방식으로 작업해 왔습니다.

“어떤 언어를 사용했는가”보다
“문제를 어디까지 추적해 해결했는가”를 경력의 기준으로 삼습니다.

02 · WORK EXPERIENCE

서로 다른 현장,
하나의 문제 해결 방식

01

Building Energy
Management System

멈추던 수집 시스템을 운영 가능한 구조로

15분마다 쌓이는 데이터를
끝까지 버티게 만들었습니다.

수만 개의 계측 포인트에서 전기·가스·태양광 데이터를 받아 Present Value에는 원시값을 저장하고, PVQ·PVH·PVD·PVM·PVY에는 시간 단위별 집계값을 생성하는 백그라운드 로직을 구현했습니다.

  • 문제 며칠간 데이터가 누적되면 MongoDB가 멈추고 화면 조회도 느려지는 현상
  • 판단 한 번에 처리하는 데이터량과 작은 팀에 비해 복잡한 운영 구성을 함께 줄일 필요
  • 실행 chunk·bulk 처리와 insertMany 적용, DB 마이그레이션, Airflow DAG를 cron 기반으로 단순화
  • 화면 넓은 기간은 요약 데이터로 보여주고 ECharts 줌 이벤트에서 상세 데이터를 불러오도록 개선

운영 기간 동안 기존 DB 중단 현상이 다시 발생하지 않았고, 대량 조회 시 화면 멈춤을 줄였습니다.

PythonFlaskMongoDBEChartsJavaScriptcron
02

Facility
Management System

계획이 없던 자동화를 현장 도구로

처음 배운 Flutter로
순찰 기록 시간을 줄였습니다.

금융기관 본점의 폐쇄망 환경에서 약 200개 순찰 위치를 QR로 확인하고, 위치별 점검 항목과 이상 내용을 Oracle에 기록하는 모바일 앱과 Flask API를 만들었습니다.

  • 학습 담당할 사람이 없어 Dart와 Flutter를 약 1주간 익히고 한 달 안에 WebView 기반 앱 완성
  • 연동 방재·전기·기계 팀별 요구에 맞춰 API를 분리하고 내부망 고정 IP 환경에서 통합 배포
  • 장애 로그와 코드를 역추적해 반환되지 않던 Oracle 연결에 close 처리를 추가하고 지연 오류 완화
  • 자동화 월별 이상 여부를 기존 Excel 양식에 O/X로 채우는 GUI·PyInstaller 실행 파일 제안 및 구현

매일 30~60분 걸리던 수기 정리를 5분 이내의 전송 확인으로 줄였고, 월말 보고서는 두세 번의 클릭으로 생성하도록 바꿨습니다.

FlutterDartFlaskOraclePyInstallerInternal Network
03

Industrial Protocol
& CCTV Integration

문서가 부족한 현장에서 패킷부터 확인

경보 신호와 CCTV 화면을
하나의 흐름으로 연결했습니다.

서로 다른 두 현장에 단독 파견되어 RTSP CCTV 스트리밍과 소방·열화상 경보를 연동했습니다. 평상시 4분할 화면에서 경보가 발생한 카메라를 전체 화면으로 전환하고, 복구 후 기존 화면으로 돌아가도록 구현했습니다.

  • 레거시 Serial 기존 SI 서버를 유지한 채 분배기로 데이터를 함께 수신하고 USB-RS-485 원시 패킷을 분석해 파서 작성
  • Modbus TCP 소방 업체 기술지원팀과 통화하며 Modbus Poll로 주소와 값을 직접 검증
  • 화면 Python·PyQt5·VLC로 RTSP 재생, 경보 전환, 재연결, 중복 방지, 메모리 모니터링 구현
  • 확장 엘리베이터·전기·조명·가스·태양광·지열·연료전지 설비를 Modbus TCP·BACnet·Socket·Serial로 연동

프로토콜 문서와 현장 지원이 충분하지 않은 상황에서도 신호를 직접 검증해 장비 데이터와 관제 화면 사이의 연결을 완성했습니다.

PythonPyQt5VLCRTSPModbus TCPBACnetRS-485
04

LoRaWAN IoT
Sensor Platform

센서에서 알림과 대시보드까지

LoRaWAN 센서 데이터를
운영 화면까지 연결했습니다.

ChirpStack과 Dragino Gateway를 기반으로 온습도·전류·대기질 센서 데이터를 수신하고, MQTT 메시지의 payload를 설비 포인트별 계측값으로 변환했습니다.

  • 수신 KR920 환경에서 센서와 Gateway를 연결하고 MQTT 기반 실시간 데이터 처리 구현
  • 파싱 센서별 payload 형식을 분석해 point 단위로 분리하고 저장 구조에 맞게 변환
  • 진단 Gateway 전환과 roaming 문제를 추적하고 ADR 설정과 현장 수신 상태 확인
  • 활용 임계값 초과 알림과 ECharts 기반 계측 데이터 조회 화면 연결

무선 센서의 수신 상태부터 payload, DB 저장, 알림과 화면까지 이어지는 IoT 데이터 흐름을 직접 확인했습니다.

LoRaWANChirpStackMQTTDraginoPythonECharts

03 · TOOLBOX

필요한 기술을
문제에 맞춰
사용합니다.

Primary

Python · Flask · MongoDB · Oracle · REST API · Batch Processing

Applied in Products

Java · Flutter/Dart · PyQt5 · JavaScript · ECharts · FastAPI · PostgreSQL

Integration & Protocol

Modbus TCP/RTU · BACnet · RS-485/Serial · TCP Socket · RTSP · MQTT · LoRaWAN · ChirpStack

Delivery & Operations

Docker · cron · Git · Cloudflare Workers · Vercel · Render · PyInstaller

04 · SELECTED PROJECTS

업무 밖에서도
서비스를 끝까지
만들어 봅니다.

성과를 꾸미기보다 기획, 설계, 배포와 운영 과정에서 실제로 고민한 내용을 기록했습니다.

양도마니 박스오피스 화면 LIVE
03공연 데이터 수집·검색

양도마니

공연 정보를 수집하고 중복 없이 갱신하는 티켓 양도 서비스

KOPIS XML을 페이지 단위로 수집하고 timeout·throttling·중복 제거·upsert를 적용해 공연 상태와 박스오피스 순위를 관리했습니다.

이인용식탁 지도와 프로필 설정 화면 LIVE
04위치 기반 매칭

이인용식탁

지도에서 식당을 고르고 함께 먹을 사람을 모집하는 서비스

Kakao Maps·Places와 위치 정보를 연결하고 모집·신청·수락·채팅·마감·삭제 흐름을 Cloudflare Workers와 D1으로 구현했습니다.

05검색 증강 생성

로컬 문서 RAG

PDF·TXT 문서를 문장 단위로 나누고 FAISS와 BM25 결과를 RRF로 결합한 뒤 CrossEncoder로 재정렬했습니다. 근거 문장을 함께 보여주도록 설계했습니다.

06데이터 수집 자동화

스피또 데이터 수집기

동적 슬라이드와 여러 페이지의 당첨 데이터를 Selenium과 BeautifulSoup으로 수집하고, 중복 제거 후 Excel로 저장하는 GUI 실행 파일을 만들었습니다.

05 · CONTACT

함께 일할 기회를
찾고 있습니다.

백엔드와 시스템 연동을 중심으로, 제품과 현장의 문제를 직접 해결할 수 있는 소프트웨어 엔지니어 역할을 찾고 있습니다. 새로운 기술과 도메인에도 열려 있습니다.

EDUCATION경영학 학사