공원석

Software Engineer | 개발 3 년 + 산업 현장 운영 9 년 반


About Me

저는 무언가를 만들어 오래 안정적으로 굴러가게 하는 일에서 가장 큰 보람을 느끼는 엔지니어입니다. 개발을 시작하기 전 9 년 반 동안 제약 자동화 장비와 발전소 설비처럼 멈추면 안 되는 시스템을 현장에서 운영했고, 그 시간이 지금도 코드를 대하는 태도의 바탕이 되어 있습니다. 화면이 잘 도는 것보다 “이게 새벽에 멈추면 어떻게 되는가”를 먼저 떠올립니다.

제가 즐기는 일은 문제의 진짜 원인을 측정으로 좁혀가는 과정입니다. WebRTC 협업 서비스를 혼자 만들 때도 부하 테스트에서 예상과 다른 패턴이 보이면 추측으로 넘기지 않고 프로파일러와 통계를 붙여 끝까지 파고드는 게 재미있었습니다. 혼자 3 년을 운영하며 관측 도구의 부재를 아쉬워했던 만큼, 만들 때부터 관측 가능하고 복구 가능한 시스템을 설계하려 합니다. 멀리 보면, 9 년 반 현장에서 익힌 무중단 운영 감각을 팀과 제품의 신뢰성으로 옮겨놓는 엔지니어가 되고 싶습니다.


Professional Summary

백엔드 중심 풀스택 엔지니어로, 24/7 산업 시스템 운영 9 년 반 경험을 바탕으로 설계 단계부터 장애 복구와 확장성을 고려합니다.

핵심 강점:

  • 분산 시스템 설계: DB 폴링 기반 다중 서버 협업 구현, 3 년간 무중단 운영 (1,200 건/시간 → 서버 5 대 운영 시 6,000 건/시간 선형 확장)
  • 실시간 통신 아키텍처: WebRTC SFU 로 P2P 대비 25 배 확장성 향상 (4 명 → 100 명 동시 접속)
  • 데이터 기반 의사결정: 부하 테스트/프로파일링으로 이중 병목 발견, Simulcast 적용으로 서버 CPU 개선 (99% → 65%)
  • 운영 경험을 살린 설계: 글로벌 제약사 24/7 온콜 체제 경험 → 장애 예방과 복구 중심 설계

Technical Skills

언어 & 런타임 JavaScript (ES6+), Node.js

프레임워크 & 라이브러리 Express, Next.js, mediasoup (WebRTC SFU)

데이터베이스 & 인프라 MySQL, AWS EC2, PM2

개발 도구 & 협업 Git, Jest, Socket.IO, Supabase


Professional Experience

프리랜서 (2022.12 ~ 현재)


네이버 인플루언서 마케팅 플랫폼

풀스택 100% 단독 개발 | 2022.12 ~ 2025.12 (3 년)

상위노출 이력 기반 인플루언서 자동 발굴 및 이메일 마케팅 자동화 시스템

핵심 성과

지표결과
발송 안정성3 년간 중복 발송 0 건 (DB 폴링 + node-schedule 순차 발송 제어)
처리량1,200 건/시간, 서버 5 대 운영 시 6,000 건/시간 선형 확장
크롤링 속도3 배 향상 (30-60 초 → 5-15 초)
스팸 회피율99%+ (3 년간 DB 발송 로그 기준, 발송 성공/전체 시도)
비즈니스 임팩트수동 발송 대비 작업 시간 약 90% 단축 (추정)

핵심 기술 결정

분산 처리 전략 메시지 큐 대신 MySQL DB 폴링 (3 초 주기) 방식 선택 → 추가 인프라 없이 발송 서버 수평 확장

서버 상태 모니터링 Heartbeat (MAC 주소 자동 등록) → 서버 추가 시 설정 파일 수정 불필요 (제로터치 확장) + 다중 발송 서버 정상/장애를 운영 UI 에서 실시간 가시화

발송 안정성 & 평판 관리 딜레이 순차 발송 + 패턴 다변화 (32 종 브라우저/OS 로테이션) + 다중 SMTP 동적 전환 → 3 년간 99%+ 안정 운영. 수신거부/블랙리스트/기발송 자동 필터링과 법령 준수 푸터로 컴플라이언스 확보

