노인수 Andrew Noh

Senior Backend Engineer – High-Reliability Systems
notho0@naver.com
010-3955-5041
Seoul, South Korea

Professional Summary

성공 케이스보다, 실패 케이스를 전제로 시스템이 어떻게 버틸지부터 설계합니다.
비성수기 평일 기준 일평균 100만 건(승인 40만, 취소 10만, 예약/기타 50만)의 트랜잭션을 안정적으로 수용하기 위한 차세대 결제 플랫폼 아키텍처를 설계했습니다. 외부 시스템 장애를 필연적인 상수로 정의하고, 망취소-자동롤백-배치보정으로 이어지는 다중 방어선을 구축하여 데이터 정합성을 사수합니다. 단순히 짧은 코드보다 업무 흐름이 투명하게 읽히는 코드를 지향하며, 추상화의 비용과 실익을 냉철하게 따져 의사결정합니다.
  • Scalability: 누적 2억 건(7개월 운영 규모) 데이터 환경에서 성능 저하 없는 쿼리 및 인덱스 최적화 검증
  • Data Integrity: 1원 오차 및 마이너스 잔액 발생을 원천 차단하는 Fail-Fast 도메인 모델 설계
  • Modernization: 파편화된 VAN/PG 인터페이스를 Adapter Pattern으로 표준화하여 연동 생산성 극대화

Technical Skills

Architecture
Payment Orchestration Fail-Safe Design ISO 8583 Spring Batch
Backend & Data
Java 17/21 Spring Boot 3.x Oracle / Tibero Redis JPA / QueryDSL
Protocol & Security
Signal Protocol (E2EE) Netty JNA (Java Native Access) WebRTC

Work Experience

VitzroSys (비츠로시스) 2025.04 — 현재
차세대 결제 플랫폼 설계 및 고도화 (Next-Gen Architecture Design)
  • SRT 차세대 결제 플랫폼 설계: 평일 100만 건 규모의 트래픽 분석을 통한 고가용성 결제 엔진 및 정산 모듈 아키텍처링.
  • Interface Standardization: 10개 이상 VAN/PG사의 파편화된 규격을 어댑터 패턴으로 통합하여 신규 연동 기간을 3일 이내로 단축.
  • Performance Proof: 실 운영 7개월 치에 해당하는 2억 건 데이터 적재 테스트를 통해 장기 운영 성능 안정성 확보.
Investy (인베스티) 2022.10 — 2025.10
백엔드 코어 개발 (Security & Legacy Migration)
  • 보안 관제 시스템: 네트워크 차단 환경을 우회하는 Server를 독자 구축하여 클라우드 벤더 락인(Vendor Lock-in)을 해소했습니다.
  • EV 충전 플랫폼: Maven/Legacy Spring을 Spring Boot 3.x로 마이그레이션하여 빌드 및 배포 속도를 50% 단축했습니다.
  • 비용 최적화: Google Maps API 의존성을 제거한 자체 위치 DB(GADM 활용) 구축으로 월 운영비 xxx만 원을 절감했습니다.
주식회사 파라다이스세가사미 2018.07 — 2022.02
Non-IT
  • 호텔리어 근무
  • 고객 서비스 운영 및 관리 대처 능력 등 소프트 스킬을 배양했으며, 이후 반복되는 수동 운영 업무를 시스템으로 자동화하여 비즈니스 효율을 극대화하는 엔지니어링의 가치에 매료되어 백엔드 개발자로 커리어를 전환했습니다.
(주)호텔롯데 시그니엘서울 2017.02 — 2017.07
Non-IT

Education & Background

극동대학교 2011.03 — 2017.02
관광경영학과 학사 졸업
Training & Certifications
  • 정보처리기사: 필기 합격 (2025.02) 및 실기 예정
  • JAVA 개발자 양성과정 (2022.02~2022.09): Java, Spring Framework 기반 웹 서비스 개발 및 팀 프로젝트 수행
  • IoT/임베디드 프로그래밍 개발자 양성과정 (2017.09~2017.12): C/Linux(Ubuntu) 환경 제어, Python/Flask 및 AWS EC2를 활용한 비영리단체 웹 플랫폼 구축·운영
  • Rapid Developer Certification: Mendix (2024.11)
