Backend · Cloud Infrastructure

백엔드부터 배포·운영까지
다루는 개발자입니다

API 설계와 데이터 처리, 컨테이너 인프라와 배포 권한 관리까지 — 서비스가 실제로 동작하는 전 과정을 직접 만들고 테스트로 검증한 프로젝트를 모았습니다.

프로젝트

대표 프로젝트 4

No.1

stock-monitor

증권사 Open API 연동 관심종목 알림 · 자산 대시보드

2026.08

토스증권 Open API를 연동해 관심종목 알림과 자산 대시보드를 한 서비스로 제공하는 백엔드 중심 프로젝트입니다. 실계좌 연동 동작까지 확인했고, API 키 없이도 Mock 시세로 전 기능이 동작하도록 설계했습니다.

  • Java 21
  • Spring Boot
  • Spring Data JPA
  • React
  • TypeScript
  • H2/MySQL
자세히 보기

주요 기능

  • 관심종목 시세·손익, 보유종목, 자산 추이를 한 화면에서 보여주는 대시보드 (일봉 캔들 차트 자체 SVG 렌더링)
  • 목표가/등락률/거래량 급증/52주 신고가·신저가 등 6가지 조건의 알림 규칙, 디스코드·이메일·인앱 채널 발송
  • 60초 주기 스케줄러로 알림 조건 평가, 매일 자산현황 요약을 보내는 다이제스트 이메일

설계

  • TossApiClient 인터페이스로 Mock/실 API 구현체를 분리해, 키가 없어도 랜덤워크 가상 시세로 전 기능이 동작하도록 설계

트러블슈팅

  • 문서화되지 않은 API 응답 구조를 직접 호출해 검증하고, 매핑을 회귀 테스트로 고정해 스키마 변경 시 조용히 깨지지 않도록 방지
  • gzip 압축 에러 응답 처리, 타임존이 밀리는 캔들 타임스탬프를 문자열로 파싱하는 등 실 API 연동 과정의 예외 케이스 대응

배운 점

  • 실계좌 연동까지 검증하며 외부 금융 API의 인증·에러 처리·레이트리밋 대응 경험
  • 민감정보(키·계좌번호)를 레포에 커밋하지 않고 환경변수로만 주입하는 설계 원칙 적용
No.2

AWS 얼마야? (Awscal)

초보자용 AWS 비용 계산기

2026.10

"하고 싶은 것"을 고르면 필요한 AWS 구성안 2~3가지와 예상 월 비용을 비교해 주고, 쓸 서비스를 이미 안다면 직접 담아 합계를 계산할 수 있는 웹 계산기입니다. AWS 계정이나 API 키 없이 쓸 수 있는 정적 사이트이고, 가격 데이터는 매주 자동으로 갱신됩니다.

운영 지표 Google Analytics
  • 수집 중 실사용자 수
  • 수집 중 검색 유입
  • 수집 중 페이지뷰

데이터 정보 수집 중 · 업데이트 예정

  • JavaScript
  • HTML/CSS
  • Python
  • GitHub Actions
  • GitHub Pages
자세히 보기

주요 기능

  • 구성 추천 — 템플릿 5종(정적 웹사이트·백엔드 웹앱·WordPress·서버리스 API·개발용 단일 서버) × 규모 프리셋 3종 × 리전 6곳
  • 항목별 금액과 "이 비용은 왜 나오나요?" 설명, 퍼블릭 IPv4·NAT Gateway·데이터 전송·Multi-AZ 등 숨은 비용 경고
  • 직접 계산 — EC2·RDS·S3·Lambda·ECS Fargate 등 16종 서비스를 담아 사용 시간·Multi-AZ 옵션까지 반영해 합계 계산

