6.4 KiB
tags, last_updated, name, role, email, phone, portfolio, github
| tags | last_updated | name | role | phone | portfolio | github | |||
|---|---|---|---|---|---|---|---|---|---|
|
2026-05-06 | 손을준 | Backend Developer | https://dalsu.dev/ | https://github.com/thsdmfwns |
손을준
백엔드 개발자 | Java/Spring Boot · C#/ASP.NET Core · Clean Architecture
- Blog / Portfolio: dalsu.dev
- GitHub: github.com/thsdmfwns
소개
인증/인가, 대용량 업로드, 비동기 작업 처리처럼 서비스 안정성과 직결되는 백엔드 흐름을 설계하고 구현하는 개발자입니다. Spring Boot와 ASP.NET Core 기반 프로젝트에서 Clean Architecture, Redis, Docker Compose, CI/CD를 활용해 동작 가능한 백엔드 시스템을 만드는 데 집중해왔습니다.
핵심 역량
- 인증/인가 설계: OAuth2, Spring Security, Opaque Session Token, Redis Session 기반 권한 제어 경험
- 대용량 업로드 처리: tus 기반 재개 가능한 업로드, Finalize 상태 전이, Quota 예약 구조 설계
- 비동기 작업 처리: Redis Queue/Pub/Sub, SSE를 활용한 AI 분석 결과 실시간 전달 구조 구현
- 백엔드 아키텍처: Clean Architecture, Result Pattern, 계층 분리 기반 유스케이스 중심 설계
- 배포/운영 기반: Docker Compose, nginx/Traefik, GitLab CI/CD, GHCR 기반 배포 구성 경험
기술 스택
| 분류 | 주력 기술 | 사용 경험 |
|---|---|---|
| Backend | Java 21 / Spring Boot, C# / ASP.NET Core | Minimal API, Blazor WASM |
| Architecture | Clean Architecture, Result Pattern | Modular Monolith, Domain Modeling |
| Database | PostgreSQL, MySQL | EF Core, JPA, MyBatis, Flyway |
| Cache / Async | Redis, SSE | Pub/Sub, List Queue |
| Auth | OAuth2, Spring Security, Opaque Session Token | Session Cookie, Redis Session |
| Infra | Docker Compose, GitLab CI/CD | nginx, Caddy, GHCR |
| AI Integration | OpenAI GPT API, Structured Output | Qdrant, Elasticsearch, Prompt Engineering |
| Frontend | Vue 3, TypeScript, Blazor | Pinia, Blazor JS Interop |
| Testing | NUnit, JUnit, Selenium E2E | Vitest, Playwright |
프로젝트
Cloud# (CloudSharp) — 셀프호스트 파일 서비스 플랫폼
백엔드 · 인프라 · 설계 담당
Space 단위 격리 저장 공간을 제공하는 셀프호스트 파일 서비스입니다. tus 기반 재개 가능한 대용량 업로드, 단명 다운로드 세션, Quota 정책을 설계했습니다.
- ASP.NET Core Minimal API + Clean Architecture 기반으로 API/Core/Infrastructure 계층 분리
- tus 기반 재개 가능한 업로드 파이프라인과 Finalize 상태 전이 구조 설계
- Quota 예약 경쟁 조건을
SELECT ... FOR UPDATE와 상태 기반 CAS UPDATE로 제어 - Opaque Session Token + Redis 세션 구조로 권한 변경 즉시 반영 가능한 인증/인가 구현
- Docker Compose와 nginx 단일 진입점으로 API/tusd 서비스를 분리 배포
C# ASP.NET Core PostgreSQL EF Core Redis tusd Docker Compose nginx
Didit — GitHub 통합 팀 협업 플랫폼
백엔드 · 인프라 · AI 비동기 파이프라인 담당
GitHub 워크플로우를 OAuth2 인증, 화상회의, AI 이슈 분석, SSE 실시간 이벤트로 연결한 팀 협업 플랫폼입니다.
- Spring Boot 기반 REST API 30+개 설계 및 구현
- GitHub OAuth2와 repo/org 권한을 연계한 SPA 인증 흐름 구현
- Redis List Queue와 Pub/Sub을 활용해 ML 추론 작업과 API 응답 흐름 분리
- Redis Pub/Sub과 SSE를 활용해 비동기 AI 분석 결과를 요청 사용자에게 실시간 전달
- Flyway 마이그레이션과 JPA validate로 스키마 정합성 검증
Java 21 Spring Boot Spring Security MySQL Redis SSE Flyway JPA OpenVidu
술통여지도 (Sulmap) — AI 기반 술집 추천 플랫폼
백엔드 · AI 추천 엔진 · 데이터 파이프라인 담당
위치·날씨·시간·요청사항을 바탕으로 주변 술집 Top 10과 추천 이유를 제공하는 지도 기반 웹 서비스입니다.
- Spring Boot + JPA 기반 REST API와 16개 테이블 중심 도메인 모델 구현
- 반경 내 최대 200개 후보를 2단계 Cascade Ranking으로 줄여 GPT 호출 토큰 약 70% 절감
- Pipe-delimited Domain Format을 적용해 JSON 대비 프롬프트 토큰 약 40% 절감
- Structured Output, 허용 ID 검증, fallback 전략으로 GPT hallucination과 AI 실패 상황 방어
- .NET 9 + Qdrant + OpenAI Embedding 기반 공공데이터 ETL 파이프라인 구현
Java Spring Boot MyBatis MySQL Elasticsearch OpenAI GPT API Qdrant Vue 3
TusBlazorClient — Blazor WASM용 tus 클라이언트 라이브러리
단독 개발 · NuGet 배포
tus-js-client를 C# API로 감싼 Blazor WASM 대용량 업로드 라이브러리입니다. JS 작성 없이 재개 가능한 업로드를 사용할 수 있도록 설계했습니다.
TusClient,TusUpload,TusOptions중심의 타입 세이프 Public API 설계AddTusBlazorClient()기반 DI 확장 메서드로 Blazor 프로젝트 통합 단순화[JSInvokable]과DotNetObjectReference를 활용해 JS 콜백과 .NET 델리게이트 연결- JS ES Module Lazy Loading과
IAsyncDisposable기반 리소스 생명주기 관리 - NuGet.org
TusBlazorClientv1.0.1 배포 및 Selenium E2E 테스트 검증
C# .NET Blazor WASM IJSRuntime JS Interop tus-js-client NuGet Selenium
교육 및 경력
- 삼성청년SW·AI아카데미 (SSAFY) | 2025.06 ~ 2026.06 예정
- 한연 인턴 (우송대학교 학생 인턴) | 2021.06 ~ 2021.12
- 태인 인턴 (우송대학교 학생 인턴) | 2021.03 ~ 2021.06
- 우송대학교 비트아카데미 고급 과정 수료 | 2020.09 ~ 2021.01
학력
우송대학교 IT융합학부 컴퓨터정보보안전공 (4년제 졸업)
자격증
- 정보처리기사 | 과학기술정보통신부 | 2023.09