Career Description
🚀 [SR-MaaS] 통합정보시스템 구축 사업 - 결제 플랫폼
2025.04 — 현재
Role
결제 코어 전담 개발 (초기 설계부터 운영 이관까지)
Tech Stack
Java 17, Spring Boot 3, Oracle, Spring Batch
1. 외부 연동 암호화 규격 불일치 해결
Issue
페이코 연동 시 공식 문서(AES-128)와 실제 응답 패킷이 달라 복호화 실패.
Action
로그 단위 비교 분석을 통해 문서에 명시되지 않은 고정 IV 값과 AES-256 사용을 역추적해냈습니다. 이를 기반으로 공식 가이드 수정을 요청하고 연동을 정상화했습니다.
2. 결제 1원 오차 방어를 위한 금액 도메인 모델 설계
Problem
복합 결제 후 부분 취소 및 다양한 금액 처리 서비스 분산으로 인한 정산 불일치 발생 리스크.
Solution
서로 다른 금액 데이터를 일관된 구조로 다루기 위해 금액 표준화 모델을 설계했습니다. 결제 수단별 잔액과 분배 책임을 가지는 Allocation 모델을 통해 사용 가능 금액을 자동 검증하고, 필요한 금액을 순차적으로 이동시켜 자금 정합성을 확보했습니다.
Fail-Fast
"마이너스 잔액은 절대 존재할 수 없다"는 불변식을 생성자에 강제하여, 잘못된 계산 로직이 DB에 커밋되기 전 즉시 Exception을 발생시켜 데이터 오염을 원천 차단했습니다.
3. 외부 연동 실패를 전제로 한 Fail-Safe 아키텍처
Failure
PG사 승인은 성공했으나 내부 DB 저장 실패(Dual Write 문제) 시, 고객 돈은 나가고 표는 없는 치명적 상황 발생.
Solution
[요청 기록 → 승인 요청 → 응답 기록 → 확정] 4단계 상태 전이 로직을 구현했습니다. 내부 저장 실패 시 즉시 망취소(Net-Cancel)를 수행하고, 망취소 실패 시 배치 등록 후 재시도를 통해 미확정 거래가 자동 취소되도록 다중 방어 체계를 설계했습니다.
4. 레거시(ISO 8583) 통신 및 역분개 정산 시스템
Action
FEP(Front End Processor) 레벨의 TCP 소켓 모듈을 직접 구현하여 전문 파싱 로직을 내재화했습니다. 취소 시 원거래 데이터를 삭제하지 않고, 상쇄 데이터(-금액)를 적재하는 역분개 방식을 적용하여 모든 자금 흐름을 사후 추적할 수 있도록 설계했습니다.
🔒 국가기관 보안 메신저 및 관제 시스템
2024.10 — 2025.03
1. Signal Server 독자 구축 (Cloud 종속성 제거)
Constraint
외부 클라우드 불모지 및 망 분리 환경에서 Signal Protocol의 E2E 암호화 구현 필요.
Solution
오픈소스 Signal Server의 AWS 종속성(DynamoDB, SQS)을 제거하고, Redis와 MySQL 조합으로 경량화 재구축했습니다. 수천 개의 세션 키(PreKey) 관리 로직을 최적화하여 단일 서버에서도 안정적인 메시지 라우팅 처리가 가능하도록 구현했습니다.
2. 네트워크 차단을 우회하는 터널링 아키텍처
Problem
특정 국가의 DPI(Deep Packet Inspection) 시스템이 메신저 패킷 패턴을 탐지하여 차단.
Solution
앱과 서버 간 통신을 네트워크 차단 환경에서도 유지하기 위한 커스텀 터널링 구조를 설계하여 서버 IP를 은닉하고 트래픽을 난독화했습니다.
Trade-off
터널링으로 인해 레이턴시가 평균 200ms 증가했으나, '전송 속도'보다 '연결 생존성'이 핵심 요구사항이었으므로 이를 수용했습니다.
⚡ 한화모티브 전기차 충전 플랫폼 리팩토링
2023.12 — 2024.10
1. Legacy Refactoring 및 의존성 격리
Legacy
XML 설정 기반 Spring Legacy와 외부 업체 C 라이브러리가 혼재되어 수정 시 사이드 이펙트 예측 불가.
Solution
Spring Boot 3.x로 전환하며 Java Config로 설정을 명시화했습니다. 외부 라이브러리 호출부는 Interface로 추상화하여 격리하고, 실제 구현체는 JNA로 연결하여 비즈니스 로직과 기술 코드를 분리했습니다.
2. JNA 기반 결제 모듈 내재화
Issue
구형 리더기(EUC-KR)와 신형 서버(UTF-8) 간 인코딩 충돌로 결제 실패 빈번.
Action
JNA(Java Native Access)를 통해 C 메모리 영역에 직접 접근하여 인코딩 변환 브릿지를 구현했습니다. 블랙박스였던 결제 프로세스를 내재화함으로써 블랙박스였던 외부 라이브러리 의존성을 제거하고, 결제 정합성 제어권을 100% 내재화하여 장애 복구 골든타임을 확보했습니다.
3. WebClient 기반 비동기 추천 엔진
Logic
[광고 > 추천 > 최저가 > 거리] 순의 Waterfall 추천 알고리즘을 적용했습니다. WebClient의 Non-blocking I/O를 활용하고, 타임아웃 발생 시 기본값(거리순)으로 Fallback 처리하여 장애 확산을 방지했습니다.
🌏 위치 기반 SNS 및 NFT 마켓플레이스 '1ECO'
2023.02 — 2023.09
비용 절감을 위한 Geo-Spatial DB 자체 구축
Cost
Google Maps API 호출 비용 과다로 서비스 확장에 걸림돌.
Action
행정구역 폴리곤 데이터를 자체 DB(Spatial Index)에 구축하여 API 의존성을 제거, 월 1,000만 원 비용 절감을 달성했습니다.