풀스택 · 인프라 엔지니어

이승환

창호 시공업 도메인 전사 ERP · CRM을 1인 단독 설계 · 운영

창호 시공업 도메인의 전사 ERP와 CRM을 단독 설계·구현하고, AWS · GCP · Cloudflare · Firebase에 걸친 멀티클라우드 인프라를 직접 구축·운영하는 엔지니어. 회계·세무 시스템 연동(팝빌 · 위하고 · 더존)과 업무 자동화에 강점이 있으며, 운영 데이터로 병목을 찾고 전건 조회·반복 호출을 줄이는 성능 개선 경험이 있습니다.

Kotlin / Spring Boot Next.js / React AWS · GCP · Cloudflare 팝빌 · 위하고 · 더존 연동 측정 기반 병목 개선 · 쿼리 최적화

Career

경력 요약

사내 유일한 개발자로 전사 시스템을 직접 책임지고 운영해 온 2년차 개발자로, 즉시 투입 가능한 실무자입니다.

2025.05 — 현재

청암 / 청암홈윈도우 · 대리

사내 유일 개발자 · 2년차 기획 → 설계 → 운영 단독 책임 현업 요청 → 개발 Spec 구조화 프로세스 기반 품질 관리 대리 승진 · 연봉 인상

2025년 5월 청암에 입사해(현재 2년차), 그룹의 B2C 사업을 담당하는 청암홈윈도우의 사내 시스템 개발을 전담하고 있습니다. 회사의 유일한 개발자로서, 초기에는 RPA·크롤링·OCR로 수기 업무를 자동화하고 1세대 시스템인 CRM을 운영·고도화하며 고객·계약·실측·시공·수금·정산·AS의 업무 도메인 전체를 깊이 이해했습니다. CRM을 직접 쓰며 파악한 한계를 보완하고, CRM에 없던 정산·세금계산서·수수료·발주 업무까지 시스템 안으로 가져오기 위해, 레거시 CRM 데이터를 신규 시스템으로 이관하고, 2세대 전사 ERP의 데이터 이관·정합성 검증과 핵심 기능 개발을 대부분 마친 뒤 추가 개발·안정화·유지보수까지 단독으로 진행하는 단계까지 직접 끌어올렸습니다.

ERP 개발 초기에는 잠실 사무실에서 근무했으나, 본사 현업과의 커뮤니케이션 비용이 개발 속도의 병목이 된다고 판단해 직접 대전 근무를 제안, 현업 바로 옆에서 빠르게 피드백을 받으며 개발하는 체계로 전환했습니다. 회사도 이 제안을 받아들여 대리 승진·연봉 인상·근무 조건 조정으로 뒷받침했고, 결과적으로 요구사항 반영 속도와 시스템 완성도가 크게 향상되었습니다.

코드 리뷰어가 없는 1인 개발 환경이었기에 오히려 프로세스가 품질을 강제하도록 설계했습니다 — ArchUnit·Detekt로 아키텍처 규칙을 테스트로 강제하고, Vitest·Playwright·골든 테스트로 회귀를 막고, 테스트 가능한 코드와 PR 머지 게이트로 안정성을 확보했습니다. 또한 비개발 현업의 요구사항을 직접 받아 개발 가능한 Spec으로 구조화하며 비즈니스 언어로 소통해 왔고, 부트캠프 팀 프로젝트(딩동·클라이몬)에서 Fork · PR 기반 협업 흐름과 도메인 분담을 경험했습니다. 팀에 합류하면 코드 리뷰 문화에 빠르게 적응하고 함께 성장할 준비가 되어 있습니다.

Selected Work

대표 프로젝트

창호 시공업 도메인을 디지털화한 실서비스 — 회계·세무·인프라까지 모두 1인이 단독으로 설계·운영했습니다.


입사 초기부터 전담

사내 자동화 · 데이터 · 인프라

수기 회계 업무를 RPA · OCR · 크롤링으로 자동화하고, 회사 데이터를 BigQuery로 통합 · 운영.

