Open to Work

안녕하세요,
이승구입니다

아키텍처 설계부터 프론트엔드, 인프라 운영까지 —
프로덕션 레벨의 시스템을 만드는 Senior Fullstack Developer

SCROLL

동작하는 코드를 넘어,
운영 가능한 시스템을 만듭니다

5년 이상의 실무 경험을 통해 백엔드 아키텍처 설계부터 크로스플랫폼 모바일 개발, 프로덕션 인프라 구축까지 전체 스택을 아우르는 역량을 갖추었습니다.

기술적 의사결정에서 트레이드오프를 명확히 인식하고, 현재 규모에 맞는 적정 기술을 선택하는 것을 중요하게 생각합니다. 과도한 엔지니어링보다는 문제에 맞는 해결책을 선호합니다.

대기업 그룹사 통합 인사(HR) 시스템에서 3년간 도메인 신규 구축 → 플랫폼 현대화 → AI 기능 도입의 전 과정을 수행했고(커밋 4,491건), 개인 프로젝트로는 KakaoTalk 스타일 실시간 메시징 플랫폼을 1인 풀스택으로 설계·구현·운영하며 프로덕션 레벨의 기술 과제를 해결했습니다.

5+
Years Exp
4.4K+
Commits · 3y
82%
Coverage
1.4K+
Tests

기술 스택

백엔드 아키텍처부터 모바일 클라이언트, 인프라까지

Backend
Java 25Spring Boot 3.xJPAQueryDSLWebSocketRedisPostgreSQLRabbitMQElasticSearchMinIO
Frontend
Vue 3NuxtFlutterDartBLoCDriftSTOMPgo_router
AI Engineering
RAGLLM Tool CallingHybrid Search (BM25+kNN)Prompt CachingSSE StreamingOCR + LLMMCP Server (TypeScript)
Infrastructure
DockerNginxPrometheusGrafanaLokiZipkin
Architecture
HexagonalMicroservicesEvent-DrivenDDDTDDClean Arch
DevOps
CI/CDCanary Deployk6MonitoringAlerting

프로젝트

서로 다른 도메인에서 다양한 기술 과제를 해결한 경험

PROJECT 01 · ENTERPRISE · 3 YEARS

Enterprise HR Platform · 통합 인사 시스템

대기업 그룹사 통합 인사 시스템 3년 실무. 채용·승진·건강검진 도메인 신규 구축, 레거시 Spring → Spring Boot 3.5 플랫폼 현대화, OCR·LLM·RAG 챗봇 등 AI 기능 실무 도입.

Java 25Spring Boot 3.5JPA·QueryDSLVue 3ElasticsearchLLM·RAG
3
Years
4,491
Commits
250
Tasks
3,184
Tests
자세히 보기
PROJECT 02 · SOLO FULLSTACK

Co-Talk · 실시간 메시징 플랫폼

KakaoTalk 스타일 실시간 메시징. Hexagonal Architecture + Redis Pub/Sub 멀티 인스턴스 브로드캐스팅, 카나리아 배포 자동화, Flutter 크로스플랫폼 4개 OS.

Java 25Spring Boot 3.5FlutterPostgreSQLRedisWebSocket
1.4K+
Tests
82%
Coverage
14
Alert Rules
4
Platforms
자세히 보기
PROJECT 03 · SOLO BACKEND

감성카트 · E-Commerce Platform

멀티 모듈 마이크로서비스 이커머스 (8개 모듈). Redisson MultiLock 동시성 제어, ElasticSearch Nori 한국어 검색, Redis 쓰기 버퍼 패턴.

Java 21Spring Boot 3.4RabbitMQElasticSearchRedis StreamsRedisson
8
Modules
2
Brokers
4
ES Indices
60x
Write Reduction
자세히 보기
PROJECT 04 · SOLO BACKEND

Flow · 실시간 대기열 시스템

티켓팅·수강신청 버스트 트래픽 제어. Spring WebFlux 논블로킹 리액티브 + Redis Sorted Set 대기열, VIP 우선순위 스코어 설계, Pub/Sub 실시간 알림. TDD 개발.

