ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 오주현 이력서
    나란 사람 2023. 3. 24. 10:27

    오주현, Oh Ju Hyun

    친절한 문·이과 통합 ENFP형 개발자입니다. 개발자와 기업에게 가장 중요한 것은 고객과 서비스라고 생각합니다. 이를 위해 비즈니스 도메인에 대해 끊임없이 고민하고, 동료 개발자 및 유관 부서와 적극적으로 소통하여 미션을 달성하고 있습니다. 기술적으로는 OOP와 Test Suite에 관심이 많습니다. 테스트하기 쉬운 코드를 통해 객체의 책임을 알맞게 나누고 협업하기 좋은 코드를 만들 수 있기 때문입니다. 


    연락처


    기술 스택

    • 프로그래밍
      • Java, Javascript
      • Spring Boot, Spring MVC, Spring Data JPA, Spring Batch
      • JPA, Hibernate, Querydsl, Mybatis
      • JUnit, Mockito
      • Mysql, Oracle, Redis, Elastic Search, Kafka
    • 환경 구성
      • Gradle, Maven
      • AWS Route 53, Load Balancers, EC2, DMS, Lambda, S3, SNS, SQS, Kinesis
      • Jenkins, Spinnaker, Docker, Kubernetes

    경력

    • 2021년 5월~ : 야놀자 데일리호텔 상품 개발팀
      • 데일리호텔 상품 Backend 서비스 개발 및 운영
    • 2020년~2021년 4월 : 이랜드 리테일 이랜드몰 플랫폼 개발팀(업무 내용은 아래 이랜드 이노플과 동일)
    • 2016년~2019년 : 이랜드 이노플 이랜드몰 이커머스팀 
      • 이랜드몰 Back Office, Batch, Open API와 연관 서비스 운영
      • 이랜드몰 클라우드 인프라 및 배포환경 운영
      • 이랜드몰 상품 도메인 개발
    • 2015년 6월~8월 : 커머스 플래닛 인턴
      • 11번가 Back Office 개발

    주요 활동

    [~ 현재]

    • PDP(상품 상세 페이지) 응답속도 11% 개선 : 쿼리 튜닝
    • 숙소 추천 컴포넌트 개발. 데일리 호텔 메인 홈 개편.
    • 레디스 장애 포인트 제거 : AWS ElastiCache 네트워크 대역폭 초과 사용 분석 및 조치

    [2022.02 ~ 2022.07, 데일리호텔 파이썬 레거시 시스템 정리]

    • 역할 : 파이썬 및 자바 레거시 시스템을 메인 프로젝트에 이관 개발
    • 결과
      • 총 7개(파이썬 6, 자바 1) 레거시 시스템을 메인 프로젝트로 통합하여 파이썬 시스템 유지 보수 비용 제거 및 자바 코드 중복 제거
      • 레거시 서버 비용 및 레거시간 불필요한 통신 비용 제거
    • 상세 내용
      • 파이썬 기반 API, 배치, 메세지 프로세싱 시스템을 자바 기반의 메인 프로젝트에 이관
      • 자바 레거시 시스템도 메인 프로젝트에 이관하고, 분산되어 있는 비즈니스 로직 처리(자바->파이썬->자바)를 1곳(자바)으로 통합하여 구조 단순화

    [2021.09 ~ 2022.01, 데일리호텔 검색서비스 리뉴얼]

    • 역할 : 검색 서비스 개발
    • 결과
      • 검색 응답속도 19.7% 단축
      • TPS 80% 향상
      • 레거시 정리로 인한 서버 운영 비용 절감 및 유지보수성 증가
    • 상세 내용
      • 별도 운영되던 검색 서비스 프로젝트를 메인 프로젝트로 통합하여 코드 중복 제거
      • 신규 요금 체계 도입을 위해 Elastic Search Document 구조를 개편
      • ES 쿼리 튜닝

    [2021. 01 ~ 2021. 03, 이랜드몰 MSA v2 - 상품 도메인 서비스 분리]

    • 역할 : 아키텍처 설계, 개발, 클라우드 인프라 구축, 배포 구성
    • 결과
      • 코드 중복 제거하여 코드 변경 비용 감소. 상품 등록/수정 시 19곳 수정해야 했던 범위를 2곳으로 줄임.
      • 도메인 서비스 변경 배포주기 단축. 평균 3주 -> 1주
    • 상세 내용
      • 이랜드몰 Back Office, Open API 등 총 4개 프로젝트에서 상품 도메인 서비스 분리
      • BO, OA 등 기존 서버는 파사드 역할로 표현 계층을 담당하고, 신규 도메인 서버에서 도메인 로직 수행. API로 통신

    [2020. 10 ~ 2020. 12, 이랜드몰 배치 고도화]

    • 역할 : 아키텍처 설계, 개발, 클라우드 인프라 구축, 배포 구성
    • 결과 : 배치 실행시간 50% 단축, 코드 라인 수 1/3로 감소, 스케줄러 확장성 확보
    • 상세 내용
      • 상품 도메인 배치 프레임워크 전환(Spring MVC -> Spring Batch)하여 성능과 코드 생산성 개선
      • 배치 스케줄러를 Cron에서 Jenkins로 전환하여 GUI로 배치 실행 관리 및 파이프라인 도입으로 운영성 개선

    [2020. 01 ~ 04, 이랜드몰 MSA v1 - Open API 고도화]

    • 역할 : 아키텍처 설계, 개발, 클라우드 인프라 구축, 배포 구성
    • 결과 : API 응답 속도 30% 단축 및 코드 재사용성 강화
    • 상세 내용
      • 상품 도메인 API 신규 애플리케이션 개발 및 프레임 워크 전환(Spring MVC, Mybatis -> Spring Boot & Spring Data JPA)하여 개발 생산성 개선
      • Gradle 멀티 모듈 프로젝트로 도메인내 모듈끼리 호출 가능하도록 구성(레거시는 Maven으로 core 모듈 재사용 불가)
      • 레거시에 있던 불필요하거나 중복되어있던 로직 정리

    [2018. 06 ~ 09, 이랜드몰 외부몰 도메인 분리 프로젝트 : 실시간 상품연동 서비스버스 개발]

    • 역할 : 서비스버스 아키텍처 설계, 개발, 클라우드 인프라 구축, 배포 구성
    • 결과
      • 이랜드몰 모놀리틱 시스템에서 외부몰 연동 도메인 분리하여 단독 운영 가능
      • 외부몰 도메인 상품 동기화 주기 단축(1시간 -> 실시간) 및 DB 자원 안정화
    • 상세 내용
      • 이랜드몰 모놀리틱 시스템에서 발생한 상품 이벤트를 받아 해당 데이터를 가공하여 외부몰 연동 시스템에 전달. 메세징 큐(AWS SQS)를 통해 비동기식 통신(이랜드몰 -> SQS -> 서비스버스 -> SQS -> 외부몰 연동 시스템)
      • 총 4번의 개선 작업
        • v1 : 각 채널(대고객 서비스, Back Office, Open API 등)의 상위 모듈(상속 구조)로 구성 후 상품 생성/수정 및 재고 차감 등 로직 수행 후 해당 서비스에서 데이터 가공하고 메세징 큐에 전달하여 처리 시간 지연
        • v2 : 상품 데이터 가공을 위한 서비스버스 신규 애플리케이션 구축하여 v1에서의 메인 시스템 책임 과중 현상 해소
        • v3 : 트랜잭션 스크립트 패턴의 코드를 도메인 모델 패턴으로 리팩터링
        • v4 : Open API 고도화 멀티 모듈 프로젝트(바로 위에 기술)의 하위 모듈로 이관. 해당 프로젝트에 상품 도메인 로직을 구성해놓아 필요한 로직을 재사용하여 편리하게 구축할 수 있었음. 또한 메세징 큐에 전달하는 규격 그대로 Rest API로 응답해야 하는 신규 요구사항이 들어왔는데, 이 역시 도메인 로직 재사용을 통해 신속하고 견고하게 구축할 수 있었음.

    [2019. 06 ~ 08, 이랜드몰 주얼리 브랜드 출고지 통합 프로젝트]

    • 역할 : PM, API 개발
    • 결과 : 결품률 50% 감소
    • 상세 내용
      • 브랜드별 상품 출고지 N개이던 것을 1개로 통합
      • 재고/주문관리 포인트를 4개 시스템에서 1개로 통합

    [2019. 04 ~ 07, 이랜드몰 클릭스트림 웹 로그 분석 시스템]

    • 역할 : 아키텍처 설계, 개발, 클라우드 인프라 구축
    • 결과
      • 클릭데이터 일 800만 건 저장. 프론트 페이지에서 데이터 전송 성능 12ms 이내. Serverless 구조로 기존 서비스 부하 제거
      • 상품 후기 고도화 프로젝트의 참고 자료로 활용되어 의류/잡화 상품 매출 8% 신장에 기여
    • 상세 내용 : 상품~주문 페이지에서 고객 클릭스트림 데이터 수집 -> AWS Kinesis로 전송 -> AWS Athena에서 통계 조회

    [2019. 04, 이랜드몰 단축 URL 서비스 개발]

    • 역할 : 아키텍처 설계, 개발, 클라우드 인프라 구축
    • 결과 : 이랜드몰 고객 전송용 대량 단축 URL 처리시간 단축(10,000건 기준 4시간 -> 10분)
    • 상세 내용 : AWS API Gateway, AWS Lambda(Node.js), AWS Dynamo DB로 단축 URL 생성 기능 개발하여 bit.ly 대체

    [2019. 05, 이랜드몰 스마트 콜센터 구축 프로젝트]

    • 역할 : PM
    • 결과 : CS 업무 처리효율 30% 증가
    • 상세 내용 : Back Office와 CTI 솔루션 웹소켓 API를 통합하여 Back Office 1개 화면에서 모든 업무 가능하도록 UX 개선

    [그 외 업무경험]

    이랜드 이노플 인도 IT센터 기술 협업 파일럿 프로젝트, 이랜드몰 주얼리 브랜드 고도화 프로젝트, 이랜드몰 어플리케이션 로그 수집 기능 개발, 이랜드몰 Open API 인증키 관리 기능 고도화 프로젝트, SOAP 기반 이랜드몰 - SAP 상품정보 자동 연동 기능 개발, 이랜드몰 SNS 간편 로그인 프로젝트, 이랜드몰 색상/사이즈 필터 자동매핑 기능 개발


    학력

    동국대학교 멀티미디어공학과, 광고홍보학 학사


    기타 소개할 내용 : 장점과 단점

    1. 적응력 - 빠른 기술 습득으로 미지의 영역을 개척

    필요한 기술을 빠르게 습득하여 과업을 달성하는 데 강점이 있습니다. 데일리호텔 합류 8개월 만에 검색 서비스를 리뉴얼하고 평균 응답속도를 17% 단축하는 성과를 이루어 냈습니다. 처음 접하는 Elastic Search 숙련도를 올리기 위해 퇴근 후 어떻게 해서든 관련 서적, 강의, 매뉴얼을 공부하였습니다. 덕분에 합류 50일 정도부터 검색 관련 신규 기능 개발 업무를 수행할 수 있었고. 4개월 차부터 조직의 가장 큰 기술적 미션인 검색 서비스 리뉴얼을 담당할 수 있었고, 다른 운영성 업무와 병행하며 프로젝트를 성공적으로 마칠 수 있었습니다.

    2. 목표달성 능력 - 열린 소통으로 소통 단계 단축하여 문제 해결

    경영자 지시로 급하게 투입된 이랜드몰 스마트 콜센터 프로젝트에서 PM으로 참여하며 프로젝트를 성공적으로 오픈했습니다. 그동안의 프로젝트에서 모든 소통은 메일, 메신저 등으로 PM을 거쳐 가는 구조였기 때문에 피드백이 느린 단점이 있었습니다. 이를 Jira 프로젝트 이슈로 모으고 관련된 모든 커뮤니케이션을 오픈하여 이해 관계자 간 즉각적인 문제 해결을 유도하도록 프로세스를 개선하여 빠르게 빌드업하였습니다.

    3. 주도성 - 고객의 불편 해결을 통한 협업 능률 향상

    업무 관계자들과 소통하여 일하는 방식을 개선합니다. 이랜드몰 Open API 승인키 발급을 메일로 요청하고, 시스템 담당자가 발급하여 회신하던 방식을 자동화하였습니다. 수많은 업체와 메일로 소통하는 MD에게는 API 승인키 메일 확인을 놓치는 경우가 많았고 히스토리 관리도 안 되었습니다. 여러 MD들 및 담당 기획자와 모여 불편 사항을 도출하여 요구사항으로 정리하고, 업무 시간 틈틈이 작업하여 한 달 뒤 Back Office 기능으로 정식 제공하였습니다. 발급하고 관리하는 일을 시스템이 대신해주어 MD와 시스템 담당자 모두 본연의 업무에 더 집중할 수 있었습니다.

    4. 일을 크게 만드려는 욕구는 단점

    일을 주어진 범위보다 크게 벌리다 득을 볼 때도 있지만 실을 볼 때도 있습니다. 해결 과제와 관련된 부수적인 문제나 그 근본 원인까지 뜯어고치고자 하는 욕구에서 비롯되는 경우입니다. 필요 이상으로 범위를 확장해 부작용이 발생한 경험이 여러 번 있었습니다. 혼자서 여러 각도로 문제를 보기엔 한계가 있기 때문에 나중에 아차 싶을 때가 많은 것이 주된 문제였습니다. 이를 고치기 위해 2가지 규칙을 준수하기 위해 노력하고 있습니다. 첫째, 범위를 확장하기 전에 동료들과 충분히 논의합니다. 둘째, 확장이 필요한 경우라면 올바른 결과를 검증하는 테스트 코드를 먼저 작성 후 변경 후에도 전과 같이 기능적 요구사항이 잘 충족되는지 확인합니다. 이러한 노력으로 제 리소스를 낭비하지 않게 되었고 예전과 같은 부작용은 더는 만들어내지 않고 있습니다.

     

     

    '나란 사람' 카테고리의 다른 글

    경력 중심 이력서 업데이트 회고  (0) 2023.04.02

    댓글

Designed by Tistory.