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,78 @@
# 에이투텍 자기소개서
## 1. 지원동기
### 데이터 품질에서 출발하는 AI 솔루션
에이투텍이 강조하는 "현업 문제를 해결하는 AI 모델" 개발 방향에 주목해 지원했습니다.
AX 서비스 페이지에서 SOTA 모델 조사부터 데이터 가공, 학습, 검증, REST API 구축까지 전 과정을 직접 수행한다는 점이 인상 깊었습니다. 특히 Problem 페이지에서 종이 기반 설비 유지보수 데이터를 표준화하고 통합 DB로 연결한 뒤 예지정비 모델을 적용한 사례는, 데이터 품질이 곧 AI 결과의 품질이라는 메시지로 다가왔습니다.
이 방향은 제가 술통여지도 프로젝트에서 부딪힌 문제의식과 맞닿아 있습니다. GPT-5.2 기반 술집 추천 시스템을 만들면서, 단순히 모델에 데이터를 던지는 방식으로는 hallucination과 토큰 비용 문제를 해결할 수 없었습니다.
그래서 도메인 특화 Pipe-delimited Format을 설계해 JSON 대비 토큰을 약 40% 절감했습니다. 또한 정규식 기반 허용 ID Set 검증으로 GPT가 만들어낸 존재하지 않는 술집 추천을 0건으로 차단했습니다. 외부 API 장애에 대비한 거리순 폴백을 두어, AI가 실패해도 사용자에게 기본 결과는 반환되도록 했습니다.
이 경험은 AI를 단순히 호출하는 개발이 아니라, 데이터 품질과 운영 안정성까지 책임지는 개발이 무엇인지 고민하게 만들었습니다.
에이투텍의 폐쇄형 AI 개발 환경과 디지털 전환 솔루션은, 데이터 정제부터 모델 운영까지 통합적으로 다루는 개발자가 가장 필요한 영역이라 판단했습니다. 그동안 쌓아온 데이터 직렬화 최적화와 AI 응답 검증 경험이 회사의 방향과 맞닿아 있다고 판단했고, 이 점이 지원을 결심한 가장 큰 이유입니다.
---
## 2. 업무 시 강점
### AI의 한계를 코드로 보완하다
저의 가장 큰 강점은 외부 AI API의 한계를 시스템 설계로 보완하는 역량입니다.
술통여지도 프로젝트에서 사용자의 위치, 날씨, 시간대, 요청사항을 GPT-5.2에 전달해 반경 내 술집을 추천하는 백엔드 추천 엔진을 단독으로 담당했습니다.
가장 큰 문제는 세 가지였습니다. 후보 술집이 최대 200개에 달해 한 번에 GPT에 전달하면 16,000토큰을 초과하여 응답 품질이 저하되었습니다. 또한 GPT가 입력 후보에 없는 술집을 만들어내는 hallucination이 발생했고, JSON 직렬화의 구조 문자가 불필요한 토큰을 소비했습니다.
이를 해결하기 위해 세 가지 설계를 적용했습니다.
첫째, 2단계 Cascade Ranking 구조를 도입했습니다. 1단계에서 200개를 100개씩 배치로 나눠 top5를 선별하고, 2단계에서 최대 40개를 정밀 랭킹해 Top 10과 추천 이유를 생성했습니다. 그 결과 호출당 토큰을 약 70% 절감했습니다.
둘째, Defensive Normalization을 구현했습니다. 정규식으로 입력에서 허용 ID Set을 추출한 뒤, GPT 응답의 barId를 대조해 미허용 ID를 즉시 제거했습니다. 이 구조로 hallucination에 의한 잘못된 추천을 0건으로 차단했습니다.
셋째, 도메인 특화 Pipe-delimited Format을 설계했습니다. `B|id=123|n=포차` 형식으로 직렬화하고 모든 필드에서 파이프와 개행을 sanitize했습니다. JSON 대비 토큰을 약 40% 절감했고 파싱 오류도 함께 제거했습니다.
이 경험을 통해 외부 의존성의 실패 가능성과 비용까지 시스템에 반영하는 개발 방식을 익혔습니다. 입사 후에도 같은 방식으로 회사 AI 솔루션의 안정성과 비용 효율에 기여하겠습니다.
---
## 3. 입사 후 포부
### 데이터부터 모델까지 책임지는 개발자
입사 후에는 에이투텍의 디지털 전환 솔루션 안에서 데이터 파이프라인과 AI 서빙을 함께 다루는 백엔드 개발자로 성장하고 싶습니다.
회사가 강조하는 "데이터 기반 의사결정 자동화"는 정제된 데이터, 안정적인 모델 학습, 실패에 강한 서빙 구조 세 축이 맞물려야 가능하다고 판단했습니다.
입사 초기에는 기존 AX 솔루션과 빅데이터 플랫폼의 코드와 문서를 빠르게 파악하겠습니다. 특히 폐쇄형 AI 환경에서 데이터가 흐르는 경로와 REST API 서빙 구조를 이해하는 데 집중하겠습니다.
1년 차에는 AI 모델과 백엔드 API를 연결하는 영역에서 단독으로 기능을 수행하고 싶습니다. 술통여지도에서 적용한 입력 검증, 응답 정규화, Graceful Degradation 패턴을 사내 솔루션에 맞게 발전시켜 운영 안정성에 기여하겠습니다.
3년 차에는 데이터 품질 검증과 AI 응답 모니터링을 자동화하는 구조 개선을 제안하고 싶습니다. 단발성 기능 개발에 머무르지 않고, 팀 전체가 데이터 정합성을 더 빠르게 확인할 수 있는 환경을 만드는 데 보탬이 되겠습니다.
대규모 분산 데이터 처리 경험은 아직 부족하지만, 현재 Hadoop과 Spark 학습을 진행하며 빅데이터 플랫폼의 동작 원리를 익히고 있습니다. 또한 Didit 협업 플랫폼에서 Redis 기반 비동기 작업 큐와 Pub/Sub 메시징을 직접 설계하며 분산 처리 감각을 보완하고 있습니다.
장기적으로는 회사가 진행하는 스마트팩토리와 스마트시티 솔루션에서, 현장 데이터를 안정적으로 받아들이고 AI 모델로 가치를 만드는 백엔드 시스템을 함께 만드는 개발자가 되겠습니다.
---
## 4. 자기소개 / 성장 과정
### 측정 가능한 결과를 만드는 개발자
저는 동작하는 코드보다 측정 가능한 결과를 만드는 것을 더 중요하게 여기는 개발자입니다.
백엔드를 처음 시작했을 때는 기능이 동작하면 충분하다고 생각했습니다. 그러나 Didit 협업 플랫폼에서 GitHub 이슈를 AI로 분석해 우선순위를 매기는 기능을 구현하면서 이 생각이 바뀌었습니다.
ML 추론은 수 초에서 수십 초가 걸려 일반 HTTP 요청-응답 사이클로 처리할 수 없었습니다. 처음에는 단순한 동기 호출로 구현했지만 응답 지연으로 사용자 경험이 무너졌습니다.
이 문제를 해결하기 위해 Redis List를 작업 큐로, Redis Pub/Sub을 결과 알림으로 활용한 비동기 파이프라인을 구성했습니다. 결과는 SSE로 클라이언트에 전달하여 ML 추론 시간과 API 응답성을 완전히 분리했습니다. 동작이 아니라 사용자가 체감하는 시간이 진짜 결과라는 점을 그때 처음 체감했습니다.
이 경험 이후 기능을 구현할 때 항상 외부 의존성의 실패와 비용을 함께 고민하게 되었습니다. CloudSharp 파일 서비스에서는 업로드 Finalize 중복 실행 문제를 해결하기 위해 CAS 기반 원자적 점유와 Recovery Worker를 설계했습니다. 술통여지도에서는 GPT 응답의 hallucination과 토큰 비용을 코드 수준에서 방어했습니다.
또한 도메인 모델링과 클린 아키텍처에도 관심을 두고 있습니다. CloudSharp에서는 Api/Core/Infrastructure 의존성 방향을 엄격히 분리하고, Result 패턴으로 성공과 실패를 값으로 표현해 호출부의 예외 누락을 차단했습니다. 같은 코드라도 구조에 따라 유지보수 비용이 크게 달라진다는 점을 직접 체감했습니다.
현재의 저는 외부 시스템의 한계를 인정하고 코드와 구조로 보완하는 개발자, 결과를 수치로 측정해 다음 개선의 근거로 삼는 개발자로 정리할 수 있습니다.