From 7bdcbe78b257f0a727375d42a81307d2f1730c87 Mon Sep 17 00:00:00 2001 From: son Date: Wed, 6 May 2026 20:47:01 +0900 Subject: [PATCH] vault backup: 2026-05-06 20:47:01 --- 이력서.md | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 이력서.md diff --git a/이력서.md b/이력서.md new file mode 100644 index 0000000..dc19dc3 --- /dev/null +++ b/이력서.md @@ -0,0 +1,116 @@ +--- +tags: [resume, cv] +last_updated: 2026-05-06 +name: 손을준 +role: Backend Developer +email: +phone: +portfolio: https://dalsu.dev/ +github: https://github.com/thsdmfwns +--- + +# 손을준 + +**백엔드 개발자** | Java/Spring Boot · C#/ASP.NET Core · Clean Architecture + +- Blog / Portfolio: [dalsu.dev](https://dalsu.dev/) +- GitHub: [github.com/thsdmfwns](https://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, Traefik, GHCR | +| **AI Integration** | OpenAI GPT API, Structured Output | Qdrant, Elasticsearch, Prompt Engineering | +| **Frontend** | Vue 3, TypeScript | 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 `TusBlazorClient` v1.0.1](https://www.nuget.org/packages/TusBlazorClient) 배포 및 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