About Me
- 2017년 SK플래닛에 신입 공채로 입사하여, 현재는 11번가에서 전시 서비스 및 플랫폼 개발 업무를 담당하고 있는 5년차 백엔드 개발자 입니다.
- Java, Spring Framework 환경의 개발 경험이 많고, 최근에는 Batch, Kafka 관련 개발도 하고 있습니다.
- 깔끔한 코드, 성능이 좋은 코드를 짜고 싶은 욕심이 있습니다!
- 테스트 코드가 당연시되고 코드리뷰가 활발한 수평적인 분위기의 팀에서 일하고 싶습니다.
Projects
주요 내용
- 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번가 모바일 메인탭의 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
2018.9 SK플래닛에서 분사
11번가 전시 서비스 및 플랫폼 개발
11번가 전시 서비스 개발
Education
KOREATECH
한국기술교육대학교 컴퓨터공학부
2011.3 - 2017.2
- 학사 졸업
- 평점 평균 4.39/4.5
Coursera
Udemy