노웅래

Backend Developer

About Me

6년차 개발자로 웹 어플리케이션과 백엔드를 기획/개발/배포/운영하였습니다. 주로 웹 서비스, Restful API 개발을 담당했으며, 개발은 혼자하는 것이 아닌 함께 만들어간다고 생각하여 능동적이고 적극적으로 팀과 소통하며 진행합니다.

고객들에게 더 좋은 가치를 제공하기 위해서는 서비스 품질빠른 요구사항 반영이 중요하다고 생각합니다. 이를 위해 어떻게 하면 더 좋은 코드를 작성할 수 있을지 고민하고 테스트코드 작성과 리팩토링합니다. 또한 새로운 프레임워크, 기술, 패러다임 등의 skill set들이 왜 사용되는지 이해하고, 이를 통해 더 좋은 방법들을 적용하여 생산성 향상을 위해 노력합니다.

1일 1커밋이라는 시스템을 통해 계속 성장하고 있습니다. 성장이라는 목표를 이루기 위해 시스템을 만들고, 시스템을 유지하기 위해 회고하려고 노력합니다.

Work Experience

무신사

글로벌개발팀. 백엔드 개발자

2022.10 ~ 현재

MAU 1,300만의 온라인 패션커머스 서비스 기업

글로벌 무신사 스토어 서비스

2022.10 ~ 현재
Description.

Global 시장에 K-Fashion을 바탕으로 13개 국가에 패션 커머스 서비스를 제공하는 무신사 스토어 서비스입니다.

What did I do.
  • 유저 신규 가입과 재방문을 유도하기 위한 서비스 구현 및 개선
    • 래플 도메인 모델링 및 신규 시스템 구현
    • 현지 네트워크 상황과 어뷰징 이슈 방지를 위해 분산락을 통한 응모 시스템 구성
  • 고품질의 탐색 경험과 구매 유도하기 위해 서비스 구현 및 개선
    • 상품목록 리팩터링 및 도메인 모델로 분리하여 PLP(Product List Page) 조회 시 p99 기준 Latency 60% 개선 및 안정화
    • 상품 상세 도메인 모델링 및 로직 개선과 신규 API 구현
    • 메뉴 도메인 모델링 재설계 및 로직 개선하여 캐싱 데이터 동기화 개선
    • 캠페인 도메인 PoC 진행 및 검증완료. 상품과 브랜드 기반의 캠페인 모델링 및 API 구현
    • MSA 구조와 API Composition 패턴으로 인해 성능 최적화하기 위해 Thread Pool 구성 및 논블록 Composition과 CQRS 패턴을 통해 Latency 개선
  • 안정적인 서비스 제공을 위해 CI/CD 재구성과 모니터링 시스템 개편
    • 기존 EC2와 Kubernetes를 통한 서비스를 모두 Kubernetes 로 전환하여 안정적인 시스템 구성과 배포 및 롤백 시간을 60% 개선
    • CI/CD 구성을 Jenkins & Spinnaker 에서 ArgoCD & Github Action 으로 전환하여 개발팀 내에서 서비스에 대한 관리 효율성 증대
    • 빠른 장애인지와 불필요한 노티를 제거하기 위해 메트릭 기반 모니터링과 로그 모니터링 재구성
    • KEDA 설정을 통해 Auto-Scaling 구성
  • 코드 품질 향상 위한 리팩터링, 서비스 안정성, 요구사항 명세서 역할 목적으로 단위 테스트 코드 작성
Tech Stack.

Java(JDK 17), Spring Boot, JPA, Spring Data JPA, Querydsl, Redisson, Kafka, MariaDB, Redis, MongoDB, Github Action, ArgoCD, Docker, Kubernetes


유플렉스소프트

웹 어플리케이션 / 백엔드 개발자
산업기능요원 복무만료

2019.09 ~ 2022.10

가상화 기술을 통해 스마트오피스, 스마트교실, 스마트 공장 솔루션을 보유한 클라우드 기업

올인원 화상회의 서비스

2021.01 ~ 2022.10
Description.

고객사 관리자가 직접 화상회의 시스템을 관리하고, 고객사 유저 및 게스트간의 화상회의를 진행할 수 있는 B2B 웹 기반 화상회의 서비스입니다.

What did I do.
  • 혼자서 화상회의 신규 서비스를 기획, 설계, 개발, 운영 중이며, 현재 100여개의 기업에서 화상회의 서비스를 이용

  • WebRTC 관련 오픈소스를 분석 및 커스터마이징하여 화상회의 서비스 설계 및 개발

  • 각각의 고객사 관리자들이 사용자관리, 이력관리 등 시스템을 관리할 수 있도록 어드민 서비스를 설계 및 개발

  • 고객사에서 자사의 Saas Service 관리 포탈을 통해 쉽게 화상회의 서비스 이용권한을 제공하기 위해 화상회의 서비스 연동 API 설계 및 개발

  • 서비스 고도화 및 안정성 확보를 위해 다양한 Metric 정보를 바탕으로 미디어 서버 오토 스케일링 적용. 기존 시스템 아키텍처의 경우 스케일 인 / 아웃이 가능한 구조가 아니여서 WebRTC 오픈소스 수정 및 시스템 아키텍처 재설계

  • 기존 Docker-compose 기반의 시스템 구성을 Kubernetes 기반의 시스템 구성으로 전환

  • 빠른 피드백 반영 및 서비스 개선을 위해 Jenkins를 이용해 CI/CD 구축하여 배포 시간을 90% 단축 및 각각의 서비스들의 메타 정보 이용해 배포 관련 추적 및 롤백 구현

