自訂 Cookie
禁止且拒絕未經各資訊當事人同意,擅自蒐集本服務提供的使用者個人資訊資料等資料之行為。即使是公開資料,若未經許可使用爬蟲等技術裝置進行蒐集,依個人資訊保護法可能會受到刑事處分,特此告知。
© 2025 Rocketpunch, 주식회사 더블에이스, 김인기, 大韓民國首爾特別市城東區聖水一路10街 12, 12樓 1號, 04793, support@rocketpunch.com, +82 10-2710-7121
統一編號 206-87-09615
更多
自訂 Cookie
禁止且拒絕未經各資訊當事人同意,擅自蒐集本服務提供的使用者個人資訊資料等資料之行為。即使是公開資料,若未經許可使用爬蟲等技術裝置進行蒐集,依個人資訊保護法可能會受到刑事處分,特此告知。
© 2025 Rocketpunch, 주식회사 더블에이스, 김인기, 大韓民國首爾特別市城東區聖水一路10街 12, 12樓 1號, 04793, support@rocketpunch.com, +82 10-2710-7121
統一編號 206-87-09615
更多


이동기
2년차 백엔드 개발자입니다. AI 솔루션 회사에서 3D 애셋 공유 플랫폼을 초기부터 런칭한 경험이 있습니다. 유지보수, 확장에 용이한 시스템 아키텍처를 고민하고 읽기 좋은 코드를 작성하기 위해 노력합니다. 또한 코드 품질을 보장하기 위해 테스트 코드 작성을 즐겨합니다.
職涯
貼文
AI 職涯摘要
이동기님은 2년차 백엔드 개발자로, AI 솔루션 회사에서 3D 애셋 공유 플랫폼을 초기부터 런칭하고 운영한 경험을 가지고 있습니다. 특히 MSA 기반 시스템 아키텍처 설계 및 개선, 효율적인 데이터 처리 방식 도입을 통한 성능 향상, 동시성 문제 해결, 테스트 코드 문화 도입을 통한 품질 향상에 강점을 보입니다. 또한, 생성형 AI 프로젝트 경험과 더불어 사내 기술 공유를 통해 팀 전체의 기술 역량 강화에 기여하고 있습니다.
經歷
3D 애셋 마켓플레이스, AI PoC 프로젝트, 사내 시스템 등 백엔드 개발부터 AWS 인프라 구성, CI/CD 파이프라인 구축, 시스템 안정화 작업까지 사내 전반적인 프로젝트를 주도적으로 진행했습니다. 서비스 장애의 원인을 분석하고, 구조 개선을 통해 문제를 해결한 경험과 테스트 코드 문화 도입으로 팀 전체의 품질 향상에 기여했습니다. 단순히 요청을 그대로 처리하기보다, 항상 ʻ왜’를 먼저 고민하며 본질에 맞는 방향으로 구현하거나, 상황에 따라 우선순위를 조정해 더 나은 결과로 이어지도록 조율해왔습니다. 문제가 발생했을 때도 단순 대응보다는 근본적인 원인을 파악하고, 재발하지 않는 구조로 개선하는 데 집중했습니다. 그 과정에서 남긴 코드와 문서는 동료들이 이해하기 쉬운 형태로 구성하고자 노력했고, 실제로 코드와 문서를 깔끔하게 작성한다는 피드백과 함께 항상 맡은 바를 안정적으로 해낸다는 평가를 받았습니다. 3D Asset 마켓플레이스 polyground 백엔드 개발 및 운영 (https://polyground.ai) 대량 데이터 삭제 중 OutOfMemoryError로 인해 애플리케이션이 반복적으로 재시작되는 문제 발생 - 운영 중인 서비스에서 일정 주기로 미사용 리소스를 삭제하는 배치 작업을 수행하던 중, 데이터량이 증가하면서 삭제 속도가 급격히 느려지고, OutOfMemoryError가 반복적으로 발생 - JPA가 생성한 In Query가 삭제 대상 엔티티 전체를 메모리에 로딩한 뒤, 각각에 대해 순차적으로 삭제하는 비효율적인 구조를 확인 - 삭제 대상이 많아질수록 메모리 점유가 선형 증가했고, GC가 이를 따라가지 못해 결국 OOM으로 이어지는 흐름이 발생 - @Query를 사용해 범위 조건 기반의 단일 삭제 쿼리를 직접 작성하고, 쿼리가 DB 내부에서 일괄 실행되도록 구조를 변경 - 이로 인해 메모리 사용량이 안정적으로 유지되었고 삭제 속도도 기존 대비 5배 이상 개선. 유사한 문제가 반복되지 않도록 메서드 이름 기반으로 생성되던 쿼리 로직을 전수 조사 포인트 중복 사용 방지를 위한 설계 - 포인트 사용 기능을 설계할 당시, 사용자가 동일 포인트를 중복 차감하는 상황을 사전에 방지할 필요가 있다고 판단 - MySQL InnoDB의 기본 격리 수준인 Repeatable Read는 트랜잭션 내에서 동일 데이터를 읽을 때 일관된 결과를 보장하지만 동일한 데이터를 동시에 수정하려는 트랜잭션 간 충돌은 제어하지 못함 - 이 경우 두 트랜잭션이 동시에 포인트 데이터를 조회한 후 차감 로직을 실행하면, 각자 독립된 스냅샷을 기준으로 차감하게 되어 중복 차감이 발생할 수 있는 상황 - 이러한 동시성 문제를 차단하기 위해 select ... for update 구문으로 트랜잭션 내 포인트 데이터를 잠금 처리해, 다른 요청이 해당 포인트를 동시에 사용할 수 없도록 설계하여 기능 오픈 이후 단 한 건의 중복 차감 이슈 없이 안정적인 포인트 시스템 운영 파일 업로드 시 OutOfMemoryError 발생 - 다수의 사용자가 동시에 수 MB 이상의 파일을 업로드할 경우, OutOfMemoryError가 발생하고 애플리케이션이 간헐적으로 재시작되는 문제 발생 - 힙 덤프와 GC 로그 분석 결과, MultipartFile이 업로드된 파일을 통째로 메모리에 적재하는 구조에서 문제 발생 - G1 GC 환경에서는 이러한 객체가 대용량 객체로 분류되어 Old 영역에 직접 할당되며, 회수 주기가 길고, 연속된 메모리 공간을 필요로 하기 때문에 메모리 할당 실패로 이어질 가능성이 높음 - 동시 요청이 몰릴 경우 GC가 이를 제때 회수하지 못해 결국 OOM이 반복적으로 발생 - 이를 해결하기 위해 파일 처리 방식을 InputStream 기반의 스트리밍 구조로 전환, 파일을 버퍼 단위로 처리하는 방식으로 변경 - 이로 인해 메모리에 전체 파일을 적재하지 않게 되어 대용량 객체 생성을 차단하고, G1 GC의 Old 영역에 대한 부하를 줄이며 안정적인 메모리 사용이 가능한 구조로 개선 테스트 코드 작성 문화 도입 - 잦은 요구사항 변경과 결함 수정이 반복되는 상황에서, 기능 검증이 매번 수작업으로 이루어지면서 피드백 루프가 느려지고 테스트 누락으로 인한 품질 저하 위험을 인지 - 이를 해결하기 위해, 비즈니스 흐름과 역할이 자연스럽게 드러나는 DCI 패턴 기반으로 테스트 코드를 작성하고, 도메인 중심의 테스트 구조를 정립함으로써 누구나 코드 흐름을 빠르게 파악하고 유지보수할 수 있는 기반을 마련 - 테스트 작성 경험이 부족한 동료들을 위해 예제 중심의 가이드를 작성해 공유하고, 팀 전체가 일관된 방식으로 테스트를 작성할 수 있도록 유도 - 그 결과, 코드 커버리지 73%를 달성했고, 테스트 자동화 환경 속에서 안심하고 리팩토링할 수 있는 개발 문화를 팀 내에 정착 생성형 AI를 이용한 텍스트 기반 이미지 생성 PoC 프로젝트 - 다양한 생성형 AI 모델(TTI, ITI, IT3)을 활용한 텍스트 기반 이미지 생성 PoC 프로젝트를 진행하며, 모델별 요청, 응답 흐름이 거의 유사함에도 중복 코드가 많아 관리와 확장이 어려운 구조를 발견 - Spring AI 프로젝트의 모델 추상화 구조를 참고해 템플릿 메서드 패턴 기반으로 리팩토링하여, 이를 통해 공통 로직을 통합하면서 새로운 모델을 최소한의 코드로 쉽게 추가할 수 있는 구조로 개선 모니터링 외부 세미나를 듣고 모니터링의 중요성에 대해 사내 발표 진행 (문서) - 외부 모니터링 세미나에서 얻은 인사이트를 바탕으로 모니터링의 필요성과 주요 지표의 활용 방안에 대해 사내 발표 진행 - 발표 후 팀 내에 모니터링 도구 활용 논의가 활발해지고, 실제 운영 중인 서비스에 기본적인 헬스체크와 슬랙 알림 기반의 경고 시스템을 적용하는 계기를 마련
更多
이 프로필의 담당자이신가요?
인증을 통해 현재 프로필에 병합하거나 삭제할 수 있습니다. 만약 인증할 수 없는 경우 본인임을 증빙하는 서류 제출 후 프로필 관리 권한을 취득할 수 있습니다.