Java 21Spring Boot 3.4WebFluxReactive RedisPub/SubTDD
3x
Throughput
-40%
Memory
92%
Coverage
O(logN)
Rank Lookup
자세히 보기
PROJECT 05 · SOLO BACKEND

Flash Ticket · 선착순 예매 플랫폼

수만 명 동시 접속을 견디는 선착순 티켓 예매. Hexagonal Architecture, 멱등성 키 중복 차단, TTL 임시 홀드, Kafka 비동기 후처리, Testcontainers 동시성 테스트.

Java 25Spring Boot 4.0PostgreSQLRedisKafkaHexagonal
6
Core Domains
78
Commits
Java 25
Latest LTS
4.0
Spring Boot
자세히 보기
PROJECT 06 · LEARNING

Payment System · 견고한 결제 시스템

체크아웃 → PSP 승인 → 정산 → 복식부기 원장 → 복구까지. Kotlin + Kafka 3개 마이크로서비스, Transactional Outbox·멱등 소비·DLQ·Recovery Scheduler 신뢰성 패턴.

KotlinKafkaPostgreSQLOutboxDLQHexagonal
3
Microservices
5
Reliability Patterns
56
Commits
Kotlin
Language
자세히 보기
PROJECT 07 · AI AGENT PIPELINE

Momently · AI 블로그 자동화

사진을 네이버 블로그 글로 바꾸는 멀티에이전트 파이프라인. Spring 오케스트레이터 + FastAPI LLM 에이전트 10단계, 상태 머신 재개(아티팩트 재사용), SSE 콘솔, Chromium 발행 확장.

Spring BootFastAPILLM AgentsReact 19SSEChrome Ext
10
Pipeline Steps
6+
LLM Agents
4
Apps
ADR
Driven Docs
자세히 보기
PROJECT 08 · SOLO PRODUCT

Algofit · 알고리즘 학습 앱

기획·디자인부터 학습 콘텐츠까지 1인 제품화. Flutter 모바일 + React PC 웹 + Node(Hono·SQLite) 동기화 서버, last-write-wins 오프라인 우선 동기화, 문서 주도 개발.

FlutterReactTypeScriptHonoSQLiteADR
3
Clients+Server
80
Questions
MVP
Must 완료
LWW
Sync
자세히 보기

기술적 의사결정과 문제 해결

무엇을 만들었는지보다, 왜 그렇게 결정했고 어떤 문제를 어떻게 풀었는지가 중요합니다

HR PLATFORM

왜 JPA 쿼리 런타임 핫스왑인가

운영 장애 시 쿼리 한 줄 수정에도 배포가 필요했음. 배포 없이 운영 중 쿼리를 교체하는 AOP 기반 프레임워크를 설계하되, dry-run 롤백 격리·@Modifying 차단·TTL 클램프로 오남용을 다층 차단.

HR PLATFORM

왜 BM25 + kNN 하이브리드 검색인가

RAG 챗봇에서 사내 용어·코드명 질의는 키워드 매칭(BM25)이, 자연어 질문은 의미 검색(kNN)이 강함. RRF로 두 순위를 융합해 양쪽 질의 유형을 모두 커버. 권한 필터는 fail-closed로 설계.

CO-TALK

왜 SimpleBroker + Redis Pub/Sub인가

StompBrokerRelay + RabbitMQ는 추가 인프라가 필요합니다. 이미 캐시/Rate Limit용으로 Redis를 사용 중이었기에, Redis Pub/Sub으로 인스턴스 간 메시지를 브로드캐스팅. 추가 인프라 비용 제로로 멀티 인스턴스 동기화 달성.

CO-TALK

왜 Hexagonal Architecture인가

도메인 외부 의존성을 제로로 만들고, InMemory 어댑터로 인프라 없이 서비스 테스트 가능. ArchUnit 9개 규칙으로 CI에서 아키텍처 위반 자동 검증. 65개 UseCase(1:1 Service) 원칙.

감성카트

왜 Redisson MultiLock인가