설계가격 데이터 파이프라인

  • AWS Price List Bulk API의 공개 CSV를 스트리밍으로 읽어 필요한 SKU만 추출(인증 불필요, 표준 라이브러리만 사용)
  • GitHub Actions가 매주 월요일 가격을 다시 수집해 커밋·재배포하고, 항목 누락이나 단가가 애매하면 실패 처리해 기존 가격을 유지

설계계산 엔진 · 배포

  • 계산 엔진을 DOM과 분리하고 Node 내장 테스트 러너로 단위 테스트, 템플릿은 JSON만 수정하면 추가되도록 데이터 주도 구조로 설계
  • 빌드 없는 순수 HTML/CSS/JS 정적 사이트라 서버·운영비 없이 GitHub Pages로 배포

검증·결과

  • MVP 기준 리전(서울·버지니아)의 템플릿 × 프리셋 × 구성안 66개 조합을 AWS 공식 계산기와 교차 검증하는 체크리스트(±10% 기준)를 자동 생성
  • 현재 공식 계산기와 2건 비교, 모두 ±10% 이내 (서울·개인용 기준 개발용 서버 EC2 단독 0.07%, 백엔드 웹앱 EC2 + RDS 1.9% 차이)
No.3

AI 뭐 써? (which-ai)

목적별 AI 툴 비교 도우미

2026.10

"회의록 정리하고 싶은데 뭐 써?"처럼 하고 싶은 일을 고르면, 맞는 AI 툴 2~3개를 이유와 함께 비교해 주는 비개발자용 선택 도우미입니다. 같은 엔진으로 개발 단계별 도구를 비교하는 개발자용 버전도 함께 운영합니다.

실제 툴 데이터 입력 중 · 업데이트 예정

  • JavaScript
  • HTML/CSS
  • Node.js
  • GitHub Actions
  • GitHub Pages
자세히 보기

문제 정의

  • AI 툴이 너무 많아 비개발자는 어떤 일에 뭘 써야 하는지, 무료인지, 회사 자료를 넣어도 되는지 판단하기 어려움
  • 기존 AI 디렉터리는 수천 개를 나열만 해서 오히려 고르기 힘듦 — 목록 대신 목적과 조건으로 2~3개만 골라 비교

주요 기능

  • 하고 싶은 일 10가지 중 하나를 고르면 추천 카드 2~3개와 대표 추천 이유, 무료·학습 정책·한국어 배지를 바로 비교
  • 결과 위 조건 칩(무료만·보안 중요·한국어 중요·휴대폰 앱)으로 즉시 다시 추천, 나머지 후보는 접힌 목록에 같은 순서로 보존
  • 개발자용 버전 — 기획·코딩 에이전트·배포 등 9단계에서 공식 AI 툴과 오픈소스 프로젝트를 섹션별로 비교

설계규칙 기반 추천

  • 사이트에서 LLM을 호출하지 않고, 목적별 기능 체크리스트 4개 중 지원 개수와 조건으로 점수를 계산해 같은 입력이면 항상 같은 결과
  • 확인 안 된 값은 "확인 필요"로 표시하고, 보안 조건에서는 학습 정책을 모르는 툴을 추천하지 않음

설계데이터 신뢰

  • AI는 공식 페이지를 근거로 초안만 쓰고, 사람이 근거 문장을 대조한 뒤에만 실제 데이터로 옮기는 흐름
  • 출처는 해당 툴의 공식 도메인만 허용하고, 가격·정책마다 출처와 확인 날짜를 남겨 90일이 지나면 "확인 필요" 표시

검증·결과

  • Node 내장 테스트 러너로 단위 테스트 120개 이상과 데이터 검사를 통과해야만 GitHub Pages에 배포
  • 매주 월요일 툴 정보 신선도와 링크를 자동 점검해 확인할 목록을 Issue 하나에 모으고, 모두 처리되면 자동으로 닫음

한계

  • 실제 툴 데이터는 공식 근거를 확인한 순서대로 입력 중이며, 화면은 예시 데이터로 먼저 검증
  • 비개발자 대상 사용성 테스트는 진행 전