ERP 본개발에 앞서, 흩어진 수작업과 레거시 회계 시스템(더존·홈택스·위하고)을 연동·자동화하고 회사 데이터를 클라우드로 옮기는 일을 단독으로 맡았습니다. 결제·금융 인프라를 직접 조사하고, GCP(BigQuery·Cloud Run·VM) 위에 데이터·자동화 기반을 세웠습니다.

UiPath Playwright · Chromium undetected-chromedriver Python Upstage OCR GCP BigQuery Cloud Run Jobs · VM Secret Manager · IAM Apps Script

주요 구현 · 성과

  1. 01 회계 업무 RPA 자동화 — 더존(Douzone) 카드매출 입력, 국세청 홈택스 전자세금계산서 합계표·현금영수증 매출 다운로드, 위하고 마이그레이션을 무인 자동화
  2. 02 은행·카드 매출 데이터 크롤링 + VM 무인 운영 — 농협·기업은행 계좌/카드 매출을 undetected-chromedriver로 수집(승인된 계정 범위 내 보안 입력 제약 대응 적용), 15분 주기 실행 루프(연속 실패 시 백오프)를 Windows 작업 스케줄러·서비스로 등록해 VM에서 무인 운영
  3. 03 위하고 통장·카드매출(SPC·머니온) 크롤러를 Cloud Run Jobs + Scheduler 자동 수집 파이프라인으로 배포·구성 — 중복 제거 누적 적재로 BigQuery raw_data 적재
  4. 04 Upstage OCR로 실측·견적 자동 인식 — 인식률 테스트 후 ERP 판매견적에 적용, 서버 배포
  5. 05 결제·금융 인프라 직접 조사·도입 검토 — 팝빌/바로빌, 사이다페이·토스페이, PG vs VAN 수수료, 여신금융협회 API 정책까지 분석
  6. 06 BigQuery 데이터 이관 + 보안 설계 — 서비스계정·IAM 권한·정책태그 승격, 스케줄 서비스 구성, "빠른조회서비스" 클라우드 마이그레이션
  7. 07 흩어진 고객 데이터를 정리해 CRM의 토대를 마련 — 유입·계약 고객을 수기로 다우오피스웍스에 입력하던 탓에 이름·키값이 어긋나고 중복이 많던 약 2만 6천 건을 BigQuery에서 정제하고, 이를 CRM 7개 관계형 테이블로 분해 적재하는 룰 기반 매핑 엔진(Python)을 만들었습니다 — 4단계 우선순위 진행상태 판정·enum 12종 정규화·user·partner FK 매칭. 이 정제된 데이터가 신규 CRM의 출발점이 되었습니다
  8. 08 매입검수 자동화 파이프라인 운영·고도화 — 거래명세서 OCR → 별칭 매칭 → BigQuery 적재 → 세금계산서 대사(6단계, 거래처 약 60개)를 인수·운영하며 멱등 적재(MERGE)·FAIL 재매칭 보정·Apps Script 검수 웹앱으로 고도화
  9. 09 민감정보 부서간 격리(Secret Manager) 보안 설계 — 은행계좌 비밀번호 등 100개 이상을 사람에게 노출 없이 런타임 주입(DEV 더미/PROD 실값·실행/열람 권한 분리)하는 구조를 설계·도입
  10. 10 근태 출퇴근 시스템 구축(POC) — 세종·논산 공장 대상 회의·설계, 기초데이터 정리
  11. 11 Notion · Playwright · Context7 등 MCP 도구를 개발 프로세스에 도입

★★ 핵심 개발 완료 · 안정화/유지보수

청암홈윈도우 ERP

CRM(1세대)을 보완·발전시킨 2세대 전사 ERP — 정산·세금계산서·수수료·제품 발주까지 확장한 전사 업무 시스템.

CRM을 직접 운영하며 드러난 한계(데이터 정합성·회계 처리)를 보완하기 위해 만든 차세대 전사 ERP. 1세대 CRM이 고객·계약·실측·시공 흐름을 중심으로 했다면, 2세대 ERP에서는 시공비·매입지출 정산, 매출 세금계산서 발행, 매입 세금계산서 수집·매칭, 카드·영업수수료 정산, 제품·자재 발주까지 새로 확장했습니다. 데이터 이관·정합성 검증과 핵심 기능 개발은 대부분 마쳤고, 현재는 추가 기능 개발과 안정화·유지보수를 병행하고 있습니다.

