조신성

Back-End Developer

About Me

Java & Spring, AWS 기반의 5년차 서버 백엔드 개발자입니다.

누적 회원수 100만 & 70만, MAU 400만, 250만의 패션 이커머스에서 백엔드 플랫폼 개발, 프론트엔드 개발 등을 해왔습니다.

장애를 발생되지 않도록 사전에 문제 발생 코드를 제거하고 문제가 생길 때는 빠르게 대응할 수 있도록 합니다. 제 업무가 아니더라도 Redis 정책을 변경하고, 추천상품, 할인 혜택가 등을 조절할 수 있게 백오피스에서 MD가 조절할 수 있게 개발하기도 했습니다.

현재는 다양한 시선으로 더 나은 코드를 짜기 위해 노력하며 성장하려고 하고 있습니다.

Experience

경력사항

(주) 현대퓨처넷

Java & Spring 백엔드 개발자

2021.01.04 ~ 현재

e-commerce

  • H Fashion 몰
  • EQL 몰
  • 현대백화점 계열사
    • IT사업본부 운영지원사업부 한섬2팀 한섬
    • IT사업본부 리테일사업부문 e커머스팀 백화점정보사업부
    • Redis 메모리 최적화 분석 및 장애 방지 개발
    • Back-Office 전시 코너 수기 등록 전체 제거 작업 (52건 > 0건)
    • 리뷰 API인 Crema API 도입 및 개발, 운영 (23.10-24.09)
    • 타미힐피거 & 무스너클 브랜드관 신규 개발 프로젝트 (23.02-23.08)
    • 편집샵 입점 및 메인페이지 리뉴얼 (22.10-23.03)
    • 고객 관심 채팅 분석 플랫폼 최초 도입, 개발 (라이브 & 리뷰) (22.05-22.10)
    • 라이브 커머스 Shoplive API 개발 및 운영 (21.07-22.03)

(주) 대림

RPA 개발자, 웹 개발자

2020.01.01 ~ 2020.12.31

ERP

  • RPA
  • WEB
  • DL 계열사
    • IT사업부 제조SM팀 / 주임
    • 물류 시스템 (Dlogis) Web 시스템 개발 및 운영
    • RPA를 이용한 물류 세금 자동화 처리 시스템 개발 및 운영 (최초 도입)

Competency

✔ 역량

반복되는 불필요한 작업 건들 자체개선을 통해 없애기! (52건 → 0건)

▶ Back Office 내 수기 등록 건 없애기 ◀

Problem
  • 제가 속했던 전시 파트 특징 중 하나는 화면을 자유로운 UI로 바꿀 수 있는 모듈화 페이지라고 생각합니다. 이러한 페이지 특징을 활용해 하나의 페이지를 템플릿이라 하고 이에 맞춰서 다양한 코너를 넣어서 활용할 수 있었습니다.
  • 이때 가장 큰 문제는 기획자는 다양한 모듈의 조합을 사용할 수 있으나 매 조합마다 IT개발자에게 모듈 코너를 insert해서 조합해달라고 수기 요청을 하였습니다. 이는 개발자에게도 기획자에게도 불필요한 업무라고 생각했습니다.
  • 운영에서는 50건일지라도 개발서버와 STG서버 테스트 모듈까지 포함하면 매년 500건 이상의 테스트 모듈 insert가 이루어졌고, 이를 개선하고자 했습니다.
Solution
  • 수기 등록 건들은 페이지 구조 상 템플릿 코너 내 등록 번호가 겹치는 것을 처리하는 방법이 없어 기능적으로 개발에 어려움이 있었던 것으로 판단했습니다. 따라서, DB insert 시 전시카테고리 페이지와 테마페이지(메인페이지, 브랜드관메인페이지 등)에서 동시에 저장되어 충돌되던 것들을 각각 분리하도록 개발하였습니다. Back Office에서는 같은 모듈이더라도 Front 클릭시 카테고리와 테마페이지를 선택할 수 있도록 개발하였습니다.