No.4

Deploy-gate

claims 기반 인프라 배포 승인 게이트

2026.07 – 2026.08

CI/CD 파이프라인에서 배포 직전에 호출되어, 요청자가 해당 인프라 스택을 배포할 권한이 있는지 판단하는 인가 서비스입니다. 저장소 write 권한만으로는 구분되지 않는 "이 스택을 배포해도 되는가"를 claims와 정책 매칭이라는 결정론적 규칙으로 판정합니다.

  • Spring Boot
  • Spring Security
  • JPA
  • SQLite
  • React
  • AWS CDK
자세히 보기

문제 정의

  • 저장소 write 권한과 인프라 배포 권한이 동일시되던 문제를 분리
  • 테스트 스택은 즉시 배포, 운영 스택은 승인 필요 — 스택별로 승인 단계를 다르게 적용
  • 배포 승인·거부 이력이 남지 않아 사후 추적이 안 되던 문제를 감사 로그로 해결

설계

  • 승인 단계(없음 / 1인 / 2인)를 ApprovalPolicy 추상 클래스로 다형성 분기하고, 정책은 판단만 하는 순수 함수로 분리
  • 승인권자를 별도 개념으로 두지 않고 "해당 스택의 approve claim 보유자"로 모델링
  • 요청 생성 시점의 필요 승인 수를 스냅샷으로 저장해, 정책이 바뀌어도 진행 중인 요청이 흔들리지 않도록 처리

설계보안

  • 승인·거부의 신원을 요청 본문이 아닌 토큰에서만 도출해 타인 명의 사칭을 차단
  • CI 서비스 토큰은 승인 투표 권한이 없어, 파이프라인 시크릿이 유출돼도 스스로 배포를 승인할 수 없음
  • 요청자 본인이 자기 요청을 승인할 수 없는 4-eyes 원칙 적용, 토큰은 SHA-256 해시로만 저장

부가 프로젝트 5

분야별로 보기 클라우드 · 인프라 2 AI · 업무 자동화 2 모바일 1

클라우드 · 인프라 2

KubeLens

자연어로 질의하는 Kubernetes 장애 진단 에이전트

2026.10

"왜 이 파드가 죽었어?"라고 물으면 클러스터를 read-only로 조회해, 실제 조회 결과를 근거로 붙인 원인 후보와 다음 조치 제안을 보여주는 진단 도구입니다. 쓰기 권한을 RBAC와 코드 양쪽에서 차단하고, 장애 시나리오 6종을 자동 채점하는 평가 하네스로 정확도를 수치로 측정합니다.

  • Python
  • LangGraph
  • FastAPI
  • React
  • TypeScript
  • kind
자세히 보기

설계Read-only by construction

  • RBAC(쓰기·secret·exec 권한 없음)와 코드(get/list만 노출하는 ReadOnlyKube, 8개 도구 allowlist)로 이중 차단
  • 쓰기 API 호출·셸 실행·secret 접근이 소스에 없는지를 AST로 검사하는 테스트까지 작성해 회귀를 방지
  • 로그·이벤트에 섞인 토큰·비밀번호·JWT·AWS 키를 LLM에 전달하기 전에 마스킹, kubeconfig 자체는 LLM에 보내지 않음

설계증거 기반 응답

  • 도구 호출마다 ID를 부여하고, 모든 원인 후보는 실제 존재하는 호출 ID를 1개 이상 인용해야 함 — 없으면 1회 재생성, 그래도 없으면 실패로 표시
  • 질문당 도구 호출 최대 8회, 로그 tail 200줄, 출력 4,000자 절단으로 비용 상한을 둠

검증·결과정확도를 수치로 측정

  • kind 클러스터에 CrashLoopBackOff·ImagePullBackOff·OOMKilled 등 장애 6종(S1~S6)을 재현해 자동 진단·채점하는 평가 하네스 작성
  • 1순위 원인 후보에 정답 키워드가 모두 포함되는지, 증거 검증 실패나 비밀값 노출이 없는지까지 함께 채점

