Table of Contents
소개
안녕하세요, 저는 Java 및 Kotlin을 사용하여 Spring Framework 기반의 서비스를 개발하는 개발자입니다. Redis, Kafka, Elasticsearch 등을 활용한 프로젝트 경험이 있으며, 다양한 기술을 통해 성능과 안정성을 확보하는 데 주력하고 있습니다.
제가 개발자로서 가장 중요하게 생각하는 요소는 팀원과의 소통입니다. 소통을 통해 결과물의 완성도를 높일 수 있을 뿐만 아니라 서비스의 안정성을 확보하고 효율적으로 일하는 팀이 될 수 있기 때문입니다. 또한, 효율적인 코드를 작성하고 문제를 해결하는 데 관심이 많으며, 팀원들과 협력하여 최상의 결과를 도출하기 위해 노력합니다. 항상 배우고 성장하는 자세로 임하며, 새로운 기술과 도구를 적극적으로 배우고 사용하는 것을 좋아합니다.
경력
티몬(Tmon)
- 기간: 2018.09 ~ 2018.10 (2개월)
- 직위: 인턴
프로젝트: APM 대시보드
설명
4명의 팀원이 가상의 상품 정보와 로그를 활용하여 APM 대시보드를 제작하는 프로젝트를 진행했습니다. 대시보드에는 다양한 메뉴와 그래프가 노출되는 웹페이지를 구현했습니다.
역할
- 데이터 모델링을 팀원들과 함께 진행
- Java + Spring REST API 작성 및 제공
성과 및 결과
프로젝트를 통해 다양한 의견을 수렴하고 하나의 프로젝트를 완성하는 과정이 의미 있는 경험이었습니다. 생각을 전달하거나 의견을 듣고 이해하는 과정이 익숙하지 않아 힘들었지만, 소통의 중요성을 배웠습니다.
NHN PAYCO
- 기간: 2019.01 ~ 재직중
- 직위: CLO플랫폼 개발팀(광고플랫폼 개발)/전임
프로젝트: 광고주 센터
기간: 2019.04 ~ 2020.01
설명
광고주가 광고 캠페인을 생성하기 위한 외부 웹페이지로, 프론트엔드는 Vue.js, 백엔드는 Kotlin + Spring Boot를 사용하여 개발했습니다. 프로젝트는 기능별로 나뉘어 진행되었고, 클린 아키텍처 기반으로 설계되었습니다.
역할
- 리포트 페이지 개발
- REST API 설계 및 리포트 데이터 조회 쿼리 작성
- 프론트엔드(vue.js) 작업
성과 및 결과
팀원들과 함께 정해진 시간 내에 웹페이지를 완성하고 서비스할 수 있었습니다. 하지만 의사소통 부족으로 인해 코드 리뷰와 화면 기획 회의가 부족해 아쉬움이 남았습니다.
프로젝트: CI/CD 이중화 구성
기간: 2020.07 ~ 2020.08
설명
제한된 인프라 환경에서 CI/CD(Jenkins) 툴의 이중화 구성을 진행했습니다.
역할
- 이중화 구성 검토 및 팀 내 공유
- Active-Standby 형태의 이중화 구성 진행
성과 및 결과
이중화 구성을 하면서 점점 늘어가는 배치성 잡들에 대한 안정성을 높여, 보다 질 좋은 서비스를 제공하는데 기여했습니다.
다만 아쉬웠던 점은 Active-Standby 구성, Master-Agent 구성 크게 두 가지 구성에 대한 제안을 했었지만, 제한적인 인프라 환경으로 인해 더욱 안정적인 구조를 만들어보지 못한 것입니다.
프로젝트: 통합 로그 시스템
기간: 2022.09 ~ 2022.11
설명
대용량 트래픽으로 발생하는 로그를 실시간에 가깝게 지표와 그래프로 제공하는 시스템을 개발했습니다.
역할
- Spark (spring-spark)을 이용한 로그 데이터 병합, 필터링, 가공 및 Elasticsearch 전송 어플리케이션 개발
성과 및 결과
해당 시스템은 운영/기획팀에서 CS 대응을 하는 용도 또는 특정 유저의 행동을 추적하기 위한 용도로 사용되고 사용하시는 분들이 다양한 대시보드를 만들어 사용하는 것을 보고 개발한 보람을 느끼기도 했습니다.
다만 개발하면서 분리되어 있는 서비스들의 일짜별 로그를 연결(병합)하는 과정에서 날짜 이슈가 있었지만, 해당 시스템을 사용하는데 영향이 없는 상황이 노운 이슈로 넘어가서 아쉬움이 남았습니다.
프로젝트: 트래커
기간: 2023.04 - 2023.05
설명
실시간에 가까운 유저의 행동을 트래킹하기 위한 서비스를 개발했습니다. 결제, 쿠폰 등과 같은 팀과 협업을 통해 진행되었고, 저희가 맡은 부분은 유저의 트래킹을 위한 설정과 광고주 사이트 내에 심을 트래킹 스크립트 작성하여 트래킹 정보를 수집하는 역할을 맡았습니다.
역할
- 트래킹 js 스크립트 작성
- 유저 트래킹 키 발급 및 메시지 큐 전달 로직 개발
- 결제, 쿠폰 팀에서 사용할 API 작성
성과 및 결과
유저의 페이지 이동부터 최종 결제까지 수 초 내에 트래킹 및 트래킹 정보를 활용한 로직까지 모두 수행해야 하기 때문에 해당 작업은 모두 레디스와 ES 등으로 작업이 되었고, 결과적으로 기획 요구사항에 맞게 서비스할 수 있었습니다.
다만 개발 기간이 촉박하여 백업 플랜과 검증에 대한 부분이 미흡했던 점이 아쉬웠습니다.
프로젝트: 결제 기반 이벤트 시스템
기간: 2023.08 - 2023.10
설명
결제 정보를 기반으로 하는 이벤트 시스템 로직을 개발했습니다. 해당 시스템은 결제, 쿠폰 등의 정보를 활용하여 유저에게 포인트를 지급하는 시스템으로 핵심적인 로직을 통해 단계별로 혜택을 추가적으로 얻을 수 있는 시스템입니다.
역할
- 유저 상세 혜택 페이지 개발
- 쿠폰, 결제 정보 API 및 Kafka로부터 데이터를 조회 하는 ETL 시스템 개발
성과 및 결과
제가 해당 프로젝트를 진행하면서 맡았던 역할은 유저에 보여지는 포인트 상세 페이지를 개발했습니다. 또한 결제 및 쿠폰정보를 API 및 Kafka를 통해 받아와 실시간에 가깝게 혜택 등을 보여줄 수 있도록 하는 시스템을 개발했습니다.
팀내 Github Actions 적용
기간: 2024.04 - 2024.04
설명
Github Actions를 팀 내에 적용하여 Sonarqube 연동, 어플리케이션 빌드 및 배포 자동화를 제안 및 진행했습니다.
역할
- Docker 기반의 Github Actions 설치
- 다양한 workflows 작성 및 적용
성과 및 결과
Github Actions 설치 및 다양한 workflows 들을 작성하면서 빌드 및 배포 자동화를 통해 개발자들의 업무 생산성을 높였습니다. 또한 외부에서 운영 하고 있던 sonarqube를 Github Actions로 일원화하여 관리 측면에서 접근성을 높일 수 있었습니다.
진행하면서 아쉬웠던 점은 Github Actions Runner의 리소스 최적화와 workflows 공유가 부족했던 점이 아쉬웠습니다.
맺음
좋은 분들과 함께 일할 수 있으면 좋겠습니다.