Competency

IT에게 가장 중요한 것은 반복되는 불필요한 작업을 줄이는 것이라고 생각합니다. 저는 이러한 부분을 운영을 하며 자발적으로 발견하고 빠르게 적용하여 사용자의 편리성을 높여주기 위해 노력합니다.

신규 아이디어로 이벤트 테스트 자동화 시스템 개발

▶ Selenium 라이브러리를 이용하여 이벤트 테스트 자동화 개발 ◀

Problem
  • 제가 속했던 전시파트는 전시 카테고리, 이벤트, 기획전 등을 담당하여 개발했습니다. 제 담당 업무는 이벤트 개발이 아니었지만 이벤트 개발 이후, 테스트 미흡으로 인한 긴급 배포 건 다수 발생하였습니다. 이벤트를 기획했던 마케팅 담당자분들의 인력부족으로 기본적인 테스트가 진행되지 않는다는 것을 파악했고 이를 개선해보고자 했습니다.
Solution
  • Version 1 : 가장 큰 문제인 다수의 긴급배포하는 문제를 해결하기 위해 이벤트에서 가장 기본적으로 테스트되어야 하는 것들을 조사했습니다. 조사한 결과 이벤트 페이지 UI만 확인하고 끝내는 경우가 많다는 것을 확인했습니다. 저는 python-selenium기능을 활용하여 공통적인 class태그를 추가하여 모든 페이지에서 이 태그가 달린 경우, 클릭할 수 있도록 개발했습니다. 아래와 같은 이벤트 기능을 개발하자 이벤트 테스트 미흡으로 인한 긴급 배포수가 현저하게 줄었고, 오류가 났던 경우에 대해서도 이미지 캡쳐로 받아볼 수 있게 하여 빠른 수정이 가능하도록 했습니다.
    • 일반적인 쿠폰 발급 체크
    • 회원등급에 따른 쿠폰 alert 확인
    • 응모하기 이벤트 시에 여러개 응모 체크
    • 룰렛 이벤트의 경우, 정확한 UI 파악 및 쿠폰 이름 일치 확인
    • etc. 기본 이벤트들 클릭 이벤트 확인
  • Version 2: 저는 이벤트 담당자가 아니었기 때문에 모든 기능 테스트를 끝내고 난 뒤, 실제 마케팅팀의 사용자와 이벤트 개발자들의 사용을 위해 언어를 변경해야 했습니다. 저는 과거에 경험이 있었던 Python에 Selenium 라이브러리를 이용하여 Java-Python Jython 라이브러리 연동했습니다. 그러나 이는 결과적으로 JVM 내에서 python 파일을 호출하여 실행하는 것이었고, Python 언어를 모를 경우 사용하기 어려웠습니다. 따라서 다양한 사람들의 유지보수를 위해서 Java 내 selenium 라이브러리를 jar파일로 적용하여 java 개발만으로도 개발할 수 있도록 언어를 변경하여 버전을 업그레이드 했습니다.
Competency

저는 기존에 있던 시스템을 그대로 수용하기 보다는 새로운 아이디어를 적용하기도 합니다. 특히나 RPA를 통해 자동화를 진행했던 경험과 python을 기반으로 프로젝트를 했던 경험들을 포함하여 기존 플랫폼에 이벤트 테스트 자동화 기능을 개발하기도 했습니다. 다양한 경험은 새로운 아이디어를 적용하고 개발하는 데에 큰 도움이 될 것이라고 생각합니다.

사전 장애 방지를 위한 크리마 API 전체 개선

▶ 인터페이스 히스토리 테이블 누적 데이터 초과로 인하여 발생할 수 있는 장애 사전 대응 ◀

