무엇을 했나요?
요약
- 신규 프로젝트 설계/개발/배포/운영, 사용자스토리 기반/테스트 주도 개발을 통한 가치 전달.
- 절차 지향 코드를 도메인 기반의 이해하기 쉬운 객체지향 코드로 개선. 이해하기 위한 코드는 약 10,000 줄에서 15 줄로 감소.
- AWS Lambda, EventBridge 를 통해 하루 약 1,500 건의 문자 발송 자동화 및 유지보수. Serverless framework 마이그레이션.
- 운영 업무 자동화/효율화를 위한 백오피스 기능 설계/개발/유지보수, 크루의 관리 시간 약 70% 감소
평생교육원 전환
프로젝트 회고
AS-IS
TO-BE
요약
트레바리의 평생교육원 전환으로 파생된 시스템 아키텍처 개선 프로젝트입니다. 기존 레거시 시스템의 불편함을 해소하고, 변화에 닫혀있던 딱딱한 시스템에서 하루 약 2만 건 이상 발생하는 이벤트를 처리할 수 있는 유연한 시스템으로 변경되었습니다.
- Messaging System 도입
- Spring Boot 도입
- MSA 도입
맡은 작업
- SQS Message Consumer(Spring Cloud AWS Messaging)
- 주요 도메인 레이어 개발
- 주요 어플리케이션 레이어 개발
- Mockito, JUnit 4/5 를 이용한 도메인 / 어플리케이션 테스트 코드 작성
주문 아키텍처 개선
다이어그램
요약
트레바리 주문 아키텍처를 개선했습니다. 절차 지향 코드를 도메인 기반의 이해하기 쉬운 객체 지향 코드로 개선했습니다. 이에 따른 리팩토링이 주된 작업입니다. 개발자가 이해하기 위한 코드는 10,000 줄에서 15 줄로 감소했습니다.
가치
개발자가 주문 신청 시스템의 이해에 들이는 시간을 줄입니다.
- 어떤 Validate, Rollback, Process 가 진행되는지 한 눈에 파악할 수 있습니다.
- 시스템의 단순화로 인해, 복잡도가 낮아집니다.
- 복잡도가 낮아지면서, 개발자의 개발 속도가 빨라집니다.
- 비교적 피처를 빠르게 추가할 수 있게됩니다.
스택
- Node.js
- Adapter pattern
- Composite pattern
유저 스토리
- 유저는 주문을 완료할 수 있다.
- 크루는 주문을 완료할 수 있다.
놀러가기 서비스 개선
요약
트레바리 시스템 내 개념으로만 존재하던 놀러가기 서비스를 개선했습니다. 크루는 유저가 신청한 놀러가기 서비스를 수기로 처리했었고, 유저는 자신이 놀러가기를 할 수 있는지 확실하게 알 수 없었습니다. 놀러가기라는 도메인을 드러내 두 불편함을 해소했습니다.
맡은 작업
놀러가기 신청 상태 관리 시스템을 제작했습니다.
- API Controller
- 외부 모듈 조회(놀러가기 쿠폰)
- 도메인 개발
- 도메인 상태 관리
- JDBC Repository
클럽 소개글 개선
다이어그램
요약
트레바리 클럽의 각 파트너는 클럽에 필요한 정보를 삽입해야 합니다. 크루는 파트너와 직접 커뮤니케이션하며 수기로 확인했던 방식을 자동화했습니다.
클럽 소개글 완성 시간이 평균 36분에서 10분으로 약 72% 대폭 감소
클럽 소개글 완성도가 평균 78% 에서 99% 으로 21% 증가
맡은 작업
- 클럽 소개서 테이블 설계
- 소개서 피드백 테이블 설계
- Sequelize Migration 을 통한 테이블 추가 및 컬럼 변경
- GraphQL Resolver 를 이용한 CRUD API 정의
기간 만료에 따른 티켓 만료 처리
다이어그램
요약
트레바리 유저는 각 서비스를 이용할 수 있는 티켓을 소유합니다. 티켓은 만료된 일자가 지나면 사용할 수 없게 설계되었는데, 만료 시 티켓을 제거하는 작업입니다.
하루 약 400 개 티켓 제거
스택
- Jenkins
- Spring Batch
- Spring Boot
유저 스토리
- 유저는 만료된 티켓을 이용할 수 없다.
- 모든 티켓에는 만료 일자가 존재한다.
- 티켓이 만료되면 지갑에서 사라진다.
맡은 작업
- 도메인 작업을 통해 티켓 만료 여부를 확인
- Batch Configuration 을 통한 만료 티켓 제거