채용공고 올리기

김도희님을 응원해보세요!

좋은 제안에 열려있어요
성실함
책임감
학습 지향
자기 주도적
긍정적

미리보기

기본 정보

이름
김도희
직업
Data/Server Engineer
간단 소개

3년차 백엔드 엔지니어로서 결제, 회계, 이커머스 등 다양한 도메인에서 대용량 데이터 처리와 시스템 최적화 경험을 쌓아왔습니다. Eximbay에서는 정산 및 매출신고 시스템을 개발하며 SQL 튜닝을 통해 쿼리 성능을 97% 개선했습니다. 이는 시스템 응답 시간을 크게 단축하여 사용자 경험을 향상시켰습니다. Ktown4u에서는 백엔드 개발 경험을 바탕으로 데이터 엔지니어링 기술을 습득하여 데이터 파이프라인을 구축했습니다. 특히 pandas에서 duckdb와 polars 조합으로 데이터 처리 기술을 전환하여 처리 시간을 95% 단축하는 성과를 달성했습니다. 새로운 기술에 대한 빠른 습득력을 바탕으로 시스템 성능 개선과 최적화에 주력합니다. 정산 시스템 개발, 거래 대사 배치 관리, 지급대행 서비스 구현 등을 통해 고정밀 서비스 구축 및 유지보수 경험을 쌓았습니다. 앞으로는 대용량 데이터 처리와 데이터 엔지니어링 역량을 융합하여, 확장 가능하고 효율적인 백엔드 아키텍처를 설계하는 전문가로 성장하고자 합니다. 이를 통해 비즈니스 요구사항과 기술적 혁신을 모두 충족하는 고성능 백엔드 시스템을 구현하는 것이 목표입니다.

기술 스택

기술 스택

Java, Python, SQL, Apache Spark, 객체지향, TDD

경력

회사명

주식회사케이타운포유

직급 | 부서 | 근무 유형

사원 | 백엔드개발팀 | 재직 중

근무 기간

2023.08. ~ 재직 중 (1년 7개월)

담당 업무
  • databricks 를 활용한 데이터 플랫폼 구축 및 유지보수

  • 이커머스의 매출 데이터를 활용한 매출 분석용  파이프라인 개발

  • Java, Spring 기반의 백오피스 개발

회사명

(주)스팬딧

직급 | 부서 | 근무 유형

매니저 | 백엔드 개발팀

근무 기간

2023.04. ~ 2023.08. (5개월)

담당 업무
  • 레거시 개선 및 기존 비즈니스 유지보수
    • 환율 수집시, 3개의 API 중 우선순위 지정하는 보수작업
    • ERP 연동시, Open API 연동 작업
  • 수습시간 후 연장하지 않음
회사명

주식회사 엑심베이

직급 | 부서 | 근무 유형

매니저 | 온라인 PG 플랫폼팀

근무 기간

2022.05. ~ 2023.03. (11개월)

담당 업무
  • 지급대행 서비스 개발(2022.09 ~ 2023.03)
    • 지급대행 Open API 서비스 및 백오피스 설계 및 개발,
    • 레거시 테이블 고도화
  • 부가세 참고 자료 개발(2022.09 ~ 2022.10)
    • 초기 설계 및 개발 & 데이터 정합성 일치 & 성능 개선
  • 여신협회 영중소 데이터 히스토리 관리(2022.08 ~ 2022.09)
    • 초시 설계 및 개발 & 새로운 기술 스택 도입 & 성능 개선
  • 레거시 개선 및 기존 비즈니스 유지보수
    • 페이징 쿼리 최적화 설계 및 개발
    • 비사업자 가맹점 프로세스 개발
    • 운영업무의 효율을 위해 업무 요청 템플릿 배포
    • 조회 쿼리 최적화 설계 및 개발

프로젝트

프로젝트명

주문/배송기준 매출신고용 데이터마트 설계, 모델링, 파이프라인 구축

소속/기관명

