미리보기
기본 정보
백엔드 개발자 지승보 입니다. 클라이언트의 편의를 생각하며 개발하고, 평소 기존 시스템을 더 효율적이고 안정적으로 리팩터링 하는것을 즐기며 새로운 기술을 활용한 프로젝트에 몰입하는것을 좋아합니다. 현재 산업기능요원(보충역) 으로 복무중 입니다.
기술 스택
Node.js, TypeScript, NestJS, aws-elasticache, aws-rds, aws-serverless, MySQL, PostgreSQL, Redis
경력
주식회사이제이엔
사원 | 백엔드
2022.11. ~ 2024.06. (1년 8개월)
인터넷 개인방송 후원 써드파티 플랫폼 트윕과 트위치 크리에이터들을 위한 커뮤니티 트게더 를 서비스하는 스타트업.
스트리머 정산 서비스 운영: EJN Partners 플랫폼을 주도적으로 관리하며 정산 데이터를 체계적으로 관리. 정산 과정에서 발생하는 버그 수정과 시스템의 효율성을 지속적으로 개선.
후원 플랫폼 유지보수: 트윕 서비스의 유지보수를 담당하며 쿠폰, 후원 기능을 포함한 다양한 기능의 구현과 개선 프로젝트를 수행.
기술 스택: php7, NestJS, k8s, AWS(EC2, S3, SQS, EventBridge Scheduler) MySQL, PostgreSQL, Redis, Socket.io
오늘의꽃
사원 | 백엔드
2021.11. ~ 2022.10. (1년)
생화 및 분화를 온라인에서 좋은 가격에 구매할 수 있는 화훼플랫폼 오늘의 꽃을 서비스하는 스타트업입니다. (현재 서비스가 종료되었습니다.)
- 내부 송장 출력 자동화 서비스 개발: 실무 작업자의 효율성을 개선하기 위해 NestJS/React를 활용한 송장 출력 자동화 시스템을 개발. 이 시스템은 일일 작업량을 대폭 줄이며 오류율을 감소시키는 데 기여.
- 어드민 기능 마이그레이션: 기존 시스템의 어드민 기능을 NestJS와 React Admin을 사용하여 마이그레이션, 사용자 인터페이스와 관리 효율성을 개선.
- 내부 WMS 서비스 개발: 물류 관리 효율성을 높이기 위해 내부 WMS 서비스를 개발하고 구현, 창고 운영 최적화와 비용 절감 도모.
기술 스택: NestJS, React, React Admin, AWS(EC2, ECS, S3, Step-Function, Lambda, SQS), serverless, MySQL
프로젝트
트게더 백업 기능
이제이엔
2024.06. ~ 2024.06.
개요: 트게더 서비스 종료 대비, 사용자 글을 PDF로 백업해주는 서비스 개발
배경
트게더 서비스 종료 소식으로 사용자들이 자신의 글을 백업하려는 시도가 증가하며 서버 트래픽이 과부하 되었습니다.
이를 해결하기 위해 직접적인 백업 처리 서비스를 제공하여 트래픽 감소 효과를 달성하고자 했습니다.
예상하는 백업파일 총량을 10TB 로 설정하고 개발했습니다.
다만 수요가 많을 시점과 개발 완료시점이 맞지 않아 실제 서비스로 배포하진 않았습니다.
개발내용
파일 송수신 트래픽 비용이 무료인 Cloudflare의 R2 스토리지에 백업 파일을 업로드하고 서비스함으로써, AWS S3 대비 비용을 3~4배 저렴하게 관리.
Selenium 을 사용해 pdf 파일 생성 및 메모리를 절약하기위해 Node.js 스트림을 사용하여 압축 및 R2 에 업로드.
IOPS 비용을 절약하기 위해 linode 에 데이터베이스를 덤프하여 호스팅하고, 백업작업을 내부적으로 실행
트윕 서비스 종료
이제이엔
2024.05. ~ 2024.05.
개요: 인터넷 개인방송 후원 써드파티 플랫폼 트윕의 서비스 종료작업의 백엔드를 담당
- 인스턴스 목록화 및 관리: 서비스 종료에 따른 운영 인스턴스를 체계적으로 목록화.
- 서비스 비활성화: 핵심 기능들을 안전하게 비활성화하여 서비스 중단을 질서있게 진행.
- 회원 가입 제한 기능 구현: 서비스 종료 후 추가 회원가입을 방지하는 기능을 개발하여 데이터 보호 및 관리의 일관성 유지.
- 회계 데이터 처리: 서비스 종료에 따른 회계 데이터를 처리하여 정확한 재무 관리와 규정 준수를 보장.
- 환불 처리 정책 변경: 서비스 종료 후 새로운 환불 정책에 맞춰 환불 프로세스 변경
- 대규모 사용자 데이터 마이그레이션: 60만명의 크리에이터 사용자 데이터를 6시간 내에 정산 시스템으로 마이그레이션.
신규 서비스 R&D
이제이엔
2024.04. ~ 2024.05.
개요: 게임 친구를 매칭할 수 있는 모바일 앱 백엔드 개발
배경: 트위치 한국 철수로 인한 트윕 서비스의 매출 감소에 대응하여 신규 서비스 개발
기술적 성과
유저 인증 서비스 개발: iOS 애플 로그인 지원을 위한 백엔드 개발을 주도. 애플로그인 키파일 설정 관리로 유저 인증 프로세스 강화.
E2E 테스트 환경 구축: Jest, ts-mockito, Localstack, docker-compose 를 이용해 E2E 테스트 환경을 구축, 코드 품질과 서비스 안정성 향상.
채팅 서비스 개발: Agora 기반의 실시간 채팅 서비스를 위한 토큰 서버 개발.
Push 알림 스케줄링 가이드라인 제공: AWS EventBridge를 활용한 Push 알림 스케줄러 예제 코드를 구현하고, 관련 작업 담당자에게 구현 가이드라인 제공.
코인 충전 기능 계획 및 가이드라인 제공: 적절한 트랜잭션 락 수준과 충전 플로우를 계획하고, 작업 담당자에게 todo 코드와 함께 실행 지침을 제공.
세금 처리 및 수수료 차감 로직 개선
이제이엔
2024.02. ~ 2024.03.
개요: 2019년부터 발견된 세금 처리 관련 버그를 기반으로, 현 정산 시스템의 구조적 한계를 파악하고, 이를 해결하기 위해 이벤트 소싱과 CQRS 패턴을 도입하여 로직을 개선.
- 기술적 성과:
- 로직 개선: 이벤트 소싱과 CQRS 패턴을 적용하여 세금 처리 및 수수료 차감 로직을 일관되고 효율적으로 재구성. 이를 통해 정산 로직의 복잡성을 해소하고 유지관리를 용이하게 함.
- 호환성 문제 해결: 기존 정산 시스템의 구조를 이벤트 소싱 방식으로 전환하는 migration 타입의 이벤트를 추가, 이를 통해 기존 시스템과의 호환성 문제를 해결.
- 테스트 커버리지 향상: TDD 로 개발하며 테스트 커버리지를 70% 로 향상. ts-mockito 를 사용하여 모킹을 더욱 효율적으로 처리.
버튜버 자동 리액션 플러그인
이제이엔
2024.02. ~ 2024.02.
개요: 후원 금액에 따라 자동으로 3D 이펙트 반응을 실행하는 Vtube Studio 플러그인 개발.
- 기술적 성과:
- 웹소켓 인증 핸드셰이크: 웹소켓을 통한 인증 핸드셰이크 설계 및 개발
- 이벤트 기반 후원 데이터 처리: 후원데이터 전달시 이벤트 기반으로 설계하여 기존의 후원 로직에 영향을 주지 않도록 분리
- 모듈화된 기능 구현: NestJs의 EventEmitter를 활용하여 실험적 기능을 기존 시스템에 의존하지 않고 독립적으로 처리. 이를 통해 특정 사용자 그룹에게 소켓 메시지를 효율적으로 전송.
뽑기후원 프로젝트
이제이엔
2023.09. ~ 2023.10.
개요: 웹소켓 통신을 이용하여 크리에이터가 만든 뽑기판에서 시청자가 실시간으로 뽑기를 할 수 있는 게임.
뽑기후원 13,000회 증가, 후원받은 크리에이터 수 +300
타 후원대비 가장 높은 ARPPU
기술적 성과:
- 동시성 처리: 후원 시 동시에 발생할 수 있는 다수의 요청을 고려하여, Redis 분산락을 사용해 1초에 100개 이상의 요청에 대한 처리가 가능하도록 구현, 동일한 뽑기칸을 중복하여 선택하는 문제를 방지. 스트레스 테스트
- 실시간 UI 동기화: 시퀀스 다이어그램을 주도적으로 사용하여 프론트엔드 개발자와 협업, 시청자의 뽑기판에서 남은 뽑기판을 실시간으로 업데이트 하도록 설계.
- 네트워크 오류 대응 설계: 크리에이터의 네트워크 순단 또는 소켓서버의 메시지 누락을 고려하여, 프론트엔드에서 현재 표시된 이펙트 ID 를 포함하여 소켓을 통해 요청하면 필요한 이펙트 목록을 응답하도록 API 설계.
기존 정산 시스템을 NestJs 로 마이그레이션
이제이엔
2023.04. ~ 2023.07.
개요: Express와 Pug로 작성된 레거시 백엔드 시스템을 NestJs 프레임워크로 마이그레이션.
배경: 기존 정산 시스템의 코드가 단 저만 이해할 수 있는 상태였으며, 이로 인해 유지보수 및 확장성이 크게 제한되었습니다. 코드의 가독성과 관리 가능성을 개선하기 위해 주요 기능에 대한 마이그레이션을 제안하고 주도하였습니다.
정성적 성과:
- 두마리 토끼 잡기: 여러 프로젝트를 병행하면서도 다른 프로젝트의 진행에 영향을 주지 않도록 티켓의 우선순위를 조정하여 마이그레이션 작업을 계획하고 수행.
기술적 성과:
- 시스템 재구성: 핵심 기능을 NestJs로 마이그레이션하고 기존 시스템과의 연결을 internal HTTP API를 통해 구현하여, 코드의 가독성과 시스템의 유지보수를 대폭 개선.
- 트랜잭션 정합성 관리: 마이그레이션 과정에서 데이터의 일관성과 정합성을 유지하기 위해 레거시 시스템에서는 성공/실패 로그를 관리하고, 실질적인 CRUD 작업은 NestJs 애플리케이션에서 처리하도록 설계.
- 타 개발자와 협업: 기존 정산시스템에 기능을 추가하는 작업은 아무리 간단하더라도 제게 요청이 되었는데, 다른 개발자 분들도 충분히 PR 을 올릴 수 있을 정도로 개선되었습니다.
Datadog에서 Prometheus로의 로그 및 메트릭 시스템 마이그레이션
이제이엔
2023.06. ~ 2023.09.
개요: 비용 절감을 위해 로그와 메트릭 분석용으로 사용하던 Datadog 를 오픈소스 기반의 Prometheus 로 마이그레이션했습니다.
주요 업무 및 성과
- 마이그레이션 준비: Datadog에서 Prometheus로 전환 가능한지 평가하기 위한 체크리스트를 작성하고 검증.
- 코드 개선 및 엔드포인트 통합: 사내 모든 프로젝트에서 Datadog 메트릭을 export하는 코드를 제거하고, Prometheus에서 메트릭을 수집할 수 있는 새로운 엔드포인트를 추가.
- 개발 서버 구축: 외부 TTS 엔진 호출을 위한 worker에 대해 EC2 스냅샷을 활용하여 개발 서버 구축, 팀원들의 접근성 향상.
- 비용 절감: 마이그레이션을 통해 월간 약 230만원의 비용 절감 달성.
기술적 성과
- Prometheus 적용: Prometheus 메트릭 수집 방법을 학습하고, 실제 서비스에 성공적으로 적용.
비고
- 산업기능요원 기초 군사 훈련으로 인해 7월 한 달간 자리를 비웠습니다.
세금계산서 역발행 서비스 개발
이제이엔
2024.02. ~ 2024.04.
개요: EJN Partners 의 크리에이터 사업자를 위한 세금계산서 역 발행 서비스 개발.
성과
- 프로덕션팀 및 파이낸스 팀과 협력하여 도메인 지식 없이 시작, 기술 검토부터 개발, QA까지 전 과정을 1.5개월 이내에 완료.
기술적 성과
- node-cron 을 이용해 cron-job 실행 및 redis 분산락 을 이용해 동시실행 방지.
- popbill sdk 를 사용하여 세금계산서 역발행 기능 추가
- 기존에 입력되지 않은 필수정보 (사업자 대표 이름) 을 크롤링을 통해 입력
정산 시스템 파일다운로드 부하 해결
이제이엔
2022.12. ~ 2023.01.
개요: 대용량 정산 엑셀 파일 다운로드 시 OOM 문제를 해결하기 위해 Node.js 의 Stream 기능을 이용하여 프로세스 최적화
- 기술적 성과:
- 다운로드 용량 확장: 최대 다운로드 레코드 수 가 30,000 에서 150,000 ~ 200,000 건의 데이터를 처리할 수 있도록 확장
- 데이터베이스 최적화: Database 조회를 여러 청크로 분할하여 조회하여 대규모 파일 다운로드 시 RDS CPU 사용량을 기존대비 10% 이하로 사용
- 서버 사양 감소: Stream 처리를 통해 서버 메모리 스파이크를 크게 줄이고, 결과적으로 서버 메모리 사양을 4GB 에서 2GB 로 감소시키며 비용 효율성 개선.
WMS (창고관리시스템)
오늘의꽃
2022.06. ~ 2022.07.
타 팀과 총 9번의 미팅을 진행하며 요구사항이 계속 바뀌었고 폐기되는 시간을 최대한 줄이기 프로토타입 기법을 활용.
빠르고 간단하게 프로토타입 버전을 개발 회의에서 프로토타입 발표 변경된 요구사항을 반영하여 개발.
- 폐기율을 줄이고, 재고 유형별 출고/폐기율, 단(꽃의 단위)별 출고 비중 등의 데이터 확보.
- 재고 위치 데이터 (섹터/슬롯 이름) 데이터와 입고/출고 데이터를 관리
택배 송장 등록/추척 자동화 개발 및 유지보수
오늘의꽃
2021.11. ~ 2022.01.
Serverless , lambda, sqs, step-function 를 이용하여 배송이 필요한 주문에 대해 택배 시스템에 등록, 배송상태 추적, 상태변경을 자동으로 진행하는 시스템 구축.
어드민 백엔드기능 마이그레이션
오늘의꽃
2022.02. ~ 2022.05.
어드민 기능을 Express, Javascript 스택으로 구현된 레거시 백엔드 애플리케이션에서 NestJS, Typescript 를 사용하는 새로운 백엔드 애플리케이션으로 기능을 마이그레이션 했습니다.
React Admin 을 사용하여 어드민 프론트엔드를 함께 구현했습니다.
포트폴리오
교육
선린인터넷고등학교
고등학교 | 정보보안
2019.03. ~ 2022.02. | 졸업
대외활동
우아한 테크캠프 4기 수료
우아한 형제들
https://techblog.woowahan.com/2724/
- 여름방학 기간을 활용해 진행되는 채용 연계형 교육 프로그램
- 웹프론트엔드를 중심으로 배엔드를 함께 배우는 자기 주도형 풀스택 과정
- 프로젝트
- 우아한 로그인 화면
- json 파일을 사용해 사용자 정보를 저장했습니다.
- 우아한 마켓
- 설정한 지역에서 중고 물품을 사고팔 수 있는 웹 입니다.
- 바닐라 js 환경에서 spa 프레임 워크를 구현하였습니다.
- socket.io 를 사용해 실시간 채팅을 구현하였습니다.
- 우아한 가계부
- 소득과 지출을 저장하고 카테고리화 할 수 있는 웹 입니다.
- 바닐라 js 환경에서 리액트의 class 컴포넌트를 모방하여 jsx 문법처럼 화면을 렌더링 했습니다.
- 차트, 달력, 목록 UI 를 제공합니다.
- 우아한 문방구
- 문구류를 파는 쇼핑몰 웹 입니다.
- Logstash 를 이용해 데이터 베이스 수정 후 ElasticSearch 로 인덱싱 하는 파이프라인을 구축했습니다.
- ElasticSearch 와 nori 한글 형태소 분석기를 사용해 검색/검색어 자동완성 기능을 구현했습니다.
- nginx 와 let's encrypt 를 통해 https 환경을 구축했습니다.
- 우아한 로그인 화면
교내 모의해킹 방어대회 (동상)
선린인터넷고등학교
팀전으로 참가한 교내 모의해킹 대회에서 웹해킹 문제를 담당하여 기여했습니다.
교내 고등해커 페스티벌 (동상)
선린인터넷고등학교
팀전으로 참가한 교내 모의해킹 대회에서 웹해킹 문제를 담당하여 기여했습니다.
사이버작전 경연대회 청소년부 (본선참가)
개인
국방부에서 개최한 사이버 작전 경연대회 청소년부에 happy_hack 팀으로 참가하여 웹해킹 문제를 담당하여 기여했습니다.
교내 서버구축 대회 (금상)
선린인터넷고등학교
GNS3 를 이용하여 윈도우 DNS, DHCP 서버, 우분투 DNS, DHCP, WEB, FTP, MAIL 서버를 구축하는 과제가 주어졌습니다.
윈도우 DNS, DHCP, 우분투 DNS, DHCP, WEB 서버를 구축하여 기여했습니다.
IT 꿈나무 성장지원 사업-화이트해커 경진대회 (최우수상)
현대오토에버
http://www.autoeveritdream.com/community/read?id=21&type=notice
2020 현대오토에버와 함께하는 특성화 고교생 IT 꿈나무 성장지원 사업의 하이라이트인 IT 꿈나무 성장지원 사업-화이트해커 경진대회에서 AMU 라는 팀의 팀장으로 참여하여 최우수상을 수상하였습니다.
제 3회 KO-WORLD 해킹방어대회 (최우수상)
선린인터넷고등학교
https://www.kopo.ac.kr/kangseo/board.do?menu=8370&mode=view&post=596547
사이버보안 기능경기대회의 시연대회와 합쳐 진행된 KO-WORLD 해킹방어대회에서 최우수상을 수상하였습니다.
교내 모의해킹 방어대회 (동상)
선린인터넷고등학교
팀전으로 참가한 교내 모의해킹 대회에서 웹해킹 문제를 담당하여 기여했습니다.
자격증
정보처리기능사
합격 | 한국산업인력공단
2021.12.
자기소개
백엔드 개발자 지승보 입니다.
클라이언트의 편의를 생각하며 개발하고, 평소 기존 시스템을 더 효율적이고 안정적으로 리팩터링 하는것을 즐기며 새로운 기술을 활용한 프로젝트에 몰입하는것을 좋아합니다.
‘오늘의 꽃’에서는 serverless 프레임워크와 step function을 활용하여 송장 등록 및 추적 자동화 프로그램을 개발했고, WMS(창고관리 시스템)를 개발하여 회사 내부 시스템을 개선하는 데 기여했습니다.
'이제이엔'에서는 쿠버네티스 환경에서 이제이엔 파트너스(정산 시스템) 레거시 시스템을 주도적으로 개발하였으며, 다른 개발자들이 프로젝트에 기여할 수 있는 수준으로 시스템을 개선했습니다. 또한 트윕 서비스의 쿠폰, 뽑기 후원, 버튜버 자동 리액션 플러그인 등의 프로젝트에 참여했습니다.
그러나 투자금 회수 문제와 트윕의 매출이 예상보다 많이 감소하는 등의 이유로 회사의 재정 상황이 악화되어 결국 폐업을 결정하게 되었습니다.
현재는 새로운 비즈니스에 몰입하며 제 역량을 기여할 수 있는 기회를 찾고 있습니다.
현재 산업기능요원(보충역) 으로 복무중입니다. (2023/02/03 ~ 2025/01/02)