Jang Junyeong

11Street Back-end Software Engineer

About Me

  • 2017년 SK플래닛에 신입 공채로 입사하여, 현재는 11번가에서 전시 서비스 및 플랫폼 개발 업무를 담당하고 있는 5년차 백엔드 개발자 입니다.
  • Java, Spring Framework 환경의 개발 경험이 많고, 최근에는 Batch, Kafka 관련 개발도 하고 있습니다.
  • 깔끔한 코드, 성능이 좋은 코드를 짜고 싶은 욕심이 있습니다!
  • 테스트 코드가 당연시되고 코드리뷰가 활발한 수평적인 분위기의 팀에서 일하고 싶습니다.

Projects

11번가 전시 상품 데이터 플랫폼 개발

2020.5 - 현재

주요 내용

  • 11번가 전시 상품 데이터는 Oracle DB의 Stored Procedure가 일정 주기로 실행되며 반정규화 테이블에 추가/수정/삭제되는 구조였음. 이 구조에서는 Oracle DB와의 의존성을 끊을 수 없는 상태이고, 일정 주기로 갱신이 이루어지기 때문에 실시간성이 떨어짐
  • 이를 개선하기 위해 이벤트 기반으로 상품 데이터의 실시간 갱신이 가능하고 Oracle DB에 종속되지 않고 어느 DBMS로도 변경할 수 있는 시스템을 구축하였음

본인이 기여한 점

  • 팀원들과 함께 논의하여 전체 프로세스 설계
  • Spring Kafka 기반 Consumer Application 개발
  • Kafka JDBC Connector를 구축하여 RDBMS 데이터 변경 분을 Kafka 메세지로 생성
  • Kafka Broker/Consumer/Producer의 다양한 옵션에 대한 research 및 performance test
  • ELK, Grafana, Metricbeat를 활용한 모니터링 환경 구축
  • 기존 데이터와 신규 데이터의 비교 및 검증을 위한 Validator 구현 및 Grafana를 통한 시각화
  • Spring Batch 기반 전시 상품 데일리 갱신을 위한 Batch Application 개발

사용한 기술스택 및 지식

  • Java 11, Spring Kafka, Spring Data MongoDB, Spring Batch
  • Kafka Broker/Producer/Consumer/JDBC Connector
  • MongoDB
  • Elasticsearch, Logstash, Kibana, Metricbeat, Grafana

결과 및 성과

  • 2021년 상반기 내 상용 서비스 예정
  • 이벤트 기반 갱신으로 기존 대비 빠른 데이터 갱신
  • 고비용의 Oracle DB에서 MongoDB를 사용함으로 인한 비용 절감
  • 이벤트 기반 아키텍처의 이점인 느슨한 결합, 내구성, 확장성, 유연성 제공

11번가 전시 서비스 개발

2017.3 - 2020.4

주요 내용

  • 11번가 모바일 메인탭의 External Web API 개발 (프론트엔드에 제공)
  • 사내 서버 간 데이터 연동을 위한 Internal Web API 개발
  • 레거시 코드의 리팩토링, 성능 개선, 신규 프로젝트로 이관
  • 전시 플랫폼의 코어 로직 신규 개발 (영역 간 데이터 공유 기능, 페이징 기능 등)
  • 애플리케이션 오류 모니터링, 운영 이슈 대응

본인이 기여한 점

  • 다양한 주체와 원만하고 명료한 커뮤니케이션 (기획자, 디자이너, 다른 팀 서버 개발자, 프론트엔드 개발자, QA 담당자)
  • 단위 테스트를 작성하여 변경에도 안전하도록 신뢰성 보장
  • 응답 시간이 높은 API에 대한 병목 원인을 분석하고 다양한 방법으로 성능 개선 (캐싱, Thread Pool을 통한 병렬 처리 등)
  • DDD에서 설명하는 Layer의 역할별로 코드를 리팩토링, 의존성 주입이 가능한 형태로 코드를 리팩토링

사용한 기술스택 및 지식

  • Java 8, Spring Boot, JPA(Spring Data JPA, Querydsl), MyBatis, JUnit 5, RxJava, Caffeine (in-memory cache), Oracle DB SQL
  • async-profiler를 활용한 성능 프로파일링, Apache JMeter를 활용한 서버 부하 생성

결과 및 성과

  • 완성도 있는 서비스를 일정을 준수하여 개발 및 배포하여 회사 매출에 기여
  • API 응답 시간 개선으로 사용자 경험 향상, 서버 리소스를 효율적으로 운영
  • 리팩토링을 통해 코드의 가독성, 재사용성, 테스트가능성을 높임
  • 전시 플랫폼의 코어 로직 개선으로 다양한 기획 요구사항을 수용 가능하게 되었음
    • 영역 간 데이터 공유가 가능하게 되어 복잡한 UI로 디자인된 영역을 개발할 수 있게 되었음
    • 페이징 기능을 베스트탭, 꾹꾹탭에 적용하여 서버 응답시간을 단축하면서도 화면에 더 많은 상품을 보여줄 수 있게 되었음

Experience

11번가

Manager

2018.9 - 현재

https://www.11stcorp.com/

2018.9 SK플래닛에서 분사

11번가 전시 서비스 및 플랫폼 개발

SK Planet

Manager

2017.1 - 2018.8

https://www.skplanet.com/

11번가 전시 서비스 개발