케이타운포유

프로젝트 기간

2024.01. ~ 진행 중

프로젝트 내용
  • 배경
    • 국세청에 신고할 매출분석 데이터를 추출하고자 하는 요구사항이 존재
  • 구현과정
    • 주문상품, 주문별 매출유형을 따로 구하여 분석에 용이하게 변경
    • 결제시 사용된 마일리지를 상품과 배송에 사용된 마일리지로 분배(원천 데이터에서는 하나의 컬럼으로 표현)
    • 영세, 과세 구분하여 주문금액 분리
    • 통화별로 환율을 적용하여 원화환산
    • Star Schema 사용
  • 겪었던 문제
    • 소수점에 대한 사칙연산이 많아 부동소수점 이슈로 인해 부정확한 금액 추출
      • DECIMAL 타입 적용으로 해결
    • 배치 파이프라인 실행 과정 중 OOM 이슈
      • Shuffle Partition 과 GC 튜닝 적용
프로젝트명

실시간 CDC 파이프라인 구축

소속/기관명

케이타운포유

프로젝트 기간

2023.12. ~ 진행 중

프로젝트 내용

환율 파이프라인 구축

  1. 배경
  • Ktown4u는 한국뿐만 아니라 중국, 미국 등 여러 나라로 상품을 판매하는 글로벌 이커머스 플랫폼입니다. 따라서 매출분석시 각 나라 상점별로 원화로 환산하여 매출을 구하게 됩니다.
    • 이때 환율의 경우 한국수출입은행을 기준으로 가져오게 되나, 휴일의 경우 환율 정보가 존재하지 않아 늘 최신의 환율을 구해야만 했습니다.
    • 최신이란 건 정렬을 반드시 사용해야하며 이는 데이터 추출시 SELECT 의 서브 쿼리에 사용하게 되면, 성능에 영향이 가게 됩니다.
    • 따라서 환율을 구하지 못한 날짜에 가장 최신의 환율을 실시간으로 적용하는 파이프라인을 구축하게 되었습니다.
  1. 구현과정
  • databricks 의 Autoloader 와 File Arrival 모드를 활용
    • 환율의 CDC parquet 파일이 생성되면 자동으로 실행하여 업데이트
    • WINDOW 연산을 활용
  • databricks 의 Medallion Architecture 중 silver 와 gold 테이블을 Materialized View 로 구현
  1. 결과
  • 매출분석시 파이프라인 결과물 테이블을 참조하게 된 후 SELECT 의 서브쿼리와 정렬을 사용하지 않게 되어 전반적인 추출 속도 향상
  • 사내 세미나 발표

배송비 및 배송비 변경 이력 파이프라인 구축

  1. 배경
  • Ktown4u는 해외로 배송되는 수출량이 많으므로 배송비 정책에 따른 이익 및 매출의 변동이 존재합니다.
    • 언제 어떻게 변화할 수록 배송이익이 변화하는지 데이터로 보고자 하는 요구사항이 있었습니다.
    • 데이터에서는 가장 최신의 데이터만 보여주게 되어있으므로 이에 대한 확인이 어려웠습니다.
  1. 구현과정
  • databricks 의 SCD Type 1과 2를 활용
  • AWS DMS, S3, databricks 의 Autoloader(directory listing mode) 를 활용
    • DMS 에서 Writer 클러스터의 이진로그를 S3 에 적재
    • Autoloader 와 File Arrival 모드에서 S3 에 CDC 적재 확인 후 파이프라인 실행
  1. 결과
  • 배송비 변경 이력을 확인할 수 있어 배송비 정책을 어떻게 변경하는냐에 따른 이익을 확인할 수 있게됨

