미리보기
기본 정보

IaC(Infrastructure as Code)를 이용하여 AWS 인프라 구축 및 백엔드 플랫폼을 구현해왔습니다. 요즘 Message Queue 를 이용한 Event-Driven 아키텍쳐에 관심이 많습니다.
경력
포커스미디어코리아
SDE 챕터 | 플랫폼개발본부 | 재직 중
2022.07. ~ 재직 중 (2년 8개월)
- 엘리베이터TV 광고 플랫폼 개발 및 운영
- 사용자 인증 및 인가 서비스 개발
- 메시지 큐 기반으로 Event-Driven 아키텍처 전환
기술 스택
Node.js, AWS, dynamodb, Java, Docker, Spring Boot, TypeScript, Redis, PostgreSQL, aws-serverless
프로젝트
광고 플랫폼 개발
포커스미디어
2023.05. ~ 진행 중
주요내용
- 기존 광고 송출 시스템을 새로운 디자인 기반으로 재설계 및 구현
- 유즈케이스를 읽기 집약과 쓰기 집약으로 분리하여 별도의 데이터베이스 활용
- 복잡하고 변경 요청이 잦은 송출 관련 데이터 모델링을 DynamoDB 를 활용하여 변경에 유연하게 대처
본인이 기여한 점
- Koa.js 를 기반으로 광고 캠페인 관리 및 송출 API 개발
- 다양한 채널 알림 구현에 Amazon SNS 기반의 팬아웃 패턴 적용
- 기존 시스템에서 신규로 생성되는 데이터 동기화를 위해 EventBridge 를 활용하여 스케줄러 구현
기술 스택
- Node.js, DynamoDB, PostgreSQL, SQS, SNS, EventBridge, ECS, Lambda
결과/성과
- 사용자 인가 시스템의 agent를 컨테이너화하고 사이드카 패턴을 적용함으로써 agent 버전 관리 자동화
- ECS 기반 컨테이너로 배포함으로써 EC2를 사용할 때보다 컴퓨팅 비용을 약 15% 감소
- DynamoDB Key 모델링 스킬 습득 (AWS에서 진행한 DynamoDB Immersion Day 참여)
- Draw.io를 활용하여 기능 구현 전에 체계적인 아키텍처 설계를 진행하여, 팀 내에서 긍정적인 평가를 받음
- 서버 간 데이터를 주고받을 때 동기로 설계한 점이 아쉬웠음
사용자 인증 및 인가 시스템 설계 및 개발
포커스미디어
2023.03. ~ 2023.05.
주요내용
- 외부 및 내부 시스템/플랫폼을 위한 사용자 인증 및 인가 시스템 설계 및 개발
- RBAC을 직접 구현하여 역할 별 권한 세부 정의
- 접근이 빠르고 일정한 지연을 제공하는 Redis 이점 활용
본인이 기여한 점
- Koa.js를 기반으로 Authorization 기능 개발
- 다양한 IdP 를 활용하여 사용자 인증 기능을 구현하기 위해 Strategy 패턴 도입
- Redis의 휘발성 리스크를 대비한 비동기 데이터 동기화 기능 구현
- Fluent를 활용하여 로그를 수집하고, 이를 컨테이너로서 사이드카 패턴으로 구현
- supertest를 이용한 통합 테스트 코드 작성
기술 스택
- Node.js, DynamoDB, Redis, SQS, ECS, Lambda, Fluentd
결과/성과
- IdP Authenticate 인스턴스를 싱글톤으로 구현하여 IdP 인증 통신 P95 latency 기준 700ms 에서 10ms로, 약 98% 단축
- 본 프로젝트에서 도입한 복구 매커니즘 설계 경험을 통해 시스템 체계화 제안 및 일부 프로젝트에 적용
- QA 하기 전, IdP 인스턴스 생성을 매 호출마다 생성되도록 구현하여 응답 속도의 99%를 차지한다는 것을 미리 알아채지 못한 점이 매우 아쉬웠음
프로모션 관리 페이지 리뉴얼
포커스미디어
2022.11. ~ 2023.03.
주요내용
- 엔드유저를 위한 프로모션을 관리하는 시스템
- 기존 시스템은 프로모션 관리 시 PHP 코드를 직접 수정해야 하는 문제가 있어 리뉴얼 작업 진행
- PHP + MSSQL 에서 React, Lambda(Typescript), Spring Cloud Function (Kotlin) + DynamoDB, PostgreSQL 로 리뉴얼
- Amazon SQS 및 EventBridge 를 기반으로 CQRS 형 이벤트 기반 아키텍처를 바탕으로 개발
본인이 기여한 점
- AWS Infrastructure 및 CI/CD 파이프라인 구성
- React 기반으로 프로모션 관리 페이지와 엔드유저 프로모션 페이지 개발
- Typescript 기반으로 Lambda + API Gateway를 활용하여 Command API 개발
- Spring Cloud Function 기반으로 Command Consumer 개발
기술 스택
- React, Typescript, Spring Cloud Function, Kotlin, Lambda, API Gateway, SQS, EventBridge, DynamoDB, PostgeSQL
결과/성과
- 리뉴얼 후 프로모션 관리를 자동화함으로써 관리자 및 개발자 업무 부하 감소
- 프로젝트를 주도적으로 기여하였으며 Event-Driven 아키텍처 PoC로 사내 다른 프로젝트 적용 레퍼런스에 활용
- Lambda가 처음 실행될 시 Spring Boot cold start 이슈로 consumer 의 응답속도가 느렸는데 이 이슈를 해결하지 못한 점이 아쉬웠음
숏폼 모바일 웹 서비스
넘블
2022.04. ~ 2022.05.
주요내용
- Numble 에서 주최한 모바일 웹 서비스 챌린지
- 짧은 영상을 올려 신발을 판매하는 중고 P2P 웹 서비스
본인이 기여한 점
- AWS EC2, RDS 인스턴스 생성
- S3 multi-part 파일 업로드 구현
- MySQL 내장 함수인 concat, lpcd 함수를 이용하여 cusor-based pagination 구현
기술 스택
- Java, Spring Boot, JPA, MySQL, EC2, S3, mockito
결과/성과
- 총 8팀 중 챌린지 최종 3위 수상
- 프로젝트를 경험하면서 Spring Boot에 대한 지식 습득하고 향후 사전 과제의 PoC로 활용
- Swagger 를 적용못한 점이 아쉬워서 Swagger 사용법을 습득하여 사전 과제에 적용함
포트폴리오
자격증
AWS Certified Developer - Associate
849점 | AWS
2023.10.