Tech Stack.

Node.js, Express, Nginx, MariaDB, Redis, Kubernetes, Docker, Docker-compose, Jenkins


스마트오피스 솔루션 - 가상화 데스크톱(DV)

2020.04 ~ 2022.10
Description.

스마트오피스 솔루션 중 가상화 데스크톱(DV)은 삼성 Dex 서비스와 같이 가상 데스크톱을 클라우드 기반으로 제공하는 서비스입니다.

What did I do.
  • 운영이 중단된 사용자포탈 서비스의 이슈 수정 및 추가 요구사항 개발하여 재런칭 및 유지보수

  • SMS, 2Factor 인증 앱, 카카오 등을 통해 2Factor 인증 기능 구현

  • 삼성물산에 가상화 데스크톱 솔루션 제공하기 위해 추가 요구사항 개발 및 커스터마이징

  • 관리자가 사전에 가상 데스크톱 설정하기 위해 가상 데스크톱 프로비저닝 기능 구현

  • 에이전트 없이 순수 웹 기반 가상화 데스크톱 서비스 MVP를 내부 프로젝트를 통해 개발

Tech Stack.

Java, Spring MVC, Tomcat, MariaDB, Docker


SAE-A PREP 시스템

2021.12 ~ 2022.07
Description.

세아상역에서 의류 제품을 양산 전 Pre-Production 단계에서 이루어지는 샘플링, 소싱, 코스팅 등의 모든 업무를 시스템화 하는 SI 프로젝트입니다.

What did I do.
  • Task 생성, 업데이트, 선후행 관계 제어 등 모든 업무들을 관리하는 워크플로우 Restful API 설계 및 개발

  • 로그인 구현 및 다른 개발자분들이 로그인한 유저 정보를 쉽게 사용할 수 있도록 어노테이션 구현

  • 유저별 권한 기능 구현 및 인터셉터 이용해 유저별 동적 메뉴 구성 구현

  • 생산성 향상 및 코드 가독성, 안정성 확보를 위해 조건문을 통한 유효성 검증을 어노테이션을 통한 유효성 검증으로 변경 및 Object Mapping 라이브러리 적용

  • 웹 기반 푸시, 이메일, 팀즈 등의 메시지 관련 API 구현 및 비동기 처리

  • DB를 이용해 UI의 다국어 및 커스텀 용어 처리 필요하여 캐싱 작업과 다국어 및 커스텀용어 제공하는 API 구현. 인터셉터를 이용해 Model에 다국어 및 커스텀 용어를 넣어 각 담당 UI 개발자분들은 Spring Message 방식으로 개발할 수 있도록 기능 구현

  • 공통 UI 작업과 업무 진척관리를 위한 화면 구현

  • 애자일 방식으로 진행되어 요구사항의 변경 혹은 기능이 확장될 가능성이 많아 테스트 코드를 작성하여 기능 변경 및 확장에도 Side Effect를 줄이고 리팩토링을 통해 코드 품질을 유지하며 진행할 수 있도록 개발

Tech Stack.

Java, Spring MVC, Mybatis, Junit4, Resin, MSSQL


스마트오피스 솔루션 - 문서중앙화

2020.06 ~ 2021.05
Description.

스마트오피스 솔루션 중 문서중앙화는 중앙 저장소에 모든 자료를 저장 및 백업을 통해 랜섬웨어 및 사이버 테러에서 안전하게 기업의 정보 자산을 보호하는 서비스입니다.

What did I do.
  • ETRI 기술이전 관련 클라우드 및 온프레미스 기반의 문서 중앙화 서비스 프로젝트 참여

  • 서버 OS 설치, 환경 구축, 기술이전 받은 프로그램 설치 및 구축, 성능테스트 / 이슈 체크

  • 구글드라이브와 같이 웹에서 저장소 탐색 및 제어하기 위해 웹 탐색기 서비스 개발

Tech Stack.

PHP, Apache, MySQL, Ubuntu, OpenDedup, KVM, GCP

Other Experience

기술 블로그

https://wlroh.github.io
  • 개인 기술 블로그를 운영하고 있습니다.
  • 새로운 내용들을 배우면 공유하기 위해 포스트를 작성하고 있습니다.

글또 9기 활동

