미리보기
기본 정보

안녕하세요! 주도적으로 문제를 해결하는 백엔드 개발자 김찬빈입니다. [핵심 역량] • 커머스 플랫폼 및 백오피스 개발, 배포, 운영 담당 • 리팩토링과 객체 지향 설계를 통한 유지보수성 높은 코드 작성 능력 • OracleDB, MySQL 등 RDBMS 활용 프로젝트 경험, 성능 최적화 및 쿼리 튜닝 경험 • ORM(JPA/Hibernate), SQL Mapper(Mybatis) 프레임워크 활용 능력 • 테스트 코드 및 QA 프로세스 구축으로 시스템 안정성 확보 경험 • 개발 경험의 문서화와 공유를 통한 팀 생산성 향상 기여 • 기술적 개념을 비기술 팀원에게 효과적으로 전달하는 커뮤니케이션 능력 [기술 스택] 실무에 사용했거나 사용중입니다: • Java, Spring Boot, OracleDB, Mybatis, JPA/Hibernate, Querydsl, JUnit, Mockito, JSP, jQuery, Git 개인 프로젝트에서 사용해보았습니다: • MySQL, Redis, AWS(EC2, S3, RDS), Github Actions 현재 공부중입니다: • Docker, Jenkins, Clean Architecture
경력
엑스얼라이언스
백엔드 개발자 | SW개발팀 | 재직 중
2023.06. ~ 재직 중 (1년 8개월)
패션 브랜드 루이까또즈를 포함한 다양한 분야의 계열사를 운영하는 지주회사
패션 브랜드 루이까또즈 직영몰 개발
직영몰 API 개발 및 유지보수 (주문/환불 서비스, 쿠폰 서비스, 장바구니 서비스 등)
백오피스 유지보수
VOC 분석 및 관련 기능 개선
백오피스 주문 관리 페이지의 느린 로딩 속도를 개선하기 위해 진행
슬로우 쿼리의 실행 계획을 분석해 풀 테이블 스캔이 발생하는 쿼리를 식별하여 최적화
쿼리 실행 시간 단축 (5.09s -> 0.35s)
프로젝트 배포 후 버그가 지속적으로 발생하는 문제를 개선하기 위해 도입
신규 기능에 대한 테스트 코드 및 QA 테스트를 도입하여 사전에 버그 발견 및 해결
프로젝트 배포 후 발생하는 버그 감소
주도적인 업무 개선 수행
20여 개의 시스템 버그 식별 및 해결로 서비스 안정성 향상
상품 전시 순서 변경, 기획전 숨김 처리 등 반복 작업을 자동화하여 핵심 비즈니스 업무에 집중할 수 있는 환경 구축
시스템 설정 및 트러블 슈팅 사례 문서화
시스템 설정 및 트러블슈팅 사례 체계적 문서화
OOM 에러 발생으로 Eclipse MAT툴을 사용해 Heap dump 분석
조건 누락으로 인한 전체 회원 조회 문제를 파악하여 해결방안 기록
동일 이슈로 OOM 재발하여 문서 기반으로 신속 대응. 다운타임 최소화
프로젝트
루이까또즈 직영몰 지역별 배송비 부과 기능 개발 | 운영
엑스얼라이언스 • SW개발팀
2024.10. ~ 2025.02.
지역별 배송비 부과 및 초기 배송비 환불 정책에 맞춰 주문, 반품, 교환 프로세스를 수정하고 상품별 배송비 부과 -> 주문별 배송비 부과 로직 변경
개발 인원
백엔드 1명, 퍼블리셔 1명
담당 역할 - 백엔드
로직 플로우 설계
배송비 부과 API 개발
우편번호를 기반으로 지역별 배송비 자동 부과 기능 추가
초기 배송비 환불 정책에 맞춰 주문, 반품, 교환 프로세스 수정
상품별 배송비 부과 -> 주문별 배송비 부과 로직 변경
기여한 내용
레거시 개선
배송비 정보가 코드 곳곳에 하드코딩되어 있어서, 과거 주문의 배송비 히스토리 관리가 되지 않았고 배송비 정책 변경 시 유지보수 어려움 발생하여 개선 진행
배송비 정보를 데이터베이스로 통합 관리
과거 주문을 포함한 배송비 히스토리를 추적하고 배송비 정책 변경에 따른 개발 소요 시간 대폭 감소
사용 기술
Back-end : Java 1.8, Spring 5.3, Oracle 11g, Mybatis
Front-end : JSP, jQuery
Middleware : JEUS, WebToB
Server : CentOS
루이까또즈 프로모션 페이지 개발 | 운영
엑스얼라이언스 • SW개발팀
2024.12. ~ 2025.01.
선착순 이벤트, 랜덤 쿠폰 이벤트 등 루이까또즈 오프라인 매장 전용 프로모션 페이지
개발 인원
백엔드 1명, 퍼블리셔 1명
담당 역할 - 백엔드
이벤트 API 개발
선착순 참여 기능 구현
랜덤쿠폰 알고리즘 구현
기여한 내용
서비스 다운타임 단축
기존 프로모션 페이지 생성할 때마다 서버 재기동으로 인한 서비스 중단 시간(10분 ~ 20분)을 최소화하기 위해 진행
서버 재기동 없이 JSP 파일 배포만으로 프로모션 페이지 생성되도록 프로세스 개선
서비스 다운타임 100% 단축 및 마케팅 대응 속도 개선
기존 랜덤 쿠폰 발급 알고리즘을 최적화하여 불필요한 임시 List 생성 로직을 제거하여 메모리 효율을 높이고 계산 과정을 간소화
20종 쿠폰, 100만 건 기준 쿠폰 발급 시간 약 91% 단축 (0.391s -> 0.027s)
사용 기술
Back-end : Java 1.8, Spring 5.3, Oracle 11g, Mybatis
Front-end : JSP, jQuery
Middleware : JEUS, WebToB
Infra : CentOS
루이까또즈 직영몰 선물하기 서비스 | 신규
엑스얼라이언스 • SW개발팀
2024.04. ~ 2024.07.
루이까또즈 직영몰에서 상품을 구매하여 다른 사람에게 선물을 보낼 수 있는 서비스
개발 인원
백엔드 1명, 퍼블리셔 1명
담당 역할 - 백엔드
선물하기 관련 테이블 및 로직 플로우 설계
선물하기 서비스 API 개발 및 화면 구현 (선물하기, 선물 인증, 선물 거절/수락, 선물 주문 관리 등)
선물하기 관련 어드민 페이지 개발
카카오 공유하기 API 연동하여 선물 공유 기능 구현
Spring Schedular를 사용해 선물 받기 기한 만료 시 자동 결제 취소 및 카카오톡 알림 구현
기여한 내용
레거시 개선
선물 주문 로직 추가하면서 기존의 주문 로직의 복잡한 단일 메서드가 유지보수와 확장성에 어려움 발생하여 진행
단일책임원칙(SRP)을 적용하여 주문, 반품, 교환 기능을 각각 독립적인 메서드로 분리하여 코드 구조를 개선함
코드의 유지보수성이 향상되어 새로운 기능 추가가 용이해지고, 주문 로직의 가독성이 개선됨
개인 정보보호 강화
기존 로직에서는 카카오톡 공유 시 생성된 인증키만으로 인증을 진행하여, 선물 발송인과 수령인 모두 수령인의 배송 정보를 확인할 수 있는 문제가 발생
이를 해결하기 위해 선물 수락 후 수령인 전화번호로 인증번호를 전송하고 확인하는 이중 인증 시스템을 도입하여 수령인의 개인정보 보호를 강화
사용 기술
Back-end : Java 1.8, Spring 5.3, Oracle 11g, Mybatis, JUnit 5
Front-end : JSP, jQuery
Middleware : JEUS, WebToB
Infra : CentOS
사내 업무 성과 평가 시스템 개발 | 신규
엑스얼라이언스 • SW개발팀
2023.10. ~ 2024.01.
협업툴에서 연간 업무들을 크롤링하여 조직 내 업무 실적과 성과를 평가하고 관리하는 사내 맞춤형 평가 시스템
개발 인원
백엔드 1명, 퍼블리셔 1명, 크롤링 1명
담당 역할 - 백엔드
테이블 및 전체적인 로직 플로우 설계
전체적인 API 개발 및 화면 구현 (업무 데이터 처리, 평가, 결과 등)
평가 점수에 따른 팀 랭킹 시스템 개발
Apache POI 라이브러리를 사용해 평가 결과를 Excel 형식으로 다운로드할 수 있는 기능 개발
기여한 내용
잦은 요구사항 변경에 대응하기 위해 도입
JUnit5 + Mockito를 사용해 약 160개의 단위 테스트 코드 추가
코드 변경에 따른 리스크 최소화 및 코드 안정성 향상
MariaDB에서 Oracle로 데이터베이스를 전환하면서 Mybatis의 벤더 종속성으로 인해 유지보수와 확장성이 저하되는 문제를 경험하여 전환을 결정
테스트 주도 개발(TDD)을 통해 기능별 전환을 점진적으로 진행
데이터베이스 변경에 따른 코드 수정이 최소화되었고, 동적 쿼리 작성이 용이해져 유지보수성과 개발 생산성 향상
트러블 슈팅
JPA 벌크 삭제 시 각 엔티티에 대해 개별적인 SELECT, DELETE 쿼리를 실행. 삭제할 데이터가 많을수록 심각한 성능 문제 발생(N+1 문제)
Querydsl을 사용해 단일 쿼리로 벌크 연산하여 성능 문제 해결
벌크 연산 후 영속성 컨텍스트를 초기화하여 영속성 컨텍스트와 데이터베이스 데이터 불일치 문제 해결
타 팀에서 작업한 크롤링용 파이썬 스크립트 실행 중 에러 발생하여 원인 분석
필요한 모듈들이 가상환경이 아닌 전역환경에 설치되어 있어 문제 발생
원인 및 해결 방안을 문서화하여 담당 팀에 전달하여 해결
CentOS에서 애플리케이션 접속 시 SocketException: permission denied 발생
리눅스에서는 1024 미만 포트(Well-known ports)는 일반 사용자에게 권한을 주지 않음
firewall 설정을 통해 HTTP(80) 포트에서 8080 포트로 포트 포워딩하여 접속 문제 해결
사용 기술
Back-end : Java 1.8, Spring Boot 2.7, Oracle 11g, JPA/Hibernate, Querydsl, JUnit 5
Front-end : JSP, jQuery
Middleware : Tomcat
Infra : CentOS
소셜미디어를 담은 여행 동행 모집 서비스
개인
2023.03. ~ 2023.06.
Github : https://buly.kr/CLyosZP
개발 인원 : 총 4명 (백엔드 2명, 프론트엔드 2명)
담당 역할
API 개발(회원, 피드, 인증)
Spring Security Auth , Email 인증
Rest Docs API 문서 자동화
기여한 내용
사용 기술
Java 11, Spring Boot 2.7, MySQL, Spring Security, JPA/Hibernate, Querydsl, Redis
목표 달성 서비스 개발
개인
2023.01. ~ 2023.02.
개발 인원 :
총 7명 (백엔드 3명, 프론트엔드 4명)
담당 역할
API 개발(습관, 인증 게시물)
CI/CD 구성 및 RDS DB 세팅
기여한 내용
사용 기술
Java 11, Spring Boot 2.7, MySQL, JPA/Hibernate, Querydsl,
AWS(EC2, S3, RDS), Github Actions