1,202 파일
~424K LOC
218 / 84 라우트 / REST API
4,785 커밋
Next.js 14 App Router Firebase pnpm 모노레포 Cloudflare Pages (Edge) Vitest + Playwright

주요 구현 · 성과

  1. 01 매출 세금계산서 · 현금영수증 연동 — ERP에서 품의 → 발급 → 수정발급까지 이어지는 매출 증빙 발행 흐름을 정리하고 팝빌(Popbill) 기반 발급 과정을 시스템에 연결
  2. 02 매입 세금계산서 수집 · 매칭 — 홈택스/국세청 매입 세금계산서를 ERP로 수집하고, 시공비·자재대금 후보와 맞춰 회계 확인 흐름에 연결
  3. 03 법인 세무 분리(1,500만원 회사분리)를 박제(snapshot) 아키텍처로 구현 — 계약금액 기준 2개 법인 명의 자동 분기, fail-safe 기본 OFF로 오발행 사고 차단
  4. 04 시공비·매입지출 정산, 카드수수료 일괄등록, 영업·파트너 수수료 정산 등 돈이 오가는 업무를 ERP 안에서 처리
  5. 05 제품·자재 발주, 추가 발주·판매, 거래명세서·발주서 PDF 등 발주 업무를 ERP 2세대에 새로 추가
  6. 06 은행 입금 확인·매칭 프로세스 — 팝빌 EasyFinBank로 들어온 입금내역을 ERP에 연결하고, 입금자명·계약자·접수자명이 다른 현장을 후보로 추려 담당자가 확인할 수 있게 구성
  7. 07 위하고(Wehago) 회계 연동 자동화 — 회계팀이 수기 등록하던 카드 · 현금영수증 · 세금계산서 발행내역을 ERP API로 자동 제공(취소·환불·월말 마감 케이스 처리 포함)
  8. 08 순수함수 가격 엔진(formulaVersion 박제 + 골든테스트 회귀 방지)
  9. 09 GitHub Actions cron → Cloudflare Workers Cron 마이그레이션(21개 자동화)
  10. 10 자체 보안 리뷰로 P0 취약점 도출·조치(Firestore rules 3,099줄 역할 기반 권한)
  11. 11 개발 생산성 정량 평가 시스템 설계 — 머지 PR을 3축으로 자동 채점하는 순수함수 엔진 + 적재 파이프라인 + 평가 대시보드 (상세는 핵심 역량 참조)

Trouble-shooting

NoSQL 정합성을 전면 전환 없이 설계로 메우기

회계·정산 도메인만 보면 RDB가 더 자연스럽지만, 당시 시스템은 이미 Firebase/Firestore 기반으로 운영되고 있었고 전면 전환은 개발 속도와 현업 협업 방식을 크게 흔들 수 있었습니다. 그래서 Firestore를 유지하되 진실원(SSoT)을 하나로 고정하고, 상태 변경은 공통 함수와 배치 동기화 경로를 통해서만 일어나게 설계했습니다. 과거 오염은 멱등 스크립트로 보정(불일치 12건 → 0건)하고, 정합성 감사 cron으로 문제 가능성을 미리 점검·보정하는 방식까지 붙여 NoSQL의 약점을 코드와 운영 프로세스로 보완했습니다.

공식 API가 없는 타 부서 시스템 연동 돌파

회계·발주 기능을 붙이려면 타 부서 시스템과 연동해야 했는데 공식 API가 제공되지 않는 상황. 개발이 막히지 않도록 담당 부서에 정식으로 권한을 요청·승인받아, 계정 인증으로 내부 웹 API를 직접 호출하는 연동 레이어를 구현해 기능을 완성. 공식 API가 없을 때도 보안·권한 절차 안에서 연동 가능한 대안을 찾은 사례.