DB 비관적 락은 커넥션을 오래 점유하여 DB 부하 유발. Redisson 분산 락은 Redis 기반으로 부하를 분산하고, MultiLock은 N개 상품 락을 정렬 순서로 획득하여 데드락을 원천 차단.

감성카트

왜 RabbitMQ + Redis Streams 하이브리드인가

단일 브로커는 모든 요구사항을 최적으로 충족하기 어려움. 주문/결제 핵심 이벤트는 RabbitMQ 메시지 보장, 검색/집계 보조 이벤트는 Redis Streams 저지연으로 역할 분리.

실전 트러블슈팅

HR PLATFORM

운영 ajax 산발 401의 근본 원인 규명

문제 정의

운영 환경에서 ajax 요청이 간헐적으로 401. 재현이 되지 않아 장기간 원인 미상.

핵심 설계

curl 재현 + ELK 로그 분석으로 동시 요청 세션 읽기 miss401 응답의 익명 세션 쿠키 오염 증폭 구조를 입증 후 각각 수정.

결과

산발 401 재발 제로. "재현 불가" 장애를 추측이 아닌 로그 근거로 입증·수정.

HR PLATFORM

라이브러리 상향 후 엑셀 전면 장애 복구

문제 정의

보안 이슈로 POI 상향 후, 소스 수정이 불가능한 상용 그리드 서버모듈과 바이너리 비호환 → 엑셀 다운로드 전면 장애.

핵심 설계

벤더 모듈을 바이트코드 호환 패치로 처리해 90개 화면 복구. 동일 유형 잠재 위험 전수 audit + 회귀 테스트.

결과

소스 접근 없이 전면 장애 복구. 의존성 상향 영향 범위를 전수 검증하는 절차 확립.

CO-TALK

메시지 전달 파이프라인 Observability 설계

문제 정의

Redis Pub/Sub 멀티 인스턴스 브로드캐스팅에서 "메시지가 정말 모든 사용자에게 전달되는가?"를 증명할 방법이 없었음.

핵심 설계

전달 경로 4단계에 Micrometer 메트릭 삽입. 10개 커스텀 메트릭 + DeliveryImbalance 알림(인스턴스 간 전달량 50%+ 편차 → 부분 장애 감지).

결과

"3개 중 1개만 장애"인 부분 장애까지 선제적 감지. 사용자 리포트 없이 숫자로 전달 상태 증명.

CO-TALK

카나리아 배포 "안전한 배포" 기준 정의

문제 정의

Blue-Green에서 트래픽 전환 시 전체 서비스가 동시에 영향. "배포가 안전한가?"의 객관적 기준 부재.

핵심 설계

5xx > 5%를 임계값으로 정의. app-1 카나리아 → 60초 대기 → Prometheus API 자동 쿼리 → 초과 시 :previous 자동 롤백.

결과

장애 영향 전체 → 1/3 축소. 수동 판단 제거로 human error 방지. 프로덕션 트래픽 기반 검증.

감성카트

다중 상품 동시 주문의 재고 데드락 방지

문제 정의

N개 상품 동시 주문 시 락 획득 순서가 다르면 교착 상태 발생. DB 비관적 락은 커넥션 풀 고갈 위험.

핵심 설계

Redisson MultiLock + 상품 ID 오름차순 정렬. 모든 스레드가 동일 순서로 락 획득 → 데드락 원천 차단. DB 부하를 Redis로 분산.

결과

동시 주문 재고 정합성 100% + 데드락 제로. 커넥션 점유 시간 대폭 감소.

감성카트

검색 인기도 실시간 반영 vs ES 쓰기 부하

문제 정의

주문마다 ES 직접 업데이트 시 세일 트래픽 → ES 쓰기 폭증 → 검색 응답 지연이라는 cascading failure 위험.

핵심 설계

RabbitMQ → Redis HINCRBY 원자적 집계 → 60초 배치 플러시 → ES Painless 스크립트. "60초 이내면 체감상 실시간" 판단.

결과

ES 쓰기 부하 60배 감소. 세일 폭증에도 Redis가 흡수하여 ES 안정성 보호.

함께 일하고 싶으시다면

새로운 도전을 찾고 있습니다. 편하게 연락주세요.