Problem
  • 최초 문제점 - 2021년 기준 : EQL 리뷰 API인 크리마가 추가 되면서 전시쪽 인터페이스 히스토리 내역이 너무 많이 쌓이고 있는 문제가 발생하였습니다.
    • EQL 상품, 주문정보, 주문상세 정보에서 月 1,000만 건 데이터 누적 발생 (그 외 데이터까지 합친다면 1,100만 초과)
  • 추가 문제점 - 2024년 기준 : H패션몰에도 리뷰가 크리마로 변경되면 인터페이스 히스토리 내 테이블 과다 로그 적재가 2배가 되었다. 이는 결과적으로 테이블스페이스가 가득 쌓이면서 서비스는 진행되는 것 같으나 DB에는 저장되지 않는 문제가 발생되어 장애를 발생시킬 수 있다고 생각했습니다.
Solution
  • 단 건 데이터 전송을 List화 할 수 있도록 크리마와 지속적인 대화를 이어나갔고, 단 건을 보내는 것은 저희쪽에도 크리마 쪽에도 부하가 생길 수 있다는 것을 메일을 통해서 꾸준히 커뮤니케이션하였습니다. 그 결과 크리마 v2가 베타 버전으로 출시되어 가장 문제가 되었던 것들부터 순차적으로 List 형태로 데이터를 전송할 수 있도록 변경하였습니다.
    • EQL과 H패션몰의 다른 정책에도 불구하고 동일하게 쓰고 있던 배치 부분을 조건에 따라서 분기 처리하였습니다. (EQL은 배송중일때 데이터전송, H패션몰은 배송완료일때 데이터전송)
    • 개당 20개~50개를 전달할 수 있도록 정책을 변경하였고, 상품을 최초로 시작하여 주문정보와 주문상세 & 클레임 정보에 관련된 SQL, 배치, interface 부분을 모두 수정하였습니다. 장애가 발생하는 것은 더 큰 문제를 야기할 수 있었기 때문에 사전 대응이 가장 중요하다고 생각했습니다. H패션몰에 크리마 API를 추가하면서 이후 속도개선 및 장애 방지를 위해 전체 코드를 개선하는 것은 제가 해야되는 부분이라고 생각하여 진행할 수 있었습니다.
  • H패션몰 기준
    • 주문 정보 : 36만 건 → 1만건 (月 97% 감소)
    • 주문 상세 및 클레임 정보 : 67만 건 → 8천 건 (月 98% 감소)
    • 상품 정보 : 3만 건 → 2천 건 (月 94% 감소)
  • EQL 기준
    • 주문 정보 : 242만 건 → 4.8만건 (月 98% 감소)
    • 주문 상세 및 클레임 정보 : 253만 건 → 5만 건 (月 98% 감소)
    • 상품 정보 : 554만 건 → 11만 건 (月 98% 감소)
Competency

장애를 발생한 이후에 원인을 분석하고 찾는 것도 중요하지만 저는 사전에 장애가 발생할 것을 예상하고 코드를 개선하는 것이 필요하다고 생각합니다. 따라서 다양한 장애발생 요소사전에 찾아내어 기존 개발 건에 대한 개선 작업을 진행했습니다.

새로운 도전을 위해 스타트업데이에 출품하여 1등

▶ 한섬 패션 이커머스 H패션몰에 라이브 커머스 고객 채팅 분석 솔루션 개발 ◀