★ 1세대 시스템 · ERP로 통합

청암홈윈도우 CRM

Kotlin/Spring + React 풀스택 CRM으로 영업 전 과정을 디지털화한 1세대 시스템 — API 엔드포인트 152개. 이걸 직접 운영하며 파악한 한계가 차세대 ERP(2세대) 설계의 출발점이 되었습니다.

고객 인입 ~ 견적 · 계약 · 실측 · 시공 ~ 수금 · 정산 ~ AS 전 과정(B2C)을 디지털화한 사내 CRM.

638 / 411 BE / FE 파일
~161K LOC (38.9K + 122K)
152 API 엔드포인트
~824 커밋
Kotlin 2.0 Spring Boot 3.5 OAuth2 + JWT AWS RDS MariaDB React 18 + TS + Vite shadcn/ui Elastic Beanstalk

주요 구현 · 성과

  1. 01 DDD 4계층 모듈러 아키텍처 + ArchUnit으로 계층 규칙을 테스트로 강제 + Detekt 정적분석
  2. 02 고객 · 계약 · 실측 · 시공 · 수금 · 정산 · AS까지 영업 라이프사이클 전 도메인을 단독 구현 — 이 도메인 이해가 ERP 설계의 밑바탕
  3. 03 운영 안전장치 직접 설계 — 장애 대응 읽기전용 모드 필터, 토큰 버전 검증 필터
  4. 04 운영 초기 전면 장애를 직접 파악·긴급 대응 — 응답 불능 상황의 원인을 DB 커넥션 풀 고갈로 진단(고객목록 1요청당 커넥션 7~8개 점유 규명)하고, 즉시 자원 증설·과부하 기능 차단으로 안정화한 뒤 재발 방지 방향(동시성 제한·기능 격리)을 정리
  5. 05 외부 협력사·파트너사 개발자용 CRM Open API 명세서 작성 — API Key 인증·페이징·Enum 코드표·에러 규약·연동 체크리스트까지 외부 연동 표준 정의
  6. 06 카카오 알림톡 / SMS(Solapi, 폴백 · LMS 자동전환), S3, WebDAV NAS 백업, Google Sheets 동기화, WebSocket 실시간

Tech Stack

기술 스택

언어부터 인프라, 결제/세무 연동, AI 자동화까지 — 한 사람이 다룬 범위입니다.

언어

Kotlin TypeScript / JavaScript Java Python

백엔드

REST API 설계·구현 Spring Boot 3 Spring Security / OAuth2 Spring Authorization Server (OIDC) JPA / Hibernate Flask Next.js API Routes

프론트엔드

React 18 / 19 Next.js (App Router) Vite TailwindCSS shadcn/ui TanStack Query Zod

데이터베이스 · 모델링

데이터 모델링 · ERD MariaDB / MySQL PostgreSQL (Neon) Firestore Supabase BigQuery Redis (Upstash)

인프라 (AWS · Cloudflare)

AWS (EC2 · EB · RDS · S3 · ALB) Cloudflare (Pages · Workers · KV) Vercel

인프라 (GCP)

Cloud Run Cloud Run Jobs BigQuery Firebase / Firestore Pub/Sub

CI/CD · 품질 · 협업

Git / GitHub GitHub Actions AWS CodeBuild Docker ArchUnit Detekt Playwright Vitest

회계 · 세무 연동

팝빌 세금계산서 · 현금영수증 위하고(Wehago) 더존(Douzone) EasyFinBank 입출금 회계 API 연동

자동화 · AI

Playwright Chromium (headless) UiPath (RPA) Anthropic Managed Agents Anthropic / OpenAI SDK Solapi Google Ads / Meta API

Core Strengths

핵심 역량

풀스택 + 인프라를 한 사람이 커버 — 애플리케이션부터 인프라, 회계 정합성, AI 시스템화까지.

01

풀스택 + 인프라를 한 사람이 커버

Kotlin/Spring + Next/React + Python을 오가며 애플리케이션을 만들고, AWS·GCP를 0부터 구축해 운영까지 책임집니다. 기획·설계·구현·배포·운영을 한 사람이 끝까지 끌고 갑니다.