2023.12 ~ 2024.05

  • 글또(글 쓰는 또라이가 세상을 바꾼다) 9기 활동을 하고 있습니다.
  • 글쓰기란, 제가 아는 지식에 대해 공유함으로써 다른분들께 도움을 줄 수 있다는 즐거움과 지식을 공유하기 위해 아는 것과 안다고 착각하는 것을 구분함으로써 저의 지식도 정리되는 너무 좋은 활동이라고 생각하고 있어 글또 활동을 통해 개발 커뮤니티에 기여하고자 합니다.

리뷰어 활동

  • NEXTSTEP에서 진행하는 DDD 세레나데에서 리뷰어로 활동하고 있습니다.
  • 프로그래밍은 정답이 없다고 생각하기 때문에 최대한 리뷰이분들의 의도를 파악하고 토론하면서 피드백을 드리며, 저 또한 리뷰이분들을 통해 새로운 인사이트를 얻고 있습니다.

소리보기 창업 활동

2016.09 ~ 2019.08

  • (주)소리보기 창립멤버 및 대표로 스타트업을 운영한 경험이 있습니다. 활동 기간동안 웹어플리케이션, API 서버, 안드로이드 앱 개발을 진행했으며 다양한 지원사업 및 베타 서비스 런칭 등의 경험이 있습니다.

  • 사운드를 통해 영상 콘텐츠를 인식해 자동으로 자막을 송출해주는 서비스와 스타벅스 사이렌 오더와 비슷한 플랫폼 서비스를 개발하였습니다.

  • 활동 기사 및 인터뷰

    우리 대학 창업 동아리로 시작한 신생 스타트업 기업 ‘소리보기’를 만나다 - 2018.05.14

    청각장애인을 위한 자막제공 앱서비스 - 2017.12.27

    용인시티지털산업진흥원 입상팀 미국 실리콘밸리 탐방 - 2016.11.14

  • 수상이력

    창업선도대학 창업아이템 사업화 최종선정
    2018.09 ~ 2019.03 중소벤처부 / 창업진흥원

    SK 청년비상 창업지원 프로그램 3기 최종선정
    2017.08 ~ 2018.02 SK Telecom

    사회적기업가 육성사업 7기 최종선정
    2017.02 ~ 2017.12 한국사회적기업진흥원

    창조적 아이디어 창업경진대회 최종선정 및 미국 실리콘밸리 기업연수
    2016.09 용인시 디지털 산업진흥원
    미국 실리콘밸리 벤처기업 연수

    경기창업 아이디어 공모전 3위 수상
    2016.10 경기과학기술진흥원

Skill

Backend

  • Java(JDK 21), Node.js
  • Spring MVC, Spring Boot, Spring Data JPA, Express
  • JPA, Mybatis, Querydsl
  • Junit5, Mockito, RestAssured, Spring REST Docs, Swagger
  • Gradle, Maven
  • Intellij, Eclipse, Visual Studio Code

DevOps

  • MySQL, MariaDB, MSSQL, Redis, MongoDB
  • Argo CD, Github Action, Jenkins, Ansible
  • Tomcat, Nginx, Resin
  • Linux(CentOS, Ubuntu)
  • Docker, Docker-compose, Kubernetes, Kafka

Frontend

  • Thymeleaf, JSP, JavaScript, HTML/CSS

Education

NEXTSTEP - DDD 세레나데 4기

2022.08 ~ 2022.10

  • 객체 지향 프로그래밍에 관심을 가지며 역할, 책임, 협력을 바탕으로 개발을 하다 도메인에 대해 관심이 가지게 되어 도메인 주도 설계가 무엇인지 공부하고자 참여
  • Domain Driven Design 이 무엇인지 학습, 전략적 설계가 무엇이고 전략적 설계의 중요성을 학습, 전술적 설계의 종류와 전술적 설계를 어떻게 녹여내는지 학습
  • 레거시 코드를 DDD를 사용하여 전략적 설계, 전술적 설계를 바탕으로 리팩터링 경험
  • 3개의 미션을 직접 진행하며 리뷰받는 방식으로 진행

NEXTSTEP - ATDD, 클린 코드 with Spring 5기

2022.07 ~ 2022.08

  • 인수테스트 기반의 개발을 학습하고자 참여
  • ATDD와 TDD 기반의 개발 방법, 테스트 코드 리팩터링, 테스트 코드의 클린코드 방법, 문서화 방안을 학습
  • 레거시 코드를 ATDD와 TDD 기반으로 리팩터링 경험
  • 4개의 미션을 직접 진행하며 리뷰받는 방식으로 진행

NEXTSTEP - TDD, 클린 코드 with Java 14기

2022.04 ~ 2022.06

  • 협업과 유지보수를 위해 클린코드에 대해 공부하고자 참여
  • 코드 품질과 꾸준한 리팩토링을 위해 TDD와 테스트 코드에 대해 공부하고자 참여
  • 4개의 미션을 직접 진행하며 리뷰받는 방식으로 진행
  • TDD, 리팩토링, 클린코드, OOP, 레거시코드 리팩토링 학습

명지대학교

2014.03 ~ 2019.08

  • 산업경영공학과 학사 졸업