Solution
  • Version 1
    • 이 아이디어를 통해 스타트업데이에 나가게 된 데에는 라이브 방송 API를 개발했던 경험이 가장 크게 적용되었던 것 같습니다. 가장 먼저 라이브 방송에 쏟아지는 채팅들이 있으나 이를 전혀 활용하고 있지 않다는 점이 아쉬웠습니다.
    • 저는 "고객들의 채팅을 통해서 유의미한 결과를 도출한다면 좀더 매출에 도움이 될 수 있지 않을까"라는 생각에서 출발했습니다.
    • 회사에서는 Java와 Spring을 이용하였지만 기간 내에 빠르게 개발하고 가볍게 활용할 수 있는 것은 Python이라고 생각했기에 Python과 Django를 기반으로 개발을 진행했습니다.
    • 가장 기본적으로 정보를 얻을 수 있는 것은 텍스트 자체에 긍정, 부정이라고 생각해 내용을 도출할 수 있도록 했습니다. (텍스트 마이닝 Open API를 활용하여 긍정어, 부정어 분석 기능 개발) 또한, MD들의 니즈는 분석 자료도 중요하지만 한눈에 볼 수 있는 자료에 대한 니즈가 가장 강하는 것들 파악했습니다. 저희는 다양한 그래프툴과 시각화 자료를 활용해 가장 많이 사용된 키워드를 분석하여 한 눈에 볼 수 있도록 했습니다.
  • Version 2
    • 사내 시스템 도입을 위한 개발을 진행했고, MD 현업들의 사용을 위해 Back-Office에 라이브 커머스 채팅 뿐만 아니라 리뷰 텍스트 분석 기능 추가하였습니다.
Competency

저는 새로운 환경에서 빠르게 적용할 수 있도록 언어의 선택을 유연하게 할 수 있고, 새로운 도전을 주저하지 않습니다. 필요한 기능에 대한 아이디어가 있다면 언제든지 새롭게 개발하고 도전할 수 있습니다.

동시접속자로 인한 장애 및 접속 지연 문제 해결

▶ EQL몰의 인기 아식스 판매와 EQL 블랙위크 이벤트 트래픽 급증으로 끝없는 몸살을 앓았습니다. ◀

Problem
  • 아식스 판매 13만명 동시접속으로 인하여 Jennifer 모니터링 툴에서 서버 부하 확인하여 Read DB서버 CPU 점유율 100% 까지 자체모니터링했던 적이 있습니다.
  • 블랙 위크 이벤트 페이지 트랙픽 급증으로 인하여 DB 부하 발생 및 사이트 접속 불가 현상이 발생했던 적이 있습니다.
  • 이러한 두가지 문제가 발생하면서 전시 파트 내에 다양한 문제를 해결하기 위해 노력했던 경험이 있습니다.
Solution
  • 아식스 13만명 접속 문제 해결
    • 전시 파트에서는 상품 상세 페이지까지도 담당하고 있었기 때문에 상품 상세에서 불필요한 것들을 넣고 뺄 수 있는 기능이 필요하다고 생각했습니다. 메인페이지, 브랜드관 페이지, 테마페이지 등과 같이 모듈화 작업이 필요하다는 것을 깨닫고, 저는 상품 상세 페이지에서 모듈화 작업을 진행했습니다. 아식스 판매 시에 구매만을 위하여 “추천 상품”, “코디 상품” 등과 같이 API를 갔다와야 하는 것들은 모두 Back-Office에서 켜고 끌 수 있도록 기능을 추가하였습니다. 또한, 아식스와 같은 인기 상품은 쿠폰을 사용할 수 없었기 때문에 “최대 혜택가”는 더이상 필요없는 것이라 판단하여 혜택가를 볼 수 있는 기능은 클릭하여 비동기로만 확인할 수 있게 하였습니다. 상품 상세 이미지는 모두 Lazy Loading으로 변경하여 스크롤을 내릴 시에만 이미지가 뜨도록 변경하는 작업을 진행했습니다. 마지막으로 Redis가 가득차 기존에 있던 session들을 끊어내지 못했다는 문제점을 발견하여서 Max-Memory 정책을 분석비교하여 Infra담당자에서 allkeys-LRU 알고리즘 정책으로 변경해줄 것을 요청하여 문제를 해결했습니다.
  • 블랙 위크 이벤트 접속 지연 문제 해결
    • 다시 한번 이벤트 담당파트였던 저희는 모든 대책을 코드리뷰와 회의를 통해 문제를 파악하고 해결방안을 도출했습니다. 가장 먼저 이벤트 페이지에서 여러번의 DB 호출을 줄이기 위해서 이벤트 페이지 내 상품리스트에서 좋아요(북마크)로 표현되던 부분 표시를 제외하여 DB 호출 수를 최소화하였습니다. 또한 선착순 이벤트시에는 현업과의 소통을 통해 카카오플친 발송 건수를 분당 6만 건에서 2만 건으로 줄이는 방안으로 제안했고, 이는 선제적 대응 및 모니터링을 위해 사전 공유를 필수로 할 수 있도록 협의점을 도출했습니다. 마지막으로 현재 개발중인 건으로 캐싱대상 항목에서 이벤트 페이지를 추가하여 DB 부하를 감소시키기로 계획하였습니다.