LLM 기반 콘텐츠 자동 생성 Claude/Gemini API 연동 → 발송 본문 자동 생성, 3 년간 개선의 최종 단계 (초기 MVP → 병렬 처리 → AI 통합)

→ 상세 내용: 네이버 인플루언서 마케팅 플랫폼 구축

시스템 아키텍처

flowchart TB
    Client[클라이언트]
    
    subgraph MainServer[Express 메인 서버]
        API[API 라우터]
        Crawler[크롤링 서비스]
    end
    
    subgraph MailServers[분산 발송 서버]
        MS1[서버 #1]
        MS2[서버 #2]
        MSN[서버 #N]
    end
    
    Naver[네이버 검색<br/>직접 파싱]
    ELB[AWS ELB<br/>상세 크롤링 분산]
    DB[(MySQL)]
    SMTP[SMTP<br/>Gmail/Naver/Hiworks/Daum]
    
    Client <-->|Socket.IO 실시간| API
    API --> DB
    Crawler --> Naver
    Crawler --> ELB
    DB <--> MS1 & MS2 & MSN
    MS1 & MS2 & MSN --> SMTP

기술 스택: Node.js, Express, MySQL, Axios, Cheerio, Puppeteer, AWS ELB, Nodemailer, Socket.IO, node-schedule, LLM API (Claude/Gemini)


WebRTC 실시간 협업 서비스

SFU 아키텍처 학습 프로젝트 | 2025.10 ~ 2026.01 (약 2.5 개월)

화상 채팅 + 실시간 화이트보드 + 화면 공유 + 그룹 채팅 통합 플랫폼

핵심 성과

지표Before (P2P)After (SFU)
동시 접속4 명100 명
클라이언트 CPU80%15%
종단 지연 (E2E Latency)-200ms 미만

핵심 챌린지

부하 테스트를 통한 이중 병목 발견

  • 문제: 참가자 3 배 증가 (10 명 → 30 명) 시 Jitter 는 1.4 배 (2.1 초 → 3.0 초) 만 증가 — 비선형 패턴
  • 해결: producer.getStats() + v8-profiler-next 분석 결과, 10 명 시점의 네트워크 포화 (434Mbps) 가 30 명 시점의 CPU 포화 (99%) 를 가리는 이중 병목 구조 발견
  • 결과: 인스턴스 타입별 예상 수용 인원 가이드라인 도출 (네트워크 + CPU 동시 고려). 단일 병목 가정의 한계 확인 → 네트워크/CPU 계층 분리 측정 정착

N² 스케일링 대응 — Simulcast 구현 완료

  • Consumer N² 증가 (30 명 기준 1,740 개) 로 서버 CPU 99% 도달
  • 3 단계 해상도 자동 조절 (100k/300k/900k bps) 적용 → 30 명 CPU 99% → 65%, 대역폭 1,272 → 약 400Mbps

→ 상세 내용: WebRTC 실시간 협업 서비스

시스템 아키텍처

flowchart TB
    subgraph Clients[클라이언트]
        C1[Client A]
        C2[Client B]
        C3[Client C]
    end
    
    subgraph SFU[Mediasoup SFU 서버]
        subgraph W1["Worker 1 (C++ 프로세스)"]
            R1["Router - Room 단위"]
        end
        subgraph W2["Worker 2 (C++ 프로세스)"]
            R2["Router - Room 단위"]
        end
    end
    
    C1 & C2 & C3 -->|Produce| R1
    R1 -->|Consume| C1 & C2 & C3

기술 스택: Node.js, Express, mediasoup v3, Socket.IO, Next.js, Fabric.js, AWS EC2, Loadero


밸류앤플러스 (계약직, 2025.05 ~ 2025.08)

비개발 직군 블로그 마케팅 업무 자동화 도구 6 종 개발 (주요 3 종은 아래)

주요 개발 내용

  • 키워드 추출기 (GPT API 연동, 블로그 카테고리별 연관 키워드 생성)
  • 블로그 툴킷 (크롤링, 플레이스 리뷰 수집, Python → Node.js 포팅)
  • 포스팅 재사용 검사기 (Next.js 웹앱, 관리자 대시보드, 사용자 통계)

기술 스택: Python, Node.js, Supabase, Next.js


비카누스 (2022.01 ~ 2022.11)

컨테이너 환경 풀스택 경험

Fanuc 로봇 3D 스캐닝 시스템 유지보수

  • React, Spring Boot, Redis, Docker 기반 풀스택 환경
  • 레거시 코드 분석 및 기능 개선
  • 4 인 팀 협업 (Git 브랜치 전략, 코드 리뷰)

DAQ 시계열 데이터 수집 시스템

  • InfluxDB 기반 시계열 데이터 관리
  • Message Broker 활용 실시간 데이터 스트리밍
  • React 대시보드 개발 (Grafana 연동)

Side Projects

젠더 리빌 사이트 | Live Cursor AI 활용 2 일 프로토타이핑, 4 종 애니메이션, 단태아/다태아 구분 기술: Next.js, shadcn/ui, TypeScript, Vercel

대학 입시 컨설팅 사이트 학생 관리 및 상담 예약 시스템 (AWS EC2 배포, PM2 운영) 기술: Node.js, Express, MySQL


Pre-Development Career (9 년 반)

차별화 포인트: 24/7 산업 시스템 운영 경험 → 설계 단계부터 안정성/장애 복구 고려


엔클로니 (2016.06 ~ 2020.12) - 4 년 6 개월

제약 자동화 장비 시스템 엔지니어

시스템 안정성 경험

  • J&J, Pfizer 등 글로벌 제약사 생산 라인 24/7 온콜 대응
  • 시스템 다운타임 1 분당 수천만원 손실 환경 → 장애 예방과 빠른 복구의 중요성 체득
  • GMP Validation 문서 (IQ/OQ/PQ) 작성 → 문서화와 절차 준수 역량
  • 정제/캡슐 비전 검사 장비 설치부터 인도까지 전 과정 관리

글로벌 프로젝트 경험

  • 5 개국 출장 (인도, 말레이시아, 일본, 독일, 중국)
  • 언어 장벽 환경에서 기술 문서 기반 커뮤니케이션
  • 시차와 문화 차이 속 원격 협업 경험
  • 국내외 전시회 참가 및 고객사 장비 데모 진행

→ 온콜 반사 신경 (“새벽에 멈추면 대형 사고”) 을 기준으로 설계한 결과가 인플루언서 플랫폼 3 년 무중단 운영


㈜오엔테크놀러지 (2013.07 ~ 2015.04) - 1 년 10 개월

발전소 CMMS 및 진동 측정 장비 엔지니어

발전소 유지보수 관리 시스템 구축

  • 한국남부발전 삼척그린파워 CMMS(Computerized Maintenance Management System) 구축
  • AMS(Asset Management System) 소프트웨어 관리
  • 24/7 운영 환경의 데이터 정합성/가용성 요구사항 이해

진동 측정 기반 예지보전

  • 한국수력원자력 각 발전소 진동측정장비 납품 및 기술지원
  • 장비 고장 전 징후 탐지 → 모니터링과 알림 시스템의 필요성 인식

→ “고장 전 징후를 잡는다”는 예지보전 논리가 발송 서버 Heartbeat 모니터링 설계에 그대로 이식됨


SK 커뮤니케이션즈 자회사 (2011.07 ~ 2013.06) - 2 년

웹서비스 QA 엔지니어

  • SK 커뮤니케이션즈 싸이월드 앱 품질 테스트
  • 네이트 메인 페이지 및 콘텐츠 사용자 통계 관리
  • 웹 서비스 테스트 시나리오 설계 및 버그 리포팅

→ 테스트 시나리오 작성과 서비스 통계 읽기를 처음 제대로 배운 자리


Education & Training

빅데이터 분석 전문가 과정 | 2020.12 ~ 2021.04

  • Python, R 기반 대용량 데이터 분석 및 시각화
  • 머신러닝 기초 및 데이터 전처리 기법
  • 전직 준비를 위한 기술 스택 전환 교육

부천대학교 모바일통신과 | 2005.02 ~ 2010.03

  • 전문학사 졸업