상품 카테고리 정제 파이프라인 구축

  1. 배경
  • 상품 카테고리의 데이터가 Path Enumeration 형식으로 저장되어 있었습니다.
    • 따라서 특정 상품의 전체 카테고리를 확인하려면 path 를 끝까지 연결하여 확인해야하는 불편함이 존재했습니다.
  1. 구현과정
  • Spark 에 존재하는 explode 와 split 을 사용
  • 자식 카테고리가 가지는 모든 부모 카테고리와 자신을 행과 열로 표현
  1. 결과
  • 기존에는 전체 카테고리를 확인하려면 같은 테이블을 최대 4번까지 left join 해야했으나 현재는 하나의 테이블로만 join 가능
프로젝트명

부가세 참고자료 개발

소속/기관명

엑심베이

프로젝트 기간

2022.09. ~ 2022.10.

프로젝트 내용

분기별(3개월) 혹은 원하는 날짜에 맞는 결제수단별 거래데이터를 분리하여 통계 및 상세 데이터 조회 및 엑셀 다운로드 기능을 개발했습니다

  • 데이터 정합성 불일치와 슬로우 쿼리 문제와 xlx형식의 엑셀을 제공하여 최신 버전의 엑셀 뷰어로 열 경우 깨지는 현상이 발생
    • 고객이 엑심베이내 부가세 참고자료를 이용해 신고한 매출액과 국세청에서 확인한 매출액이 일치하지 않아 큰 액수의 벌금 부과가 고객에게 발생
    • 데이터 정합성 일치와 쿼리 튜닝 작업을 수행하고, xlsx 형식에 맞는 엑셀 라이브러리 업데이트를 진행
  • 특정 기간 동안 국내 간편결제수단으로 처리된 거래 데이터를 결제 수단(신용카드, 현금, 기타 매출), 통화, 월별로 분류하여 통계 정보 및 상세 거래내역 제공
    • 불필요한 테이블 제거, Left Join을 Inner Join 으로 변경, 인덱스 사용 등으로 쿼리 튜닝을 진행하여 상세 내역 조회 기능을 개선함
    • 자료구조 중 해시테이블을 사용해 통계 계산 성능을 향상시킴
  • 결과
    • AS-IS 통계 데이터 없이 매출 상세 내역만 제공함 | 쿼리 수행 속도 : 1초당 약 92건
    • TO-BE 통계 데이터 및 상세 내역 제공함 | 쿼리 수행 속도 : 1초당 약 1300건
    • 약 14배의 수행속도 향상
  • 기술스택
    • Java 8, MySQL, JSP, javascript, HTML/CSS
프로젝트명

여신협회 영중소 데이터 히스토리 관리

소속/기관명

엑심베이

프로젝트 기간

2022.06. ~ 2022.06.

프로젝트 내용

여신금융협회에서 반기마다 제공하는 약 400만건↑의 사업자번호를 관리하는 프로세스의 자동화를 구현했습니다.

  • 여신협회에서 제공하는 데이터는 컬럼 순서대로 어떤 데이터를 의미하는지는 명확했지만, 구간별로 데이터의 개수가 다른 다차원 배열 형태이므로, 이를 처리하기 위해, 파이썬의 Numpy와 Pandas 모듈을 사용하여 열 단위로 데이터를 처리
  • 자바로 작성된 코드를 파이썬 프로그램으로 변경
  • 결과
    • 테스트 데이터 1,110건 / 전체 데이터 4,551,138건
    • 자바 : 테스트 데이터 1,110건 기준 4.032초 → 전체 데이터 4,551,138건 일 때, 약 16,532초↑
      파이썬 : 실제 수행시간 → 12972.440720796585초, 약 12,972초
      ⇒ 30%의 성능 개선
  • 기술스택
    • Python, MySQL
프로젝트명

지급대행 서비스 개발

소속/기관명

엑심베이

프로젝트 기간

2022.09. ~ 2023.03.

프로젝트 내용