배운 점

  • 에이전트가 쓸 수 있는 도구 수를 8개로 제한하고 allowlist화하는 것이 안전성과 비용 통제에 동시에 효과적이라는 것을 확인
  • LLM 출력에 '근거 인용 의무'를 강제하는 구조가 환각으로 인한 오진단을 크게 줄인다는 것을 체감

멀티클라우드 견적 자동화

AWS · Azure · GCP 가격 API 비교 견적

2026.09

워크로드 스펙(vCPU·메모리·스토리지·리전·OS)을 입력하면 3사 공개 가격 API를 연동해 벤더별 월 비용을 자동 산출하고 비교해 주는 서비스입니다. 견적 이력을 저장해 재활용하고 제안용 PDF 견적서로 내보낼 수 있습니다.

  • Java 17
  • Spring Boot
  • Spring Data JPA
  • React
  • TypeScript
  • MySQL
  • Docker
자세히 보기

주요 기능

  • 동일 스펙 기준으로 AWS·Azure·GCP 월 비용을 산출해 나란히 비교
  • 견적 이력 저장 및 리전·벤더·기간 필터 조회, 견적서 PDF 내보내기
  • 스케줄러가 매일 벤더별 가격을 수집해 캐싱

설계

  • 외부 가격 API를 요청 경로에서 직접 호출하지 않고 스케줄러가 수집해 캐시를 서빙 — 응답 속도를 확보하고 외부 API 장애 시에도 마지막 캐시로 서비스가 지속
  • 동기화를 벤더·리전·OS 조합 단위로 분리해, 한 벤더가 실패해도 나머지 캐시는 유지되도록 처리
  • 요청 스펙 이상인 SKU 중 최저 월비용을 매칭하고, 매칭되는 SKU가 없으면 견적을 실패시키지 않고 사유를 담아 반환

한계

  • Azure 가격 API가 vCPU·메모리를 제공하지 않아 SKU명을 파싱해 스펙을 유추 (비율이 불규칙한 시리즈는 매칭에서 제외)
  • 스토리지 단가는 벤더별 표준 SSD 근사치를 설정값으로 사용

AI · 업무 자동화 2

보안입찰 RFP 매칭

요구사항 · 제품 스펙 갭분석 자동화

2026.09

공공기관 입찰공고를 Open API로 수집하고, RFP 요구사항을 보안장비 스펙과 대조해 충족 · 부분충족 · 미충족 · 확인불가 갭분석표를 자동으로 만들어 주는 시스템입니다. 공고마다 요구사항을 제품 카탈로그와 한 줄씩 대조하던 작업을 코드로 옮겼습니다.

  • Java 17
  • Spring Boot
  • Spring Data JPA
  • React
  • TypeScript
  • MySQL
자세히 보기

주요 기능

  • 입찰공고 Open API를 키워드(침입방지·방화벽·DDoS 등)로 주기 폴링해 캐싱
  • 공고별 요구사항 등록과 자사 제품 스펙 CRUD
  • 요구사항과 스펙을 대조해 충족률·필수 미충족 건수까지 요약한 갭분석표 산출

설계판정 규칙

  • 외부 API 연동이 아니라 직접 설계한 도메인 판정 규칙이 핵심 — 처리성능·인증등급 등 요구사항 유형별로 비교 규칙을 분리
  • 대응하는 제품 스펙이 없을 때 미충족으로 단정하지 않고 "확인불가"로 분리해, 담당자 확인이 필요한 항목을 드러냄
  • 공고는 실시간 조회 대신 스케줄러로 캐싱해, 외부 API가 죽어도 마지막 수집분으로 화면이 계속 동작
  • 연동 대상 API의 엔드포인트와 인증키는 저장소에 두지 않고 환경변수로만 주입