02

정산·회계 정합성 — 정확성이 생명인 시스템

오차 없이 계산하는 정산 로직과 데이터 정합성을 코드로 다룹니다. 팝빌 기반 세금계산서·현금영수증 발급 및 홈택스/국세청 수집 연동, 은행 입금내역 수집과 입금자·계약자·접수자명 확인 프로세스, 법인 세무 분리(snapshot), 발생주의 매출인식, 골든테스트 회귀 방지. 위하고·더존·홈택스 등 레거시 회계 시스템 연동·자동화 경험.

03

비용 · 제약 기반 아키텍처

요구사항과 제약에 맞춰 AWS · GCP · Cloudflare 사이에서 스택을 선택하고, 운영 비용·안정성을 함께 고려해 인프라를 설계합니다.

04

AI를 시스템으로 부리는 크리에이터

AI를 단발 도구가 아니라 워크플로우의 부품으로 시스템화합니다. 1인이 전사 ERP를 운영하고, 영상 제작·콘텐츠 자동화 파이프라인까지 — 개발과 콘텐츠를 AI로 함께 만들어냅니다.

05

전사 통합 인증(SSO) 서버를 직접 구축

Spring Authorization Server 기반 OIDC 통합 인증 서버를 단독 설계·배포하고, 기존 쿠키 SSO의 도메인 종속 한계를 OIDC로 풀었습니다. 연동용 공통 라이브러리를 패키지로 배포해 신규 서비스가 같은 패턴으로 SSO에 붙는 표준을 만들고 첫 서비스를 연동했습니다.

06

비개발자를 개발자로 — 팀 인에이블먼트

도메인 전문성을 가진 비개발 동료에게 Git · Claude 기반 "바이브 코딩" 프로세스를 셋업·교육해, 현업이 직접 기능을 만드는 체계를 구축했습니다.

07

개발 작업을 스스로 점검하는 PR 채점 시스템

혼자 개발하다 보니 제 PR을 객관적으로 봐줄 코드 리뷰어가 없어, 제 작업을 스스로 돌아볼 도구를 직접 만들었습니다. 머지된 PR을 난이도·안정성·임팩트 3축(합계 0~10)으로 채점하는 결정론적 순수 함수 엔진을 짜고, 채점 규칙은 Vitest 골든테스트로 고정했습니다. gh CLI로 GitHub PR을 매일 수집해 Firestore에 동기화하는 파이프라인과 월별 평가 대시보드까지 연결했습니다. ML/LLM 없이 규칙 기반으로 동작하며, 자동 점수는 초안일 뿐 최종은 사람이 검토·확정하는 휴먼 인 더 루프 구조로 두었습니다.

08

문제 해결에 대한 두려움이 없습니다

낯선 기술이나 처음 보는 환경도 직접 부딪혀 보며 방법을 찾아냅니다. 문제를 끝까지 파고드는 집요함이 결국 해결에 다다르게 한다고 믿습니다. 다양한 경험 덕에 새로운 상황에 대한 두려움이 적고, 기존 경험과 지식을 바탕으로 늘 새로운 방식으로 문제를 풀어냅니다.

Portfolio

프로젝트 포트폴리오

업무 외에도 끊임없이 만듭니다 — 팀 협업 프로젝트부터 혼자 처음부터 끝까지 만든 사이드 프로젝트까지.

재직 중 사이드 — 일하면서도 끊임없이 만듭니다

다정한 만남 서비스 화면
커뮤니티 플랫폼 · 풀스택 SIDE

다정한 만남 · 2026.03~

장애인을 위한 안전한 커뮤니티 연결 플랫폼 — 혼자 기획부터 배포까지

담당 · 전부 (기획 · 설계 · 구현 · 배포)

