
미리보기
- 직업
- 백엔드 개발자
- 이름
- 홍윤표
- 이메일
- ghddbsvy@gmail.com
- 간단소개
- Java, Spring boot를 활용하여 비즈니스 문제를 끊임없이 고민하고, 기술로서 문제를 풀어가는 개발자 홍윤표 입니다. 이커머스 플랫폼을 초기부터 런칭한 경험이 있으며, 자기주도적인 의견 제시를 통해 Elasticsearch 도입 및 검색 기능 개선, AWS Personalize 연동 추천 시스템 구축, Spring Batch를 활용한 데이터 처리, 무중단 배포 파이프라인 구축 경험이 있습니다. 실무 뿐만 아니라 개인적으로 기술 스터디를 꾸준히 진행하며, 방송통신대 컴퓨과학과에 입학하여 CS 지식을 체계적으로 쌓아가고 있습니다.
자기소개
- 자기소개
검색 기능 개선 경험
이커머스 플랫폼에서 검색 기능은 중요한 기능 중 하나입니다. 그러나 기존 개발되었던 MySql 의 like 쿼리를 사용한 검색의 결과는 고객이 상품 탐색 시 만족할 만한 결과를 주지 못한다고 판단되었습니다. 이미 많은 커머스 플랫폼이 사용하는 Elasticsearch 도입을 제안하였고, 적용하여 검색 결과의 다양성을 증가 시키면서, 정확도는 이전보다 더 높아지는 성과를 만들어 냈었습니다.추천 상품 기능 개선 경험
추천 상품의 기능을 개선을 위해 AWS Personalize를 도입하기도 했습니다. 도입 당시에 추천 상품은 회원 가입 시 등록한 관심 카테고리를 기반으로 한 추천 상품이어서 시간에 지남에 따라 변경되는 고객의 관심사에 맞는 추천 상품을 추천하지 못했습니다. 이러한 문제를 개선하기 위해 AWS Personalize를 도입했고, 실시간에 가까운 개인화된 추천 상품을 보여줄 수 있게 되었습니다. 이로 인해 추천 영역의 클릭 비율이 6.73%에서 10.22%로 크게 증가했습니다.배포 자동화를 통한 배포 안정성 기여
저는 이뿐만 아니라 배포 안정성을 위해 수동으로 배포하던 환경에서 AWS ECS + Gitlab Ci를 활용해 배포 자동화를 적용하였고 배포 안정성에 기여했습니다. 또한 이커머스에 등록되는 많은 이미지를 효율적으로 관리하기 위해 AWS Lambda@Edge를 활용한 이미지 리사이징 처리를 통해 이미지 저장 리소스를 최적화했습니다.푸시 발송 시간 최적화 경험
푸시 발송 기능의 경우 회원의 증가로 인해 푸시 발송 시간이 지연되는 문제가 발생했습니다. 이를 개선하기 위해 ThreadPoolTaskExcutor를 활용하여 병렬 처리를 적용하여 기존 푸시 발송 시간 8분대에서 3분대로 크게 단축시킨 경험도 있습니다.이미지 리사이징 처리 및 비용 최적화 (AWS lambda@edge, cloudfront)
상품의 썸네일과 상세 페이지에 노출되는 이미지는 적절한 크기로 조정해야 했습니다. 하지만 판매자가 이미지를 업로드할 때마다 직접 크기를 변경하거나 크롭하여 저장하면, 서버의 리사이징 처리 비용이 증가하고 저장되는 이미지의 수가 많아져 누적 비용이 발생할 것으로 예상되었습니다. 이러한 비용 문제를 최적화하기 위해 AWS Lambda@Edge와 CloudFront를 활용하였습니다. 요청이 들어오면 Lambda에서 이미지를 리사이징한 후 캐싱하여, 저장되는 이미지 개수를 줄이고 비용을 절감할 수 있었습니다.
Java와 Spring Boot를 활용하여 비즈니스 문제를 끊임없이 고민하고, 기술로 해결하는 개발자 홍윤표입니다.
저는 지난 6년간 여러 스타트업에서 근무하며 다양한 프로젝트를 수행했습니다. 마지막 회사에서는 이커머스를 제로베이스에서 시작하여 앱을 런칭하고, 약 MAU 10만 규모의 서비스로 성장시키며 약 3년간 운영한 경험이 있습니다.
기술을 통한 프로덕트 개선
안정성과 성능을 고려한 개발
좀 더 상세한 내용은 https://hongyoonpyo.notion.site/ 통해 확인하실 수 있습니다.
감사합니다
기술 스택
- 기술 스택
- JavaScript
- Java
- Spring Boot
- Spring Batch
- TypeScript
- Vue.js
- Nuxt.js
- Node.js
- AWS
- ec2
- cloudfront
- aws-rds
- aws-s3
- aws-lambda
- aws-ecs
경력
- 회사명
- 주식회사밀크코퍼레이션(MilkCorporationCorp.)
- 직책 • 부서
- 팀원 • 개발팀
- 근무 기간 (근무 형태)
- 2021.08. - 2024.10.
- (3년 3개월 | 정규직)
- 담당 업무
앱 API 유지보수 및 신규 기능 개발 / 백오피스 어드민 구현 및 유지보수
Elasticsearch 도입 및 검색 기능 고도화 (Nori 한글 분석기 적용)
AWS Lambda@Edge를 활용한 이미지 리사이징 처리 및 비용 최적화
무중단 배포 환경 구축으로 배포 안정성에 기여 (AWS ECS + GitLab CI)
Spring Batch를 활용한 배치 시스템 설계 구현 및 성능 개선
AWS Personalize 활용한 개인화 추천 상품 적용 경험
- 회사명
- (주)대체불가능한사람들
- 직책 • 부서
- 팀원 • 웹 개발팀
- 근무 기간 (근무 형태)
- 2020.12. - 2021.06.
- (7개월 | 정규직)
- 담당 업무
Spring boot 2, Nuxt.js 를 활용한 어드민 웹 서비스 개발
JPA, QueryDsl 도입을 통해 Mybatis 단점 개선 및 쿼리 오류 수 감소
gRPC 활용한 파일 스트리밍 업로드 구현 (비디오 업로드/다운로드)
AWS Pipeline을 활용한 CI/CD 구축 및 자동화 배포 환경 구성
- 회사명
- 컨셉터스
- 직책 • 부서
- 팀원 • 개발팀
- 근무 기간 (근무 형태)
- 2018.08. - 2020.11.
- (2년 4개월 | 정규직)
- 담당 업무
Spring 프레임워크 기반 레거시 프로젝트 유집보수 및 신규 기능 개발
Vue.js를 팀 최초 도입 및 프론트엔드 개발
AWS 인프라 구성 및 운영 관리 (EC2, S3, CloudFront, Load Balancer)
Node.js 기반 이미지 업로드/다운로드 서버 구축
프로젝트
- 프로젝트명
- 중고 상품 결제 환경 구조 - 키즈닝 세컨핸드 프로젝트
- 소속/기관명
- 밀크코퍼레이션
- 프로젝트 기간
- 2024.07. - 2024.10.
- (4개월)
- 프로젝트 설명
Java17, Spring boot 3.2, Spring batch, JPA, Querydsl, Spock framework, JUnit
중고 상품 결제, 상품 회수, 배송, 반품 상태 관리를 위해 시스템 설계 및 1인 프로젝트 진행
전반적인 시스템 설계 및 비즈니스 코드 작성, 테스트 코드 적용하여 성공적인 런칭
처음으로 프로젝트에 헥사고날 아키텍처를 도입하여 유연한 확장 및 수정이 가능한 구조 설계
- 프로젝트명
- 개인화 추천 영역 고도화
- 소속/기관명
- 밀크코퍼레이션
- 프로젝트 기간
- 2024.03. - 2024.03.
- (1개월)
- 프로젝트 설명
Java17, Spring boot 2.7, AWS Personalize
추천 상품 영역에 AWS Personalize 도입 제안 및 상품 큐레이션 API 개선작업
AWS Peronalize 의 who-viewed-x-also-viewe 레시피 적용
상품과 다른 카테고리가 노출되는 문제 해결을 위해 AWS Personalize 카테고리 필터 설정 추가
추천 상품 클릭 비율 증가로 성공적으로 프로젝트 마무리
6.7% → 10.22% (기존대비 약 +54% 증가)
- 프로젝트명
- 비회원 푸시 기능 추가 및 데이터 수집/시각화
- 소속/기관명
- 밀크코퍼레이션
- 프로젝트 기간
- 2024.01. - 2024.01.
- (1개월)
- 프로젝트 설명
Java17, Spring boot 2.7, Spring batch, Elasticsearch, Kibana
회원 푸시 발송 가능한 환경에서 비회원 푸시 가능하도록 개선 제안 및 작업 진행
회원,비회원 푸시 오픈 후 활동 데이터 수집 및 Kibana를 통한 대시보드화 작업 진행
- 프로젝트명
- 커뮤니티 개선 프로젝트 (피드형 구조로 개편)
- 소속/기관명
- 밀크코퍼레이션
- 프로젝트 기간
- 2023.12. - 2024.01.
- (2개월)
- 프로젝트 설명
기존 커뮤니티의 진입률을 개선하기 위해 피드 구조의 커뮤니티로 개편하는 프로젝트 진행
Java 17, Spring Boot 2.7, JPA, QueryDSL, Nuxt.js
Nuxt.js를 활용한 커뮤니티 웹 페이지 개발
피드 조회 후 구매 상품의 기여도를 측정하기 위해 앱/웹에서 결제까지 추적하는 로직 설계
웹에서 앱 상품 페이지로 바로 이동할 때 피드 고유값을 확인할 수 없는 문제를, 딥링크에 고유값을 포함하는 방식으로 해결
- 프로젝트명
- 회원 활동 데이터 수집 및 대시보드
- 소속/기관명
- 밀크코퍼레이션
- 프로젝트 기간
- 2023.12. - 2023.12.
- (1개월)
- 프로젝트 설명
Java17, Spring boot 2.7, Elasticsearch, Kibana
GA 에서 수집하는 데이터의 부정확성과 회원의 상세 정보를 확인 할수 없는 문제를 개선하기 위해 프로젝트 진행
Elasitcsearch와 kibana를 활용한 데이터 수집 및 시각화 시스템 설계 및 구축
회원 활동데이터 수집 및 시각화로 CRM 캠페인 효과 평가가 가능한 환경 구성
- 프로젝트명
- 상품 검색 기능 고도화
- 소속/기관명
- 밀크코퍼레이션
- 프로젝트 기간
- 2023.08. - 2023.08.
- (1개월)
- 프로젝트 설명
Java17, Spring boot 2.7, Elasticsearch, logstash
Elasitcsearch 도입을 통한 기능 개선 제안 및 프로젝트 진행
Logstash를 통해 상품 정보를 Elasticsearch에 동기화하는 작업 진행
Nori 한글 분석기 적용, 동의어,불용어 처리를 통한 검색 결과 최적화
기획에서 정의한 추천순 정렬조건을 function_score를 통해 처리.
- 프로젝트명
- 웹뷰 퍼포먼스 이슈 개선
- 소속/기관명
- 밀크코퍼레이션
- 프로젝트 기간
- 2023.04. - 2023.04.
- (1개월)
- 프로젝트 설명
Nuxt.js, typescript , lazysizes.js, cheerio, node.js
웹뷰로 보여주는 앱의 상품 상세페이지의 로딩 시간을 개선하기 위해 진행
cheerio 사용해 html 파싱 및 이미지 태그 src 제거 및 변경 처리
lazysizes를 통한 이미지 지연 로딩 구현
javascript의 onload 이벤트를 8초 → 1.4초로 단축해 앱내 상품 페이지 로딩 시간 개선
- 프로젝트명
- 상품 상세페이지,프로모션 웹 페이지 개발
- 소속/기관명
- 밀크코퍼레이션
- 프로젝트 기간
- 2022.12. - 2022.12.
- (1개월)
- 프로젝트 설명
앱 상품 페이지의 html 파싱 오류를 해결하기 위해 제안 및 프로젝트 진행
Nuxt.js, typescript, AWS ECS, gitlab-ci, docker, cloudfront
nuxt.js를 통한 SSR 개발 및 배포, flutter 웹뷰 라이브러리 통신 로직 구현
자동 배포 시점에 빈 페이지 노출되는 이슈 발생하여, 정적 파일을 Cloudfront에 배포 및 호출하도록 설정
- 프로젝트명
- 푸시 배치 성능 개선
- 소속/기관명
- 밀크코퍼레이션
- 프로젝트 기간
- 2022.11. - 2022.11.
- (1개월)
- 프로젝트 설명
푸시 발송 대상 회원이 증가하면서 발송 시간이 길어져 개선을 위해 진행
Spring batch의 ThreadPoolTaskExecutor 사용하여 병렬 처리하도록 개선
10만명 대상 기존 대비 약 62% 개선 (8분 → 3분)
- 프로젝트명
- 백엔드,프론트 CI/CD 자동 배포 적용
- 소속/기관명
- 밀크코퍼레이션
- 프로젝트 기간
- 2022.11. - 2022.11.
- (1개월)
- 프로젝트 설명
수동 배포로 인한 시간 소모와 불안정한 배포를 개선하기 위해 의견 제시 및 자동 배포 환경 구축
Gitlab ci 를 통해 docker 빌드, AWS ECS 에 자동 배포되도록 구축
배포에 할애되는 시간을 단축하고, 자동 배포로 안정성을 강화
- 프로젝트명
- 정산 배치 수정 및 테스트 코드 도입
- 소속/기관명
- 밀크코퍼레이션
- 프로젝트 기간
- 2022.08. - 2022.08.
- (1개월)
- 프로젝트 설명
Java 17, Spring batch , Spock, QueryDsl, JPA
정산 배치 수정사항을 빠르게 반영하고, 테스트 코드로 안정성을 보장하기 위해 도입
Spock, Jacoco를 도입하여 확장 및 수정시 유지보수에 안전하도록 테스트 커버리지 100%
팀내 최초로 테스트 코드 적용하여 개발 문화 정착에 기여
- 프로젝트명
- 정산,쿠폰 발급,푸시 발송 배치 개발
- 소속/기관명
- 밀크코퍼레이션
- 프로젝트 기간
- 2022.02. - 2022.02.
- (1개월)
- 프로젝트 설명
Java 17, Spring batch, Querydsl, JPA
일괄 처리가 필요한 정산, 쿠폰 발급, 푸시 발송을 위한 프로젝트
일괄 처리의 안정성을 위해 Spring batch 도입을 제안 및 프로젝트 진행
Spring batch 와 QueryDsl 사용하여 배치 구현 및 개발
- 프로젝트명
- 이미지 리사이징 처리 구현
- 소속/기관명
- 밀크코퍼레이션
- 프로젝트 기간
- 2022.01. - 2022.01.
- (1개월)
- 프로젝트 설명
node.js v18, aws lambda@edge, cloudfront, s3
등록된 상품 이미지 리사이징 처리를 통한 앱 성능 개선 및 비용 최적화를 위해 도입
AWS lambda@edge를 통한 이미지 리사이징 후 응답 처리
리사이징된 이미지를 CloudFront에서 캐싱하여 스토리지 사용량을 줄여 비용 최적화
- 프로젝트명
- 판매자/운영 어드민 개발
- 소속/기관명
- 밀크코퍼레이션
- 프로젝트 기간
- 2021.08. - 2021.12.
- (5개월)
- 프로젝트 설명
Spring boot 2.7, Java17 , Nuxt.js, Mysql, QueryDsl, AWS EC2, SES, S3, RDS
판매 상품 등록부터 결제,배송, 반품 관리를 위한 백오피스 어드민 개발
전반적인 모든 API 설계 및 웹 프론트 개발 진행
AWS S3 파일 업로드 구현, AWS SES를 활용한 이메일 인증 구현
Portone 결제 취소 API 연동, Sweettracker 배송 추적 API 연동
- 프로젝트명
- 프리랜서의 고객 관리용 CMS/CRM - 백오피스 어드민 구현
- 소속/기관명
- 대체불가능한사람들
- 프로젝트 기간
- 2020.12. - 2021.05.
- (6개월)
- 프로젝트 설명
Java 17, Spring boot 2.x, Nuxt.js gRPC, AWS Pipeline, EC2, S3
프리랜서 전문가(헤어디자이너, 등)을 위한 고객 관리용 어드민 웹 프로젝트 참여
고객 등록/관리, 예약 관리 시스템 개발
gRPC를 활용한 백엔드간 비디오 파일 업로드,다운로드 기능 구현
QueryDSL 도입으로 MyBatis 사용 시 발생하는 휴먼 에러를 감소시키고, ORM의 단점인 복잡한 동적 쿼리도 적용할 수 있도록 개선
AWS Pipeline을 활용한 배포 자동화 적용
- 프로젝트명
- 라이브 커머스 플랫폼 프로젝트
- 소속/기관명
- 컨셉터스
- 프로젝트 기간
- 2020.06. - 2020.11.
- (6개월)
- 프로젝트 설명
Java 11, Spring boot 2, AWS EC2, S3, Cloudfront
인플루언서를 기반으로한 라이브 커머스 플랫폼을 개발하는 신규 프로젝트 참여
라이브커머스를 위한 실시간 동영상 스트리밍 API(브라이트코브) 연동 및 스케줄 관리 로직 개발.
이니시스 결제 모듈 연동 및 디버깅
- 프로젝트명
- 인플루언서 공푸 플랫폼 프로젝트
- 소속/기관명
- 컨셉터스
- 프로젝트 기간
- 2019.11. - 2020.11.
- (1년 1개월)
- 프로젝트 설명
Java 11, Spring boot 2, AWS EC2, S3, node.js, lambda
인플루어선 기반 공구 플랫폼 웹 서비스와 웹 어드민 개발 및 유지보수
AWS S3, lambda를 활용한 이미지 업로드,다운로드 API 구현
웹 프론트에서 CORS 오류가 발생하여 S3에 권한 설정 추가 및 Cloudfront CORS 헤더 추가하여 이슈 해결
정산 개발 과정에서 Java 부동 소수점으로 인한 계산이 부정확한 이슈를 BigDecimal을 사용하여 해결함
- 프로젝트명
- 레거시 프로젝트 유지보수 및 신규 기능 추가
- 소속/기관명
- 컨셉터스
- 프로젝트 기간
- 2018.08. - 2020.11.
- (2년 4개월)
- 프로젝트 설명
Spring 5, Java 11, mybatis, jsp
기존 개발된 레거시 프로젝트 유지보수 및 신규 기능 추가
DB Query 쿼리 개선, D3.js 를 활용한 데이터 시각화 처리 작업
포트폴리오
교육
- 소속/기관
- 방송통신대
- 종류 | 전공명/전공계열
- 대학교(학사) | 컴퓨터공학과
- 재학 기간 (재학 상태)
- 2019.09. - 재학 중
- 소속/기관
- 대구아이티교육원
- 종류 | 전공명/전공계열
- 사설 교육 | 응용SW엔지니어링
- 재학 기간 (재학 상태)
- 2017.06. - 2018.05. (수료)
- 소속/기관
- 영진전문대학
- 종류 | 전공명/전공계열
- 대학교(전문학사) | 시각디자인과
- 재학 기간 (재학 상태)
- 2009.03. - 2014.02. (졸업)