참고

  • 개인 학습용 프로젝트로, 코드에 등장하는 기관명·제품명은 모두 가상

보험 보장 분석 데모

LLM 기반 소명 근거 자동 생성

2026.02

보험 지급 거절 통보서를 업로드하면 약관을 근거로 소명 가능성과 반박 논리를 자동 생성하는 AI 프로토타입입니다. 문제 정의부터 기획, 개발까지 전 과정을 단독으로 진행했습니다.

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Claude API
자세히 보기

문제 정의

  • 보험 약관의 복잡성 때문에 지급 거절 시 대부분의 고객이 소명을 포기하는 문제에 주목
  • 거절 통보서 한 장으로 약관 역산 → 소명 근거 도출 → 메시지 생성 3단계를 자동화

주요 기능

  • PDF 드래그앤드롭 업로드 후 거절 통보서 자동 분석
  • 보험사·진단명·청구 금액·거절 사유를 카드 형태로 시각화
  • 약관 논리 기반 소명 성공률 예측 및 핵심 반박 근거 자동 추출
  • 소명 편지 자동 작성 및 복사 기능

설계

  • OCR 없이 PDF를 base64로 인코딩해 모델에 직접 전달, 약관 원문 전체를 분석에 활용
  • 시스템 프롬프트로 JSON 구조화 출력을 강제해 프론트엔드에서 바로 파싱
  • API 키를 서버 라우트에서만 처리해 브라우저에 노출되지 않도록 설계

한계

  • 법적 효력이 있는 소명 자료가 아닌 시연 목적의 프로토타입
  • 진료 기록과 결합한 손해사정 리포트 기능은 확장 과제로 남김

모바일 1

Subhelp

구독 관리 iOS 앱

2026.10

흩어진 구독 결제를 한곳에 모아 언제·얼마가 빠져나가는지 미리 알려주는 iOS 앱입니다. 기본은 로그인 없이 기기 저장만으로 전 기능이 동작하고, 원하면 Apple 로그인으로 Supabase에 백업·동기화합니다.

  • Swift
  • SwiftUI
  • SwiftData
  • WidgetKit
  • Swift Charts
  • Supabase
자세히 보기

주요 기능

  • 구독 등록·목록·상세, D-day 배지, 결제 알림(당일/1/3/7일 전), 무료체험 알림
  • 홈·잠금화면 위젯, 카테고리별 지출 도넛 차트, 결제 캘린더, 비싼 구독 순위
  • Apple 로그인 시 Supabase로 백업·동기화, 로그인하지 않아도 기기 저장만으로 전 기능 동작

설계

  • MVVM 대신 @Query + Domain 계층 분리 — 목록 조회는 뷰에서 @Query로, 결제일·금액 계산은 순수 struct로 분리해 단위 테스트 가능하게 설계
  • 금액은 Decimal로 계산해 부동소수 오차를 방지하고, 다음 결제일·월 환산은 저장하지 않고 매번 계산해 데이터 불일치를 방지
  • 동기화는 Last-Write-Wins + 삭제 tombstone(deleted_at)으로 여러 기기 변경을 병합, 수정 시각은 서버 정밀도(밀리초)에 맞춰 저장

트러블슈팅

  • 월말 결제일이 밀리는 문제(1/31 → 2/28 → 3/28)를 "최초 결제일 + n번째 주기"로 재계산해 해결
  • 로컬 알림 64개 한도에 걸리지 않도록 구독마다 다음 2회분만 예약하고, 변경 시 전체를 재예약
  • 위젯과 앱 간 데이터 공유를 App Group 컨테이너의 SwiftData로 구현, 변경 시 WidgetCenter로 위젯을 갱신

팀 프로젝트 2

BangCheck

자취방 계약 체크리스트 서비스

2026.03 – 2026.05

백엔드