업무와 무관하게 사회적으로 의미 있는 제품을 처음부터 끝까지 만들고 싶어 시작했습니다. 프로필 탐색·상호 매칭·실시간 채팅·신고/차단 안전장치·지원정보 허브를 갖춘 풀스택 웹앱으로, 카카오 OAuth(CSRF 방어)·Supabase RLS 행 단위 권한·Realtime 채팅을 구현했습니다. 채팅은 같은 메시지가 두 번 보이지 않도록 새 메시지만 이어 붙이는 방식으로 정리했고, 장애인 커뮤니티라는 서비스 특성에 맞게 색 대비·폼 라벨·신고/차단 같은 기본 사용성을 챙겼습니다. Vercel 베타 배포.

Next.js 15 · React 19 Supabase TypeScript Tailwind v4 기본 접근성
AI 콘텐츠 자동화 · 풀파이프라인 SIDE

유튜브 영상 제작 자동화 파이프라인 · 2026

대본만 쓰면 영상이 나온다 — AI 나레이션부터 렌더링·업로드 준비까지 자동화

OpenClaw가 막 나왔을 때 에이전트 기반 작업 흐름을 실험하며 시작한 프로젝트입니다. 생성형 AI를 단발 도구가 아니라 워크플로우의 부품으로 시스템화해, 옵시디언 대본 한 편에서 AI 대본 보강·나레이션(TTS)·자막·씬 이미지·Remotion 영상 렌더링·ffmpeg 합성·썸네일·업로드 연동 구조까지 제작 과정을 단계별 파이프라인으로 묶었습니다. 한국어→영어·일본어 자동 번역 + 언어별 재렌더링까지 처리합니다. 옵시디언 플러그인(커맨드 9개)으로 통합했고, TTS는 OpenAI 우선·macOS 폴백으로 견고성을 확보했습니다.

TypeScript Remotion (React 영상) OpenClaw · Claude OpenAI TTS · DALL-E YouTube OAuth/API 구조 ffmpeg · Whisper

취업 전 · 부트캠프 — 팀 협업으로 만든 프로젝트

딩동 캘린더 화면
학급 관리 플랫폼 · 5인 팀

딩동 (DingDong) · 2024.12 – 2025.01

교사·학생을 위한 학급 관리 시스템 — 웹 + 하이브리드 앱(교사용 웹·앱 / 학생용 앱)

담당 · 캘린더/메인 페이지 · 웹·앱 디자인 · SSL·Jenkins 배포

교육부 NICE(나이스) API로 실제 학교·급식 정보를 불러오고, 타이머·자리배치·투표·전자칠판 등 수업 운영 편의기능과 QR 코드 학생 로그인을 한 곳에 모은 학급 관리 앱입니다. 저는 FullCalendar·Google Calendar 등 4종 캘린더 API를 가져와 웹·앱에서 일관되게 커스텀하고, 메인·캘린더 페이지와 전체 디자인, SSL 인증·Jenkins CI/CD 배포까지 담당했습니다.

Spring Boot · JPA React Flutter MySQL NICE · Google API Docker · Jenkins
클라이몬 지도 화면
클라이밍 커뮤니티 · 5인 팀