송금 업무를 수행하는 국내 오픈마켓 사업자를 위해 각각의 판매자에게서 발생한 매출을 위탁 송금을 하기 위한 서비스입니다

  • 가맹점, 거래, 정산, 송금, 매입 등 30여개 이상의 여러 스키마에 존재하는 테이블에 대해 객체 중심의 ORM 개발로 고도화
    • 고도화된 엔티티를 다른 프로젝트에서도 재사용함으로서 개발 효율 향상에 기여
    • 개발 일정을 예정보다 20% 정도 앞당겨 준수
  • 매출청구 및 정산, 송금 상태별 수수료 포함 데이터 조회 API 개발
    • SRP를 준수하여 순환 참조를 최대한 방지하고 유지보수 및 레거시 청산에 기여
    • 기존에 사용중인 정산, 송금 데이터 조회 API에 대해 불필요한 테이블 제거 및 인덱스 사용 등을 실행계획을 통해 비교하며 튜닝
      • AS-IS : 219ms → TO-BE : 125ms으로 약 2배의 효율로 개선함
    • ISP, DI를 준수하여 ORM 도입을 진행했고, 이를 통해 코드 유지보수와 안정성 향상에 기여
  • Eximbay에서는 테스트 주도 개발 방식의 개발문화를 처음으로 도입
    • API 연동 과정 중 발생하는 버그 및 에러를 빠르게 잡아내서 서비스의 안정성에 기여
  • 고객 측에서 설정한 서버의 URL에 심사완료정보, 수수료 및 정산주기 변경 정보를 발송하는 API와 관리자가 해당 정보를 확인할 수 있는 화면을 개발
  • 기술스택
    • Spring, Java 8, MySQL, JPA, Querydsl, JSP, javascript, HTML/CSS
프로젝트명

crewcrew

소속/기관명

개인

프로젝트 기간

2021.11. ~ 2022.08.

프로젝트 내용

관심사나 학습에 대한 스터디를 같이 할 사람들을 모집하는 플랫폼을 제공했습니다.
사용자는 자신의 관심사나 학습 분야를 선택하여 해당 분야에서 활동하는 다른 사용자들과 함께 스터디를 진행할 수 있습니다.

  • 이슈 및 고민한 점
    • 여러 검색 조건에 따른 조회 기능 구현을 위한 동적쿼리
      • 게시글 조회 시, 여러 조건이 존재할 경우 조건별로 오버로딩된 메소드를 개발하는 것은 유지보수 측면에서 효율이 떨어질 수 있습니다.
      • 따라서 저는 Spring에서 지원하는 Querydsl을 이용하여 Boolean Expression과 Boolean Builder를 활용하여, 조건별로 동적 쿼리를 하나의 메소드 안에 구현하는 방식으로 개발하였습니다.
      • 이를 통해 동적으로 쿼리를 생성하고 실행하는 것이 가능해졌으며, 메소드의 오버로딩 없이도 여러 조건을 효율적으로 처리할 수 있게 되었습니다. 또한, 이 방식은 유지보수성을 높이는데 큰 도움이 되었습니다.
    • RDBMS에서의 계층형 카테고리 구현
      • 게시글은 필수적으로 깊이가 2인 카테고리를 가지고 있어야 했으며, 이를 위해 계층형 카테고리를 구현해야 했습니다.
      • 이를 위해 Adjacency List를 사용했습니다.
      • Adjacency List는 가장 간단하고 직관적인 방식으로 계층형 카테고리를 구현할 수 있으며, Depth 가 동적으로 변한다면 계층형 JOIN 으로 성능 이슈가 발생할 수 있으나, 요구사항으로 Depth가 무조건 2로 고정되어있어 Join 이 한번만 발생하여 이를 채택했습니다.
      • 따라서 요구사항을 만족하면서도 정규화된 테이블을 구현할 수 있었습니다.

포트폴리오

URL

link

https://debugginglife.hashnode.dev/

URL 링크
link

https://github.com/Slowth-KIM

깃허브

교육

소속/기관명

안양대학교

종류 | 전공

대학교(학사) | 정보통신공학과

재학 기간 | 재학 상태

2015.03. ~ 2019.02. | 졸업

소속/기관명

선일여자고등학교