자취방 계약 전 점검 항목을 관리하고 방 상태를 기록·공유하는 웹 서비스입니다. 백엔드 4명 중 한 명으로 인증/인가와 배포 인프라를 담당했습니다.

  • Spring Boot
  • Spring Security
  • JPA
  • MySQL
  • AWS EC2
자세히 보기

담당 업무인증 / 인가

  • Naver · Google OAuth2 소셜 로그인 구현 (Spring Security 기반 인증 흐름 설계)
  • JWT 발급 · 검증 · 갱신 처리

담당 업무인프라 / 배포

  • AWS EC2 프로비저닝 및 Elastic IP 고정 할당
  • 도메인 DNS A레코드 연동 및 OAuth2 리다이렉트 URI 운영 환경 반영
  • 프로파일 분리(local / prod)로 환경별 설정 관리

배운 점

  • OAuth2 + JWT 인증 흐름 설계부터 실제 배포까지 전 과정 경험
  • 브랜치 전략·PR 컨벤션 등 팀 협업 규칙을 제안하고 적용

정부 R&D 과제

의료 플랫폼 일부 기능 개발

2025.07 – 2026.01

인턴 개발자 · 담당 기능 개발

정부 R&D 과제로 운영 중인 의료 플랫폼에서, 확정된 기능 명세 중 SW 가상 로깅 화면과 일부 인프라 연동 기능을 담당해 구현했습니다.

  • React
  • TypeScript
  • Spring Boot
  • Kubernetes
  • KubeVirt
  • Harbor
자세히 보기

담당 업무SW 가상 로깅 화면

  • Kubernetes Java Client로 VM·컨테이너 로그를 조회해 프론트에 실시간 시각화
  • Recoil로 선택 상태를 관리하고 JSON·텍스트 로그를 모두 파싱해 렌더링

담당 업무그 외 구현

  • 클러스터 노드 및 Kubernetes 서버 목록 조회 API와 테이블 렌더링
  • Harbor 레지스트리와 Helm OCI Repository를 연동한 패키지 자동 검사 기능

배운 점

  • KubeVirt GPU passthrough 구조와 Kubernetes Extended Resource 개념 학습
  • 짧은 기간 내 낯선 기술 스택을 습득해 실무에 적용

기술 스택

Backend

  • Java
  • Spring Boot
  • Python

Database

  • MySQL
  • MariaDB
  • Oracle

Cloud / Infra

  • AWS
  • Docker
  • Kubernetes
  • Linux

Frontend

  • React
  • TypeScript

협업 / 문서화

  • Git
  • Jira
  • Confluence
  • Notion

업무 도메인

경력과 프로젝트로 직접 다뤄 본 업종입니다.

  • 의료

    정부 R&D 의료 플랫폼 (인턴)

  • 금융 · 보험

    금융 솔루션 전문가 (경력) · 보험 보장 분석 데모

  • 증권

    stock-monitor

  • 공공 조달

    보안입찰 RFP 매칭

  • ERP · 사내 인프라

    CANIAS ERP 개발 · VDI 운영 (현재 업무)

  • 클라우드 비용

    AWS 얼마야? · 멀티클라우드 견적 자동화

  • 부동산 · 주거

    BangCheck

정보

경력

개발자 · 2026.07 – 현재

  • VDI(가상 데스크톱 인프라) 환경 운영 업무 담당
  • 부서 이동 후 CANIAS ERP 개발 업무 수행 중

금융 솔루션 전문가 · 2026.02 – 2026.03

  • 보험 도메인 기획 및 보장 분석 세션 진행
  • 사내 실습으로 LLM 기반 보험 보장 분석 프로토타입 개발

인턴 개발자 · 2025.07 – 2026.01

  • 정부 R&D 과제(의료 플랫폼)의 일부 기능 개발 담당
  • Kubernetes, KubeVirt, Harbor, Helm OCI 등 컨테이너 인프라 기반 기능 구현