Competency

저는 다양한 장애를 경험하며 가장 효율적인 방법을 찾으려고 노력합니다. 문제를 맞이한 뒤에는 담당자가 아니더라도 다양한 의견을 제안하여 해결하려고 합니다. 또한, 저는 직급과 담당업무에 관계없이 소통과 협업을 통해서 최상의 문제 해결을 도출할 수 있습니다.

Project

✔ 프로젝트

1.      리뷰 API인 Crema API 도입 프로젝트

2023.10 ~ 2024.9

사용 스킬

  • Spring batch
  • Java
  • Spring
  • Rest API

담당업무

  • Back-End 개발
  • Back Office 개발
  • H Fashion몰, EQL몰 인터페이스, 배치 개발

투입인원

  • 기획 1명, 프론트엔드 1명, 백엔드 1명
  • 상품, 주문, 주문상세&클레임, 리뷰, 카테고리 API 개발 및 연동 (23.10 - 24.02)
  • 각 API 단 건 전송을 List로 변경하여 전송하는 v2 개발 (24.03 - 24.08)
  • 인터페이스 내역 감소로 인한 장애 사전 대응 작업
    • 주문 36만건 → 1만건, 결과: 누적 데이터 97%감소
    • 주문 상세&클레임 67만건 → 8천건, 결과: 누적 데이터 98%감소
    • 상품 3만건 → 2천건, 결과: 누적 데이터 94%감소
  • FitProduct API 개발을 위해 상품 상세 사이즈 정보 전체 파싱 개발
  • Crema API인 주문, 주문상세, 클레임 쿼리 속도개선을 위해 전체 수정 작업 진행
    • 주문 3.19sec → 0.02sec
    • 주문상세 3.73sec → 0.47sec
    • 클레임 2.96sec → 0.13sec
  • H패션몰 H.Plus 포인트 적립에서 한섬 마일리지로 적립 전환을 위한 마일리지 API 개발

2.      타미힐피거 브랜드관 및 무스너클 브랜드관 신규 개발 프로젝트

2023.2 ~ 2023.8

사용 스킬

  • Spring, Java
  • JSP, JavaScript, jQuery

담당업무

  • 프로젝트 매니징 (PM), QA, Back-End & Front-End 개발,
  • Back Office, H Fashion몰

투입인원

  • 수행사: 기획 3명, 개발 6명, 디자이너 2명, 퍼블리셔 2명
  • 현대: 기획 2명, 개발 3명
  • 전체 페이지 상품이 아닌 브랜드관 전용 검색 기능 개발
  • H패션몰 내 타미힐피거, 무스너클만의 고유 색상을 가진 새로운 브랜드관 개발
  • 브랜드만의 콘텐츠 연결 - 매거진, 리뷰, 기획전, 이벤트 연동
  • 전체 QA 테스트 진행
  • 개발 이후 사이드 이펙트 개발 및 제거

3.      해외 브랜드 편집샵 입점 및 모바일 메인페이지 UI/UX 리뉴얼

2022.10 ~ 2023.3

사용 스킬

  • Spring, Java
  • JSP, JavaScript, jQuery

담당업무

  • Back-End & Front-End 개발
  • Back Office, H Fashion몰