클라이몬 (CLIM'ON) · 2024.11 – 2024.12

지도·SNS·카페로 흩어진 클라이밍 정보와 커뮤니티를 한 플랫폼으로 통합

담당 · 시설(Facility) 도메인 · Kakao Map API

코로나 이후 급성장한 클라이밍 시장에서 파편화된 정보 문제를 푼 커뮤니티 플랫폼입니다. 5인 팀에서 저는 시설 도메인 전반을 단독으로 맡아 ERD 설계부터 리뷰·즐겨찾기·좋아요 CRUD, 시설 상세 페이지까지 구현했습니다. 특히 Kakao Map API로 지도 마커 클릭 → 시설 상세 이동하는 위치 기반 상호작용과 검색 자동완성을 만들었습니다.

Spring Boot 3.3 MyBatis Java 17 · Vanilla JS MySQL Kakao Map · Login
업무 자동화 (RPA)

RPA 업무 자동화 프로젝트 · 2025

수작업을 무인 자동화 — 데이터 수집 → 가공 → 집계 → 보고의 전 과정

네이버 쇼핑 크롤링 자동화와 시험결과 메일 수집 → 성적 집계 → 보고 메일 발송까지 전 과정을 UiPath로 무인 자동화했습니다. 다중 워크플로우 간 인자 전달 구조를 설계하고, TryCatch·Retry 기반 예외 처리로 안정성을 확보했습니다. 이 경험이 현재 회사에서 더존·홈택스·위하고 회계 업무 자동화로 이어졌습니다.

UiPath VB.NET Excel · DataTable SMTP · IMAP

About Me

자기소개

현장 업무 자동화에서 시작해, 전사 시스템을 단독으로 책임지는 개발자가 되기까지.

01

게임 개발에서 시작해 업무 시스템을 설계하기까지

저는 스무 살 무렵 2D 게임프로그래밍 과정을 통해 처음 코드를 접했습니다. 자동완성이나 AI 도움 없이 Unity·C#으로 화면과 게임 로직을 직접 만들며, 작은 규칙들이 모여 하나의 시스템이 되는 감각을 배웠습니다. 이후 제조·물류 현장에서 RPA와 브라우저 자동화로 반복 업무를 시스템화했고, 그 경험이 자연스럽게 백엔드·프론트엔드·인프라를 아우르는 풀스택 개발로 이어졌습니다. 지금은 한 회사의 ERP·CRM 전체를 혼자 설계하고 운영합니다.

02

운영 데이터로 병목을 찾고, 조회 패턴을 바꾸다

ERP의 시공 캘린더가 느리다는 피드백을, "막연히 느리다"가 아니라 운영 데이터로 직접 파고들었습니다. 원인은 캘린더에 진입할 때마다 일정과 무관한 과거 고객·시공 데이터까지 함께 읽던 조회 구조였습니다. 진행상태 enum으로 대상을 넓게 잡던 코드를 월 범위 날짜 쿼리 중심으로 바꾸고, 이관 데이터의 날짜 필드를 정리해 다음 이관에도 같은 규칙이 적용되게 만들었습니다. 단순히 로딩을 줄인 것이 아니라, 어떤 화면이 몇 건을 읽는지 먼저 보고 조회 경로를 바꾸는 기준을 세운 경험입니다. 이후에도 데이터를 가져오기 전에는 쿼리·인덱스로 줄이고, 가져온 뒤에는 Map으로 조립해 반복 조회를 줄이는 기준으로 병목을 봅니다.

03

FK도 JOIN도 없는 NoSQL에서 정합성을 설계로 메우다

회계·정산 도메인만 보면 RDB가 더 자연스럽다는 점은 알고 있었습니다. 다만 이미 Firebase 기반으로 운영되던 시스템을 전면 전환하면, 개발 속도와 현업 협업 방식이 크게 흔들릴 수 있었습니다. 저는 Firestore를 유지하되 진실원(SSoT)을 하나로 못 박고, 그 값을 바꾸는 모든 코드가 공통 함수 한 곳을 거쳐 파생 데이터까지 한 번의 배치로 동기화하게 했습니다. 같은 진행상태가 여러 컬렉션에 흩어져 "진실원은 계약완료인데 화면은 옛값이라 미완료 탭에 갇히는" 문제는, 과거에 어긋난 데이터는 멱등 스크립트로 보정(불일치 12건 → 0건)했습니다. 나아가 이 원칙을 'NoSQL 정합성 규칙'으로 문서화하고 PR 머지 게이트로 강제했으며, 정합성 감사 cron으로 문제가 커지기 전에 먼저 확인·보정하는 흐름까지 붙였습니다. 개인의 주의력이 아니라 프로세스가 정합성을 지키게 만들었습니다.

04

비용이 곧 읽기다 — 폭증을 사전에 막는 규칙

Firestore는 읽은 문서 수만큼 과금됩니다. 목록을 한 번에 500건씩 불러오던 패턴은 진입 한 번에 500 read를 쓰는 구조라, 동시 사용자가 늘수록 무료 한도가 순식간에 소진됐습니다. 전사 목록을 커서 페이지네이션(페이지당 30건)으로 통일해 진입당 읽기를 500 → 30건, 16배 이상 절감하고, CRM을 1분마다 폴링하던 동기화 cron 10개는 아예 폐기하고 1회성 마이그레이션으로 대체해 상시 폴링 비용을 없앴습니다. 권한을 한 단계 좁히면서 목록 read마다 권한 확인 read가 1건씩 붙는 비용까지 도입 전에 직접 산정한 뒤 결정할 만큼, 보안이든 성능이든 Firestore read 과금을 코드 한 줄의 판단 기준으로 둡니다.

05

코드 리뷰어가 없으니, 내 작업을 스스로 점검할 도구가 필요했습니다

1인 개발 환경에서는 제 작업의 품질을 짚어줄 코드 리뷰어가 없었고, 그래서 "이번 달 내가 한 일이 정말 의미 있는 작업이었나"를 스스로 객관적으로 돌아볼 방법이 필요했습니다. 그 고민의 해법으로 머지된 실작업 PR을 난이도·안정성·임팩트 3축(합계 0~10)으로 채점하는 결정론적 순수 함수 엔진을 직접 만들었습니다. 채점 규칙이 흔들리지 않도록 Vitest 골든테스트로 기준을 고정하고, GitHub PR을 매일 수집해 월별 평가 대시보드로 잇는 파이프라인까지 구축했습니다. 다만 자동 점수가 사람을 평가할 만큼 정교하지 않다는 것도 알기에, 점수는 회고의 초안으로만 두고 최종 판단은 제가 직접 검토해 확정하도록 설계했습니다. ML이나 LLM 없이 규칙 기반으로 만든 작은 도구지만, 덕분에 매달 같은 잣대로 제 작업을 돌아보고 다음 달을 계획하는 습관이 생겼습니다.

06

나의 강점 — 문제 해결에 대한 두려움이 없습니다

낯선 기술이나 처음 보는 환경도 직접 부딪혀 보며 방법을 찾아냅니다. 문제를 끝까지 파고드는 집요함이 결국 해결에 다다르게 한다고 믿습니다. 다양한 경험 덕에 새로운 상황에 대한 두려움이 적고, 기존 경험과 지식을 바탕으로 늘 새로운 방식으로 문제를 풀어냅니다.


History

경력 · 프로젝트 · 자격

경력

청암 / 청암홈윈도우 · 대리 2025.05 – 현재 사내 유일 개발자 — 전사 ERP·CRM·인프라 단독 책임
포인스 · 게임 스타트업 공동창업 2020 예비창업패키지 선정 경험 · Unity 디펜스 게임 프로토타입 개발·기획 (2인)
한국피엘에이 · 사원 2020.12 – 2022.05 물류창고 운영·입출고 재고 관리, 현장 인력 스케줄 매니지먼트
극동전자정밀 · 사원 2016.03 – 2018.05 하네스 커넥터 제조업체 생산·제조 공정 지원

자격 · 어학

정보처리기사 필기 합격
컴퓨터활용능력 2급 필기 합격
중국어 HSK 5급 중국 거주 경험 · 비즈니스 회화

인적사항

생년월일 1996.03.13
연락처 010-5694-3013
이메일 cookie3013@naver.com

학력

서울디지털대학교 · 소프트웨어공학과 졸업 소프트웨어공학 전공 (학사)

교육

AI Agent 개발자 취업연계 (RPA) 2025 ICT콤플렉스 · 정상 수료
클라우드 자바 풀스택 (Spring·React·Flutter) 2024.08 – 2025.01 하이미디어 아카데미 · 정상 수료
해외 비즈니스 중국어 (건설산업 협상) 2018.12 – 2019.02 정상 수료 · 중국 거주 경험과 연계
2D 게임프로그래밍 개발자 양성과정 2015.04 – 2015.09 정상 수료 · 프로그래밍 입문 (응용SW엔지니어링)

이수 · 학습 기술

Spring Boot · JPA · MyBatis React · Flutter Docker · Jenkins (CI/CD) FastAPI HuggingFace 모델 호출 양자화 · 파인튜닝 벡터DB · RAG RPA (UiPath) Unity · C# Godot · 게임개발