미리보기
기본 정보

더 좋은 서비스를 만들기 위해 비즈니스 도메인을 이해하려 노력하고, 나의 성장이 팀의 성장, 더 나아가 더 좋은 서비스의 성장으로 이끌 수 있도록 지속적으로 학습하고 노력하는 백엔드 개발자입니다.
기술 스택
Node.js, NestJS, TypeORM, TypeScript, Prisma, MySQL, PostgreSQL, aws-rds, aws-ecs, Docker, Lambda, Jest
경력
주식회사문토
백엔드 엔지니어 | 개발팀 | 재직 중
2024.03. ~ 재직 중 (1년)
(주)이젤
백엔드 엔지니어 | 웹팀
2023.04. ~ 2024.01. (10개월)
Eazel web site
Eazel은 미술품 데이터를 아카이빙하고, VR 전시 및 AI 기반의 미술품 옥션 예측 서비스를 제공하는 서비스입니다. 레거시 웹사이트를 신규 기술 스택으로 마이그레이션하고 신규 기능을 통합하는 리뉴얼 프로젝트에 프로젝트 중간에 투입되어 시스템 아키텍처 재설계 및 업무 프로세스 구축을 통해 지연되고 있던 프로젝트를 성공적으로 배포했습니다.
주요 기술
Nest.js , Typeorm, mysql, postgresql,
Docker
AWS (ECS, RDS, S3, Cloudfront, Lambda, Elasticache(Redis), SQS, CodePipeline)
담당 업무
백엔드 프로젝트 구조 개선
- 유지보수성 및 재사용성 향상을 위한 결합된 비즈니스 로직과 영속성 로직의 점진적 분리
- 개발자 간 표준화 된 모듈 구조를 위해 레이어드 아키텍처 기반의 시스템 아키텍처 개선
- 개발 단계 초기 오류 감지 및 코드 품질 향상을 위한 jest 기반의 유닛 테스트 점진적 도입
- RDS 부하를 줄이기 위한 Redis 기반의 캐시 도입
- 세션 데이터 처리 부하 분산 및 스케일 아웃 환경에서 세션 일관성 유지를 위해 Elasticache(Redis) 기반의 세션 스토리지 사용
- 관심사 분리 및 보일러 플레이트 코드를 줄이기 위한 reflect-metadata 기반의 Custom Decorator 개발
DB 쿼리 성능 튜닝
- Slow query 문제 해결을 위해 실행 계획 분석 및 쿼리, 인덱스 튜닝을 진행하여 api 응답 시간 최대 92%
성능 개선
On-the-Fly image resizing 전환
- 버전 별 이미지를 S3에 업로드하던 구조를 aws lambda, sharp 기반의 On-the-Fly 이미지 리사이징 서버로 전환
인프라
- ECS 기반의 서비스 전체 인프라 구성
- 클라우드 환경(AWS)에서 EC2에 수동으로 배포를 진행하던 프로세스를 AWS Codepipeline 기반의 Blue / Green 배포 자동화 프로세스를 구축하여 배포 시간을 단축하고 개발에 집중할 수 있도록 시간 효율성 증가
- 고가용성을 위해 비동기처리가 가능한 작업들을 SQS와 Lambda 기반으로 분리
마이그레이션 및 신규 기능 추가
- 3D 아트워크 전시 서비스 전체 도메인 설계 및 구현
- Stripe checkout 기반의 구독 시스템 설계 및 개발로 B2C 비즈니스 모델 도입
- 레거시 api 마이그레이션 및 변경
주식회사알파서클
솔루션 엔지니어 | 연구개발팀
2021.01. ~ 2023.03. (2년 3개월)
Vroadway
Vraodway는 Alphaview 라는 8K VR 영상 솔루션을 사용하여 콘서트, 공연, 전시 컨텐츠를 제공하는 서비
스 입니다. 개발 생산성 증가 및 B2C 서비스 확장을 대비해서 프로젝트를 신규 스택으로 마이그레이션하는
업무를 진행하며 Full Stack 엔지니어로 전체 시스템 설계 및 개발을 수행했습니다
주요 기술
- Nest.js, TypeOrm, Jest, Supertest
- Postgresql
- ECS(EC2), ALB, S3, RDS, Elasticache (Redis), Cloudfront
- CloudWatch
- CodePipeline
- React, MUI, redux-toolkit, react-redux
Backend
- 유지보수성 증가 및 개발 환경을 typescript 기반으로 통합하기 위해 flask(python) 기반의 백엔드를 Nest.js(typescript) 로 마이그레이션
- 전체 서비스를 클린아키텍처 기반으로 재설계
- jest와 supertest 기반의 unit, e2e 테스트 도입
- GitHub action 기반의 Test, Lint 검사, 테스트 빌드를 수행하는 CI pipeline 구축
- aws code pipeline 기반의 배포 자동화 pipeline 구축
- 사용하지 않는 컬럼 제거 및 정규화를 통한 database entity 구조 개선
Frontend
- 모바일 앱이 React Native 기반으로 구현되어 있어 개발 환경 통일을 위해 React(Typescript) 로 마이그레이션
- 컴포넌트 기반 개발을 위한 storybook 도입
참고
신비아파트 VR뮤지컬
프로젝트 개요
신비아파트 뮤지컬 VR 영상 서비스
- 레거시 기반의 CMS 서버 및 어드민 페이지 배포
- react native 기반의 모바일 앱 UI 기능 추가 및 개선
사내 VR 플레이어 솔루션 개발
- android exoplayer codec library 기반의 코덱 호환 검증 및 해상도 검증 자동화 라이브러리 개발
- 구 버전의 exoplayer 기반의 레거시 솔루션을 신규 버전의 exoplayer 로 마이그레이션 및 개선
- 확장이 힘들었던 레거시 솔루션 코드를 다형성 기반의 코드로 변경하여 확장에 용이하도록 개선