About

Java/Spring BootPython/FastAPI로 제품 백엔드 기능을 구현합니다. API 동작, DB 상태, 인증, 권한, 캐시, 트랜잭션이 서비스 규칙과 어긋나지 않도록 확인하는 데 집중합니다.

AI/OCR도 결국 백엔드 데이터 경계 문제로 봅니다. 그럴듯한 AI 결과가 곧바로 최종 데이터가 되지 않도록 스키마, 검증, 사용자 확인 흐름을 분리합니다.

백엔드 역량

인증과 권한

사용자 식별, 계정 소유권, 역할, 쓰기 권한을 API 경계에서 나눕니다.

상태 전이

승인, 참여, 환불처럼 현재 상태에서 가능한 액션만 허용되도록 확인합니다.

트랜잭션과 잠금

공유 데이터 변경은 서비스 계층 경계, 잠금 순서, 타임아웃, 실패 경로까지 봅니다.

캐시 경계

성공 경로뿐 아니라 예외, 비동기, 커밋 전후에서 캐시 무효화가 빠지는 지점을 찾습니다.

API 계약

요청, 응답, 에러, 화면 기대값을 양쪽에서 디버깅할 수 있게 명시합니다.

DB 정합성

폼 검증만이 아니라 unique constraint, 저장 규칙, 엔티티 규칙으로 불변식을 보호합니다.

대표 기술 사례

TFTgogo · Cache

캐시 무효화가 빠지는 세 실행 경로

트랜잭션 커밋 전 삭제, 예외 경로, 비동기 내부 호출에서 캐시 제거가 누락될 수 있는 지점을 봤습니다. transaction-aware cache 처리, finally 정리, 비동기 람다 내부 정리, atomic guard를 적용 방향으로 잡고, 로컬 Caffeine 캐시의 다중 인스턴스 한계도 함께 기록했습니다.

TransactionAwareCacheManagerProxy Caffeine AtomicBoolean
TFTgogo · Concurrency

마지막 한 자리에 두 사용자가 동시에 참여하는 경우

단순 read-check-update 흐름은 두 요청이 모두 정원 검사를 통과할 수 있습니다. 더 안전한 설계는 비관적 잠금, member-to-party 고정 잠금 순서, timeout을 사용합니다. 정원 초과, 중복 참여, 잠금 타임아웃은 검증 범위에 넣고, 전체 멀티스레드 부하 테스트는 한계로 남겼습니다.

PESSIMISTIC_WRITE Lock Order Timeout
TFTgogo · Social Login

이메일이 같아도 다른 소셜 계정인 경우

이메일만으로 계정을 연결하면 소유권이 잘못 귀속될 수 있습니다. provider와 socialId를 함께 식별자로 두고, DB unique constraint로 동시 최초 가입을 방어하며, 충돌 시 이미 생성된 계정을 다시 조회하는 흐름으로 수렴시킵니다.

provider + socialId Unique Constraint Re-query
BOUT · AI/OCR

정상 형식이지만 잘못된 AI/OCR 결과

OCR 응답과 최종 영수증 저장 요청을 분리했습니다. 읽기 어려운 선택 필드는 null로 두고, needs_review와 warnings로 불확실성을 남기며, 사용자가 확인한 값만 최종 저장 경계로 넘깁니다.

Schema Boundary needs_review warnings

프로젝트

BOUT

팀 프로젝트 | 2026.06 ~ 2026.08

BOUT는 전자·가전기기 영수증과 보증 정보를 한곳에 모아두는 아카이빙 앱입니다. 영수증 사진에서 구매일, 제품명, 가격, 무상 AS 기간 후보를 뽑고, 사용자가 확인한 값만 보관 기록으로 저장합니다.

  • 영수증·보증서 아카이빙
  • AS 만료 알림
  • OCR 결과 검수
FastAPI PostgreSQL OpenAI API OCR Human Review
BOUT 프로젝트 대표 이미지

TFTgogo

팀 프로젝트 | 2026.05 ~ 2026.06

TFTgogo는 롤토체스 유저가 전적을 확인하고, 파티를 모집하고, 참여자와 채팅할 수 있는 게임 커뮤니티 서비스입니다. 저는 로그인 여부, 파티 정원, 중복 참여, 채팅 권한처럼 사용자 상태가 꼬이면 안 되는 흐름을 맡았습니다.

  • 파티 모집
  • 실시간 채팅
  • 참여 상태 검증
Spring Boot Java OAuth2 MySQL Transaction
TFTgogo 프로젝트 대표 이미지

ALLPICK

팀 프로젝트 | 2026.04 ~ 2026.05

ALLPICK은 회원이 상품을 주문하고, 판매자가 상품을 관리하며, 관리자가 승인·환불·문의 처리를 맡는 쇼핑몰 플랫폼입니다. 저는 관리자 페이지와 마이페이지에서 권한과 상태가 맞지 않는 요청을 막는 흐름을 다뤘습니다.

  • 관리자 페이지
  • 환불 처리
  • 권한/상태 검증
Spring Boot JPA MySQL GitHub Actions
ALLPICK 프로젝트 대표 이미지

Hermes / 서헤

개인 VPS 시스템 | 2026.06 ~

개인 Ubuntu VPS에서 포트폴리오 배포, Obsidian/Jira 자동화, HTTPS 라우팅, 배포 재시작, 모니터링 기록, 장애 복구 흐름을 실습하고 운영한 시스템입니다.

  • VPS 운영
  • Jira/Obsidian 브리지
  • HTTPS 라우팅
Ubuntu Apache Let's Encrypt Automation
HS
전체 프로젝트 카드 보기

만드는 것

Product Backend

사용자, 관리자, 주문, 파티, 계정 소유권, 상태 기반 서비스 흐름을 위한 Java/Spring Boot API를 만듭니다.

AI Service Backend

AI/OCR 결과를 검토 가능하게 다루고, 사용자 확인 후에만 올바른 저장 경계로 넘깁니다.

Platform & Operations

Docker, AWS, GitHub Actions, HTTPS, 개인 VPS 운영, 복구 기록처럼 배포 지향 흐름도 함께 다룹니다.

작업 방식

01

Research

코드를 쓰기 전 현재 API 모양, 데이터 모델, 이슈, 실패 조건을 먼저 읽습니다.

02

Plan

바꿀 범위, 제외 범위, 기대 에러 동작, 검증 방법을 나눠서 정리합니다.

03

Implement & Verify

AI는 골격화에 활용하되, 핵심 로직, DB 상태, 로그, API 동작은 직접 확인합니다.

연락

제품 데이터와 서비스 규칙, 신뢰성이 중요한 백엔드 역할을 찾고 있습니다. 영어 기본 페이지는 /에서 볼 수 있습니다.