투입인원

  • 기획 2명, 개발 2명
  • 300개 이상 해외 브랜드 편집샵 입점 개발
    • PC/MO 브랜드 이름으로 검색페이지 개발(영어/한글)
    • 브랜드 북마크 개발
  • 모바일 메인 페이지 전체 리뉴얼
    • 메인 페이지 내 코너모듈마다 1:1로 연결되던 로직을 1:N로직으로 전체 개선하여 속도개선

4.      고객 관심 채팅 분석 플랫폼 (라이브 & 리뷰)

2022.5 ~ 2022.10

사용 스킬

  • Python, Django, Rest API
  • JavaScript, HTML, CSS

담당업무

  • 팀 리더, Back-End & Front-End 개발
  • Back Office 개발

투입인원

  • 개발 2명
  • 스타트업데이 1등으로 회사 내 시스템 도입 시도
  • 한섬 라이브 방송 채팅 분석 시스템 개발
  • 한섬 상품 텍스트 데이터 리뷰 분석 시스템 개발
  • 긍정어, 부정어 구분 기능
  • Hot Keyword 분석 기능
  • 가장 많이 언급된 키워드 분석 기능
  • H Fashion몰 라이브 커머스 데이터 활용

5.      라이브 커머스인 Shoplive API 개발

2021.7 ~ 2022.3

사용 스킬

  • Spring, Java, Rest API
  • JSP, JavaScript, jQuery
  • JWT
  • OAuth 2.0

담당업무

  • Back-End & Front-End 개발
  • Back Office, H Fashion몰

투입인원

  • 기획 1명, 앱개발 1명, 웹개발 1명
  • 라이브 커머스 신규 페이지 생성
  • 라이브 방송 댓글을 위한 회원 인증 JWT, OAuth 2.0 적용
  • Rest API로 예정된 방송, 실시간 방송, 종료된 방송 API 개발
  • 방송 중 쿠폰 다운로드 개발
  • 방송 중 장바구니 기능 개발

Education

교육사항

세종대학교 (Sejong Univ.)

2012.03 ~ 2018.02

  • 수학통계학부 응용통계학전공 (주전공)
  • 디지털콘텐츠학과(복수전공)

삼성청년SW아카데미 (SSAFY)

2018.12 ~ 2019.12

  • 교육시간 - 1,600시간
  • 기술 - JAVA, Spring, SQL, Python, Django
  • 코딩, 알고리즘 중심의 1학기 기본과정, 실무 기반의 프로젝트를 수행하는 2학기 심화과정, 1년간 기초와 실무를 체계적으로 학습

Extra Information

✔ 추가정보

최우수상

2021.09

현대IT&E

  • 제 3회 스타트업데이
  • SKILL: Python, Django, HTML, CSS
  • 라이브 플랫폼 채팅 분석 서비스 개발 전사 1등(최우수상) 수상

1위

2020.09

대림코퍼레이션

  • 신입사원 온보딩과정 평가
  • 대림영업, 회계, IT, 건설 등 모든 직군 신입사원 평가 1등 하여 수상
  • 부상: 아이패드

은상

2016.12

세종대학교

  • 제1회 SW해커톤
  • 대학생 동아리 활동 연결 플랫폼 제작으로 2등(은상) 수상

4등

2016.11

세종대학교

  • 알고리즘 경진대회

봉사우수상

2021.09

세종대학교

  • 세종SW 나눔 봉사단 전체 평가
  • 전체 SW 나눔 봉사단 내 누적 봉사 시간 1등으로 전체 1등 수상
✔ 자격증

PCCE

2024.2.18 ~ 2031.2.18

(주)그렙

AWS Certified Cloud
Practitioner

2023.9.18 ~ 2026.9.18

AWS

정보처리기사

2019.8.16

한국산업인력공단

데이터 아키텍처
준전문가 (DAsP)

2018.7.17

한국데이터진흥원

IoT지식능력검정

2017.6.5

한국사물인터넷협회