vault backup: 2026-05-07 22:19:19

This commit is contained in:
son
2026-05-07 22:19:19 +09:00
parent ab57f88d80
commit d9a468cdda
12 changed files with 1335 additions and 3 deletions

View File

@@ -0,0 +1,84 @@
# 자기소개서 — ㈜케이에스아이 지원
> 작성 기준: IT 개발자 자기소개서 작성 컨벤션 (회사 분석 + 내 경험 연결, 두괄식, STAR 구조, 수치 결과 포함)
---
## 1. 지원동기
### 닷넷과 AI가 만나는 지점
저는 귀사의 MES/POP 시스템에 AI를 접목하려는 방향에 주목해 지원했습니다.
귀사는 1988년부터 35년간 .NET 기반 MES/POP·ERP 솔루션을 자체 개발해온 전문 기업입니다. 최근에는 AI 소프트웨어 개발자를 채용하며 공정 데이터 분석과 예지보전으로 영역을 확장하고 있습니다. 특히 MICOM PLC와 무선 컨버터를 직접 개발해 소프트웨어와 통합하는 구조가 인상 깊었습니다. 단순한 업무 시스템이 아니라, 현장 설비부터 데이터 분석까지 전체를 책임지는 솔루션이기 때문입니다.
저는 ASP.NET Core 기반 파일 저장 플랫폼인 CloudSharp를 설계·구현하며 .NET 환경에서 인증, 동시성 제어, 인프라 구성까지 직접 책임진 경험이 있습니다. 또한 술통여지도 프로젝트에서는 GPT-5.2를 실서비스에 적용해 토큰을 약 70% 절감하고 Hallucination을 차단하는 다층 방어 체계를 구축했습니다.
.NET 기반 시스템 설계와 AI 활용 경험이 동시에 요구되는 환경은 흔치 않습니다. 귀사가 추진하는 MES/POP의 AI 고도화 방향이 제가 쌓아온 경험과 직접 맞닿아 있다고 판단해 지원을 결심했습니다.
---
## 2. 업무 시 강점
### 원인을 끝까지 추적하는 개발
저의 가장 큰 강점은 시스템 동시성 문제의 원인을 끝까지 추적하고 측정 가능한 결과로 개선하는 역량입니다.
ASP.NET Core 기반 파일 저장 플랫폼인 CloudSharp를 개발하며, 대용량 파일 업로드의 Finalize 단계에서 중복 실행 가능성을 발견했습니다. tusd hook과 백그라운드 Worker 두 경로에서 같은 업로드 세션이 동시에 처리될 경우, 동일한 파일이 두 번 등록될 위험이 있었습니다.
먼저 동시 요청 시나리오를 분석해 문제를 재현했습니다. 일반적인 분산 락(Redis Redlock 등)을 도입하면 인프라 복잡도가 증가하므로, 기존 상태 머신을 락으로 재활용하는 방향을 선택했습니다.
구체적으로는 PostgreSQL의 CAS(Compare-And-Swap) 패턴을 적용했습니다. `UPDATE upload_session SET status='FINALIZING' WHERE status='UPLOADING'` 쿼리로 단일 트랜잭션 점유를 구현했고, 파일 I/O와 DB 트랜잭션을 분리해 느린 작업이 락을 잡지 않도록 했습니다. 또한 10분 이상 FINALIZING 상태에 머문 세션을 자동 복구하는 Recovery Worker를 추가했습니다.
그 결과 별도 분산 락 인프라 없이 SQL 한 줄로 중복 실행을 차단했고, DB UNIQUE 제약과 결합해 이중 안전장치를 구축했습니다. 같은 방식으로 Quota 동시 요청 문제에도 `SELECT FOR UPDATE`를 적용해 경쟁 조건을 제거했습니다.
이 경험을 통해 단순히 기능을 만드는 것을 넘어, 동시성과 정합성 문제를 측정 가능한 결과로 개선하는 방식을 익혔습니다. 입사 후에도 동일한 접근으로 MES/POP 시스템의 실시간 공정 데이터 처리 안정성에 기여하겠습니다.
---
## 3. 입사 후 포부
### 현장과 AI를 잇는 개발자
입사 후에는 귀사의 스마트팩토리 AI 고도화 방향 안에서 .NET 기반 시스템과 AI를 잇는 개발자로 성장하고 싶습니다.
귀사는 MES/POP 시스템에 AI를 접목해 공정 데이터 분석과 예지보전으로 영역을 확장하고 있습니다. 이 흐름 안에서 단순 기능 구현이 아니라, 현장 데이터의 신뢰성과 분석 결과의 정확성을 함께 책임지는 개발자가 되고자 합니다.
입사 초기에는 업종별 MES/POP 패키지 구조와 PLC 데이터 수집 흐름을 파악하는 데 집중하겠습니다. 자동차부품, 프레스/금형, 인쇄 등 업종마다 공정과 데이터 특성이 달라, 코드베이스와 현장 도메인을 함께 학습할 계획입니다.
1년 안에는 .NET 기반 모듈을 단독으로 담당하고, API 연동과 데이터 정합성 개선에 기여하겠습니다. CloudSharp에서 쌓은 동시성 제어 경험과 술통여지도에서 다진 외부 API 안정화 경험이 바로 활용될 영역입니다.
3년 안에는 MES/POP 시스템에 AI 분석을 안정적으로 통합하는 구조를 제안할 수 있는 개발자가 되겠습니다. GPT 기반 추천 엔진에서 토큰 비용과 Hallucination을 동시에 잡았던 경험을 바탕으로, 제조 도메인 AI에서도 비용·정확도·운영 안정성을 함께 고려한 설계를 만들어가겠습니다.
PLC와 하드웨어 연동 경험은 아직 부족하지만, MICOM PLC와 무선 컨버터 관련 자료를 미리 학습하며 사내 OJT를 통해 빠르게 보완하겠습니다. 장기적으로는 현장과 AI를 자연스럽게 연결하는 개발 사례를 만들어, 귀사의 스마트팩토리 솔루션이 한 단계 확장되는 데 보탬이 되겠습니다.
---
## 4. 자기소개 / 성장 과정
### 구현에서 구조로
저는 동작하는 코드를 넘어 유지보수 가능한 구조를 고민하는 개발자입니다.
처음 개발을 시작했을 때는 기능을 빠르게 구현하는 데 집중했습니다. 하지만 프로젝트 규모가 커질수록 동작하는 코드와 잘 만든 코드는 다르다는 점을 체감했습니다.
술통여지도 프로젝트에서 GPT-5.2를 실서비스에 적용했을 때, 단순히 API를 호출하는 수준으로는 운영이 불가능했습니다. 200개 후보를 한 번에 보내면 토큰이 16,000개를 넘었고, GPT는 입력에 없는 술집을 만들어내기도 했습니다. 이 문제를 풀기 위해 2단계 Cascade Ranking 구조를 도입했고, 응답을 정규식으로 검증해 허용되지 않은 ID를 제거하는 다층 방어 체계를 만들었습니다. 그 과정에서 외부 시스템과 통신할 때는 항상 실패와 비정상 응답을 전제로 설계해야 한다는 원칙을 체득했습니다.
이후 CloudSharp 프로젝트에서는 처음부터 Clean Architecture, Result 기반 에러 처리, CAS 동시성 제어를 적용했습니다. TusBlazorClient라는 .NET 라이브러리를 단독으로 설계해 NuGet에 배포하면서, 외부 사용자가 사용할 API의 책임 분리와 확장성도 직접 고민했습니다.
이런 경험을 거치며 단순 구현보다 원인 분석과 구조 설계를 우선하는 개발자가 되었습니다. 입사 후에도 이 자세로 귀사 솔루션의 품질과 안정성에 기여하겠습니다.
---
## 작성 컨벤션 점검
| 항목 | 점검 결과 |
|---|---|
| 회사 연결 | MES/POP, AI 접목, MICOM PLC, 35년 역사 등 회사 정보 직접 인용 |
| 경험 증명 | CloudSharp(CAS), 술통여지도(GPT 70% 절감), TusBlazorClient(NuGet) 사례 사용 |
| 수치 결과 | 토큰 70% 절감, 16,000 토큰, 10분 자동 복구, 35년 |
| 입사 후 기여 | 초기 → 1년 → 3년 타임라인으로 구성, 보완점(PLC) 명시 |
| 두괄식 | 모든 문항 첫 문장에 결론 위치 |
| 금지 표현 | "열정", "최선", "누구보다", "인재" 미사용 |
| 문장 길이 | 60자 내외 유지, 80자 초과 문장 없음 |
| 소제목 | 15자 내외, 핵심 메시지 반영 |