종류 | 전공

고등학교 | 이과

재학 기간 | 재학 상태

2012.03. ~ 2015.02. | 졸업

대외활동

활동명

안양대학교 정보통신공학과 소프트웨어 연구실 학부 연구생

소속/기관명

안양대학교

연도

내용
  • 소프트웨어를 중심으로 한 학부 내에서 모여 체계적인 학습을 진행했습니다.
  • 2학년 때 알고리즘, C, Java, Linux를 중심으로 발표세미나 및 페어프로그래밍 진행했습니다.
  • 3학년 때 각자 관심 있는 분야를 찾아 IoT와 인공지능 등에 대한 프로젝트를 진행했습니다.
  • 4학년 때는 후배를 도와주면서 자신의 분야를 더욱 발전시켰습니다.
활동명

아리세계탐방

소속/기관명

안양대학교

연도

내용
  • 영국, 아일랜드, 스페인을 다녀온 경험을 통해 IoT 기술을 이용해 환경문제를 해결한 나라들을 배울 수 있었습니다.
  • 일상생활에서 IoT기술을 직접 사용하며 사용자에게 자연스럽게 스며든 서비스가 무엇인지에 대해 배우고, 그런 서비스를 제공하는 개발자를 꿈꿨습니다.
  • 바르셀로나에서 만든 스마트 가로등을 보고 어릴 적 멀티탭의 전력과부하 때문에 겪었던 화재사고를 떠올렸고, 이를 방지하기 위해 웹으로 제어 가능한 화재 방지용 스마트 멀티탭을 만들고자 했습니다.

자격증

자격증명

정보처리기사

점수 | 발급기관

1급 | 한국산업인력공단

취득연월

2018.08.

외국어

외국어명

일본어

점수

일상 회화 가능

자기소개

자기소개

3년 경력의 백엔드 엔지니어입니다.
결제(국내/해외), 회계, 이커머스 등 다양한 도메인에서 근무하며 폭넓은 경험을 쌓았습니다. 주요 업무 경험은 다음과 같습니다

  1. 대용량 데이터 처리: 정산 및 매출신고 시스템 개발 및 개선

  2. 데이터 품질 관리: 고정밀 서비스 구축 및 유지보수

  3. 백엔드 시스템 개발: 지급대행 서비스 구현 및 거래 대사 배치 관리

새로운 기술을 배울 때 빠르게 습득하여 업무에 기여합니다.

Eximbay 입사 전, 요구된 SQL 튜닝 기술을 사전에 학습하여 입사 즉시 업무에 적용했습니다.

Ktown4u에서는 백엔드 개발 경험을 바탕으로 데이터 엔지니어링 기술을 신속히 습득했습니다. 이를 통해 데이터 파이프라인을 구축하여 영업 및 마케팅 부서의 데이터 기반 의사결정을 지원했습니다.

지속적인 서비스 개선과 기술 최적화에 주력합니다.

  1. SQL 성능 최적화:

    • 레거시 시스템의 SQL 쿼리를 개선하여 성능을 최대 97% 향상

    • 사용자 경험 대폭 개선 및 시스템 응답 시간 단축

  2. 대용량 데이터 처리 효율화:

    • pandas에서 duckdb와 polars 조합으로 데이터 처리 기술 전환

    • 처리 시간 95% 단축, 시스템 효율성 대폭 증가

경력 목표: 고성능 백엔드 시스템 전문가

다양한 도메인에서 축적한 대용량 데이터 처리 경험을 토대로, 데이터 엔지니어링 역량과 백엔드 개발 기술을 융합하여 다음을 목표로 합니다:

  1. 확장 가능하고 효율적인 백엔드 아키텍처 설계 및 구현

  2. 대용량 데이터이나 트래픽을 안정적으로 지원하는 서비스 개발

이를 통해 비즈니스 요구사항과 기술적 혁신을 동시에 만족시키는 백엔드 전문가로 성장하고자 합니다.


댓글