Overview
연혁
Core Themes
업적 분류
성능 최적화와 대용량 데이터 처리
400GB급 상품 가격 데이터 동기화 구조를 Stream/Kafka 중심으로 전환했고, 가격 변동 배치를 1.5시간에서 10~20분으로 줄였습니다.
ESM 문의하기는 최대 1분 걸리던 조회를 0.3초까지 단축했고, 판매자 통계용 유입 집계에서는 불필요한 파싱 비용을 줄여 고속 처리 구조를 만들었습니다.
자동화와 운영 효율
반복해서 사람이 해야 하는 일은 시스템이 대신하게 만드는 쪽을 선호합니다. Jenkins orchestration, DB 모니터링, webhook alert, .http 테스트, husky/githook 같은 개선이 이 축에 있습니다.
개인 프로젝트에서도 크롤링, 알림, 스케줄링, Chrome Extension을 직접 만들어 수작업 감시 업무를 줄이는 패턴이 반복됩니다.
아키텍처와 플랫폼 기반 구축
팀에 없던 Spring Batch, Spring Kafka, React/Next.js 기반을 먼저 깔아두고 이후 작업의 기준점을 만드는 역할을 자주 맡았습니다.
기존 .NET 공용 어드민 위에 Java 확장 환경을 얹거나, 웹앱 내부 @Scheduled 대신 배치 실행 책임을 분리하는 식으로 기술 부채를 운영 가능한 구조로 바꾸는 편입니다.
기획과 개발을 함께 끌고 가는 실행력
문의하기 개편에서는 멀티답변, 임시저장, 조회 구조까지 함께 손봤고, 가격 분석/매칭 시스템에서는 작업자 UX 자체를 바꿔 처리 속도를 높였습니다.
단순 구현보다 운영 흐름과 사용자의 실제 행동을 같이 보는 편이라, 백오피스라도 서비스 관점으로 접근합니다.
Selected Work
주요 프로젝트
[인턴] React Native를 통한 간단한 웹뷰 앱 개발
기존 웹사이트를 앱에서도 실행 가능하도록 웹뷰를 활용한 간단한 앱 개발.
쿠키 및 세션 관리를 위한 기능 추가와 네비게이터 구성.
[인턴] 통합 EC구축(롯데온), 롯데백화점 프리미엄 사이트 개발 참여
롯데백화점 프리미엄 사이트의 베스트 페이지와 햄버거 화면 개발
서버 API와 웹퍼블리셔의 HTML을 조합하여 Freemarker 기반으로 화면 구성
A-Z 브랜드 명을 나열하며, 알파벳 전환 시점(예: A에서 B로 넘어갈 때) B의 시작 인덱스를 표시하는 기능 구현. Freemarker에서 Map 구조 사용 시 메모리 부족 이슈 발생
문제 해결을 위해 메모리에 직전 알파벳의 첫 글자만 저장하고, for 루프 내에서 신규 알파벳 등장 시 인덱스를 표시하는 방식으로 최적화. 메모리 부하 감소 및 기능 성공적 구현
검색어 백로그 조회용 어드민 화면 개발
AuroraDB에 적재된 클라이언트의 검색어 백로그 데이터를 단순 조회할 수 있는 백오피스 개발.
Spring Web과 기본 html, css, js를 사용하여 개발.
기획/운영팀 전용 데이터 적재 프로그램 개발
타사의 셀러 어드민에서 전체 데이터를 수집하기 위해 Python과 BeautifulSoup을 활용해 약 13만 개의 엑셀 파일을 순차적으로 다운로드하는 코드 개발
다운로드한 엑셀 파일을 DB에 LOAD DATA 명령어로 일괄 적재하는 파이프라인 구현. 대량 데이터 처리로 인한 속도 저하와 메모리 문제를 해결하기
위해 파일 단위로 순차 처리 방식 채택
운영팀이 직접 실행할 수 있도록 OS 차이(Windows 환경)를 고려해 Parallels로 테스트 후, PyInstaller를 사용해 실행 파일(.exe)로 변환하여 배포. 비개발자도 쉽게 사용할 수 있는 환경 제공
DB 모니터링 기능 구축
DB 상태값을를 Slack 알람으로 알려주는 bash 프로그램 개발.
Performance_schema와 Information_schema를 주기적으로 확인하며 통해 DB 데드락 감시.
해당 잡은 cron을 통해 1분마다 확인하도록 설계하였으며 tmux를 통해 백그라운드화
PCS 도메인, 백오피스 어드민 React로 변경
기존 axboot.js로 구성된 백오피스 프론트엔드를 React로 리뉴얼.
Apache httpd 루트에 Nginx 추가를 통한 로드밸런싱 작업도 진행
컴포넌트를 최소 단위로 분리하여 재사용성을 극대화하여 추후 작업들의 기간 평균 2주 단축.
젠킨스를 통한 테스트 실행 및 Job Orchestration
빌드, 테스트, 배포, 실행, 로그 확인, 서버 간 선행/후행 관계까지 Jenkins에서 통합 관리하는 시스템 구축. Spring Batch 기반 대용량 데이터 처리 작업을 서버 접속 없이 자동화
기존에는 개발자가 서버에 접속해 수동으로 Batch 코드를 실행하고 로그를 확인해야 했던 비효율적인 프로세스를 개선. Jenkins Pipeline을 활용해 CI/CD 통합 및 Job 간 의존성 관리 구현
특히, 다중 Job 실행 시 순서 보장과 실패 시 재실행 로직 추가가 어려웠던 점을 해결하기 위해 Parameterized Trigger와 Groovy 스크립트를 사용해 동적 조정 가능하도록 설계
전체 판매 상품데이터 동기화 작업 Batch 대신 Stream으로 전환
다이나믹 프라이싱을 위한 상품 가격 정보 DB 동기화 프로세스 개선. 기존에는 DB 복제 후 Batch로 데이터를 읽어들이는 방식으로, 400GB 규모 데이터를 처리
문제점: Batch가 처음 Truncate 후 가격 정보를 다시 채우는 방식이라 동기화 중 다이나믹 프라이싱 잡 실행 시 데이터 공백으로 오류 발생. 이를 해결하기 위해
Truncate 대신 임시 테이블에 데이터를 쌓은 후 RENAME으로 테이블을 바꿔치기하는 전략 도입
추가 이슈: 상품 수 증가로 동기화 잡 시간이 길어지며 잡 간 겹침 발생. 최종적으로 mysqldump로 초기 적재 후, Kafka 컨슈밍 앱을 개발해
변동분만 실시간 반영하도록 전환
성과: 할인 반영 상품 수를 5천만 개에서 2억 8천만 개로 확대, 가격 데이터 실시간화 달성. Poison Pill 처리 로직과 Row Lock 방지
트랜잭션 설계로 안정성 강화
상품 가격 변동 시스템 메인 Batch 리뉴얼
Kafka 기반 병렬 처리와 Producer-Consumer 패턴을 적용하여 가격 변동 처리 속도를 최적화.
Enum과 Map을 통한 분기처리와 병렬처리를 활용해 프로세스 시간을 1.5시간에서 10~20분으로 단축
경쟁사의 최저가 점유 속도를 따라잡아 네이버 내 최저가 점유율 1위(2021년 12월 기준)를 달성. 단순 매출 증대와 순이익 감소 문제를 해결하기 위해 할인 비중을 조정하며 회사 전략에 맞춘 대응을 시행.
상품페이지 실시간 유입 수 집계 프로세스 구축
판매자 통계 오픈을 위해 상품페이지 실시간 유입 수 집계 파이프라인을 구축하고, 팀 최초로 Spring Batch와 Spring Kafka Consumer 기반을 도입.
쿠키와 부가 정보까지 섞여 있는 대형 JSON string 로그를 전부 파싱하지 않고, substring으로 host/path를 먼저 추출한 뒤 Regex와 MutableMap으로 유의미한 상품페이지 데이터만 2차 선별.
분당 대량 로그 처리에서 불필요한 parsing 비용을 줄여 처리 시간을 20% 이상 단축하고 CPU 사용률을 절감.
Kibana Dashboard와 Microsoft Teams/Slack webhook alert를 도입해 오류를 즉시 확인할 수 있는 모니터링 체계를 구축.
판매자 통계 시스템 신규 구축 및 데이터 파이프라인 설계
판매자 전용 사이트 개편 과정에서 통계 페이지가 처음 도입되며, 화면 개발뿐 아니라 어떤 데이터를 어떻게 적재·집계할지부터 다시 설계했습니다.
당시 대부분의 배치가 단일 Spring Web 애플리케이션에서 @Scheduled로 실행되어 겹침 시 OOM이 발생하는 구조였고, 이를 완화하기 위해 Spring Batch 기반 Job-Step 구조의 별도 애플리케이션으로 실행 주체를 분리했습니다.
실시간 유입 통계를 위해 Kafka 기반 파이프라인을 새롭게 구성했고, 1분당 수백만 건·건당 약 500KB 수준의 대형 JSON 문자열에서 필요한 값만 substring과 정규식으로 직접 추출해 처리 속도와 CPU 사용률을 함께 개선했습니다. 정제 데이터는 Elasticsearch로 전달해 집계에 활용했습니다.
프론트엔드에서는 복잡한 캘린더 구조의 Props Drilling 문제를 해결하기 위해 Jotai와 Context API를 비교했고, Page가 상태를 소유하는 통계 구조상 Context API가 더 적합하다고 판단해 기능 단위 Context 분리로 리렌더링 범위를 제어했습니다.
ESM 문의하기 페이지 개편
2008년에 만들어진 CS 처리용 긴급 메시지 및 문의하기 페이지를 리뉴얼
멀티답변 기능 추가로 답변율 5% 이상 유의미하게 상승. 프론트엔드에서 메시지 전송 방식을 개선하고, 브라우저 캐시 스토리지를 활용한 임시 저장 로직 도입으로 사용자 경험 및 데이터 안정성 향상
처리 방식 개선으로 조회 속도를 최대 1분에서 0.3초로 단축(약 200배 성능 개선). 기존 이중 FOR LOOP과 다중 SP 호출 대신
OPENJSON으로 여러 셀러 정보를 단일 테이블로 묶어 JOIN 처리, 쿼리 성능 최적화 성능 비교 동영상
백엔드에서 GROUP BY 대신 ISNULL(SUM(CASE WHEN ...)) 방식으로 쿼리 최적화하여 속도 증대. 예: 배송, 반품, 취소 등
유형별 집계 쿼리 개선
테스트 효율성을 위해 .http 파일 기반 통합 테스트 도입, 개발 및 유지보수 생산성 향상
상품페이지 실시간 유입 수 집계 프로세스 Databricks 마이그레이션
전사의 Request를 모델로 적재되어 있는 Databrick 데이터를 읽고 집계하는 워크플로우로 변경
카프카 컨슈머 앱 12대, 엘라스틱서치 (TPS 77, 12GB), 스프링 배치 앱 4대를 중단하여 연간 Job비용을 30만 원 수준으로 절감.
SSG.com 판매자 연동 및 고객문의 연동
SSG.com과 G마켓 간 판매자 및 고객 문의 데이터를 대규모 동기화하는 환경 구축. 셀러 등급, 유형, 상태 변경에 따라 상품 연동 여부를 관리하는 복잡한 로직 구현
문제점: 셀러 상태(등급/유형/상태)가 여러 도메인에서 변경되며 동기화 감지가 어려움. 이를 해결하기 위해 MsSQL Trigger를 도입
셀러의 동의 여부 혹은 상태 변동 시 Batch(1일 1회)로 SSG에 판매자 상태 연동 및 Item 팀에 상품 전체 연동 여부를 전달
프로젝트 팀원 2명 퇴사로 단독 수행, 모든 일정 준수 및 3개월간 장애 3회 이하 유지.
PricingTF - 타사 상품 매칭 및 가격 분석 시스템 구축
외부 경쟁사 대비 가격경쟁력을 갖추기 위한 데이터 플로우 초기 기획 및 외주 선정에 참여
기존 수동 매칭 방식(작업자 간 수동 분배 후 상품번호로 검색 및 경쟁사 상품 일일이 매칭)을 개선하기 위해 새로운 UX 제안 및 개발. 제안한 방식은 시스템이 상품번호를 자동 선택하고 타사 경쟁사 상품을 매칭하도록 설계, 매칭 작업 속도를 3배 향상
구체적으로 MongoDB에 datetime 컬럼을 추가하여 5분 경과 후 읽기 가능하도록 설정하고, findAndModify를 활용해 읽는 순간 락을 걸어 중복 작업 방지. 외주 매칭 업체를 위한 매칭툴은 .NET과 Vue로 어드민 개발
타사 검색 페이지 상품 리스트 매핑 파이프라인 구축
AI 팀과 협업하여 Databricks를 활용한 상품 데이터 처리 파이프라인 개발. 우리 상품 데이터를 기반으로 AI 팀에서 키워드를 추출한 후, Spark를 통해 explode로 중복 제거된 TSV 리스트 생성
외주 업체에 데이터를 전달하고, 외주 업체가 검색 페이지에서 하루 동안 수집한 상품 리스트를 반환하면, AI 팀이 이를 우리 상품명과 매칭. 최종 결과를 MongoDB에 적재하는 프로세스 구현
파일 전달 간 외주 업체와의 보안 강화를 위해 유효기간이 포함된 JWT 인증 도입.
협력업체 전용 데이터 수집·상품 매칭 지원 플러그인(Chrome Extension) 및 배포 자동화
외부 협력업체가 같은 상품을 수동으로 매칭하고 URL·가격·검색어 등을 복사해 어드민에 입력하던 병목을 줄이기 위해, 기존 어드민 백엔드를 그대로 활용하면서 프론트엔드를 Chrome Extension 형태로 새로 구성했습니다.
담당자는 후보 상품을 찾은 뒤 ‘매칭’ 버튼만 누르면 링크, 검색어, 가격, 상품명, 이미지 링크 등 필요한 정보가 자동으로 함께 수집되도록 만들었고, AI 팀 API를 활용해 추천 검색어와 상품명 유사도 기반 후보군도 함께 제공했습니다.
특정 외부 사이트에서 직접 링크 진입이나 반복 조회 시 차단되는 문제는 일반 사용자처럼 첫 화면에서 검색어를 입력해 이동하는 브라우징 흐름으로 자동화해 차단 빈도를 낮췄습니다.
배포는 개발자 모드 수동 설치 대신 update.xml 기반 자동 업데이트 구조와 .crx 배포로 전환해 코드 노출을 줄이면서 핫픽스와 업데이트를 자동화했습니다. 같은 구조를 활용해 사내 프로모션 게시판 신규 글 알림 플러그인도 제작했습니다.
가격관리 백오피스 시스템 구축 및 공통 Admin 템플릿화
스프레드시트 기반으로 운영되던 가격관리 업무를 데이터 정합성·권한 통제·이력 관리가 가능한 백오피스 시스템으로 재설계했습니다.
기존 .NET 관리자 구조 위에 표준화된 Spring Boot + Thymeleaf 기반 Admin 템플릿을 구축해, 설정 파일과 도메인 값만 바꾸면 새로운 관리자 시스템을 빠르게 생성할 수 있는 공통 기반을 마련했습니다.
데이터 측면에서는 Databricks와 JDBC로 직접 연동하는 조회 중심 아키텍처를 설계했고, 대용량 CSV 다운로드는 서버 메모리에 파일을 생성해 반환하는 방식 대신 Stream 기반으로 구현해 메모리 점유를 줄였습니다.
필요 시 Chunk/Batch 단위 분할 처리까지 고려해 반복 사용 가능한 운영 구조를 먼저 만드는 데 집중했고, 이후 다른 팀에서도 공통 스타터 형태로 확장하자는 제안이 나올 정도의 재사용 기반을 만들었습니다.
Knowledge Sharing
기술 전파 및 커뮤니티
롯데e커머스 사내 기술블로그 기고 및 온라인 발표
성과는 사내 기술블로그 첫 글로 선정되어 기록되었고, 2022년 6월에는 3인 발표자로 참여해 온라인 특강 형태로 공유했습니다: 블로그 게시글
G마켓 테크블로그 3기 에디터장 활동
기고 프로세스 간편화를 위해 Git 기반 PR 워크플로우 도입, 맞춤법 및 첨삭 작업 효율화.
외부 사이트 RSS 제공 및 UI 리뉴얼을 통해 방문 수를 일평균 10단위에서 500 이상으로 성장시킴. 총 방문 수 45만 달성
CORS 충돌 문제 해결, 스팸 댓글 관리 및 비밀글 옵션 제거로 사용자 경험 개선.
직접 기고한 블로그 글 목록:
전사 사내 학습 세션(SLS) 발표
임직원이 Speaker로 참여하는 Staff Learning Session(SLS)에서 두 차례 발표를 진행했습니다. 첫 발표에서는 '누구나 돈 한 푼 안 들이고 AI의 도움으로 업무를 대신할 프로그램 개발하기'를 주제로, AI 무료 활용법, 서버 없이 프로그램 실행 방법, 무료 코드 에디터 사용법을 소개하고 Grok을 활용한 Chrome Extension 시연을 진행했습니다.
두 번째 발표에서는 정적·동적 크롤링 기술과 AI의 6단계 발전(인지형, 생성형, RAG, MCP, Agent, 물리형)을 주제로, 최신 MCP(Model Context Protocol) 기술을 접목한 AI Browser Agent를 직접 시연하며 차세대 웹 자동화 및 업무 효율화 방안을 공유했습니다.
취업준비생 대상 현직자 특강 및 프로젝트 심사위원 / 한국경영혁신중소기업협회 추천 / 2025.05 ~ 현재
한국경영혁신중소기업협회 추천으로 더조은컴퓨터학원, MBC아카데미 등에서 취업준비생 대상 현직자 특강과 프로젝트 심사위원으로 7회 참여했습니다. 결과 나열보다 문제 정의, 선택 근거, 운영 기준을 설명하는 방식에 초점을 맞춰 코칭했습니다.
발표 자료 구성과 Q&A 대응까지 함께 다루며, 기술 선택을 말로 설명할 수 있는 수준까지 정리하도록 지원했습니다.
반포잠원교육지원센터 디지털 특강 / 2025.08 ~ 현재
엔트리·Python·Java를 활용해 문법 설명에 그치지 않고 캐릭터를 움직이거나 그림을 그리고 악보를 만들어보는 실습 중심 수업을 기획·운영했습니다.
HTML·CSS·JS 구조를 이해한 뒤 AI를 활용해 자신만의 웹페이지를 제작하도록 지도했고, 완성한 사이트는 패들릿에 공유해 서로 피드백을 주고받게 했습니다.
고용노동부 연계 디지털 인재 양성 과정 프로젝트 멘토링 (2회) / 2025.06 ~ 2025.08
고용노동부 연계 디지털 인재 양성 과정에서 프로젝트 멘토링 2건을 진행했고, 배달 중계 플랫폼 팀은 최종 발표 1등을 수상했습니다.
서비스 설계, 성능 병목, 데이터 흐름, 발표 구조와 Q&A 대응을 중심으로 피드백했습니다.
과학기술정보통신부 연계 멘토 활동 (3회) / 2026.03 ~ 현재
고령자 병원 동행 매칭, 휠체어 안전 경로 추천, AI 기반 학습 분석 플랫폼을 주제로 3회 멘토링을 진행 중입니다.
팀이 겪은 문제에서 출발한 아이디어를 제품 흐름과 데이터 구조로 구체화하는 방향으로 함께 정리합니다.
해커톤: 선질의(Pre-Query)형 검색창을 통한 관심사 기반 추천시스템
1인팀으로 참가. 기획, 발표, 개발 모두 진행.
검색창 입력 전 짧은 선질문을 제시하고, 응답을 바탕으로 비회원 사용자의 관심사와 구매 맥락을 초기 추정해 추천 결과에 반영하는 프로토타입을 구현했습니다.
최종 순위권에는 들지 못했으나 특허 심사 후보에는 발탁되어 진행.
특허
교차로 꼬리물기 방지를 위한 신호 제어 시스템 / 특허 출원
출원번호: 10-2019-0094108
교차로 CCTV 영상을 OpenCV·YOLO 기반으로 분석해 특정 구역 내 차량 정체를 감지하고, 일정 기준 이상 정체가 지속될 경우 적색 신호 전환을 제안한 시스템입니다.
Core Stack