미리보기
기본 정보
궁금한 것은 끝까지 파고드는 개발자 안정민입니다.
자기소개
안녕하세요. 백엔드 개발자 안정민입니다.
불편한 점이나 개선이 필요하다고 생각하는 부분을 지속적으로 찾아내고 발전시키는 것을 좋아합니다. 코드에 대한 리팩토링 뿐만 아니라, 팀의 개발 생산성을 위한 사이드 태스크 등 개발 과정에서 필요하다고 생각하는 부분은 학습을 통해 직접 구현하고자 했습니다. 팀에게 필요하거나 혹은 있으면 좋을 것 같다고 생각하는 부분은 충분한 설득과 소통을 통해 실무에 적용하려고 노력하고 있습니다.
경력
STAYGE Labs
백엔드 엔지니어 | 엔지니어링 파트 | 재직 중
2024.05. ~ 재직 중 (10개월)
1000만명 이상의 유저가 이용하는 Mnet Plus 서비스의 서버 개발
방송 프로그램 템플릿 프로젝트
엠넷에서 방영하는 여러 프로그램을 템플릿화 하여, 추후에 추가적인 프로그램 구현에 대한 리소스 감축을 위한 프로젝트입니다.
각 프로그램들의 커스텀 로직을 모듈화 하기 위하여 도메인 모델을 도입하였습니다. Layered architecture에 외부 의존성 없이 비즈니스 로직만을 포함하는 도메인 모델을 추가하였습니다. 이를 통해 각 프로그램에 필수적인 배너, 위젯, 투표 등의 핵심 도메인 클래스를 구현하고, 주요 로직에 대한 코드의 응집력을 높였습니다.
추가적으로 기존 코드에서는 테스트 코드를 추가하는 것이 구조적으로 많은 리소스가 필요한 작업이 되었는데, 해당 도메인 모델은 의존성이 전혀 없는 순수한 클래스로 작성되어서 비즈니스 로직에 대한 테스트 코드를 작성하여 서비스의 신뢰성을 높일 수 있었습니다.
SwatchOn
백엔드 엔지니어 | Dev
2023.08. ~ 2023.12. (5개월)
3D digital fabric 거래 플랫폼 Vmod 서비스의 서버 개발
1. 인증 서버를 NestJS로 마이그레이션
도메인 중심 구조로 개선: 기존에는 아키텍처가 레이어 단위로 코드를 묶어 관리하고 있어, 프로젝트가 성장함에 따라 코드를 파악하고 수정하기 어려웠습니다. 이를 개선하기 위해, 사용자 인증, 미들웨어, 로깅 등의 기능을 의미 있는 도메인 단위로 묶어 유지보수를 용이하게 하였습니다.
예외 레이어 개선: 모든 커스텀 에러가 단일 Root Error를 상속받는 구조에서 벗어나, 레이어별로 의미 있는 예외를 사용하여 개발 환경과 모니터링 시 문제 발생 지점을 빠르게 파악하고 대처할 수 있도록 개선했습니다.
2. 메일 시스템 리팩토링
외부 서비스 의존성 개선: 외부 메일링 API의 변경에 유연하게 대응하기 위해, 비즈니스 로직을 인터페이스에 의존하도록 하고 실제 메일 API를 주입받는 방식으로 개선했습니다.
메일 발송 로직 최적화: 대량 메일 발송 로직을 개선하여 API 호출 횟수를 줄임으로써, 메일 API 비용과 비동기 Worker 서버의 리소스를 감축할 수 있었습니다.
프로젝트
실시간 화상 면접 피드백 플랫폼
기타
2023.11. ~ 2023.12.
프로젝트 기획
면접 스터디에서 자유롭고 솔직하게 피드백을 주고받기 어렵고, 영상과 피드백을 체계적으로 관리하는 데에도 어려움이 있었습니다.
면접 영상과 피드백을 쉽게 저장하고 조회할 수 있도록, 실시간으로 면접을 진행하고 피드백을 받을 수 있는 플랫폼을 개발하였습니다.
기여 내용
백엔드 서버 개발
확장성을 고려한 리팩토링: 여러 OAuth 인증 방식을 지원할 수 있도록 전략 패턴을 적용하여, 런타임에 다양한 OAuth 클래스를 동일한 인터페이스에 주입받을 수 있게 개선했습니다. 이를 통해 여러 OAuth 프로바이더에 대한 확장성을 향상시켰습니다.
트래픽 문제 해결: 단일 스레드로 동작하는 노드 서버의 트래픽 처리를 개선하기 위해, Nginx를 활용한 로드 밸런싱으로 서버를 분산 배치하고, Redis adapter를 적용하여 분산된 사용자의 소켓 세션을 공유할 수 있도록 서버를 구축하였습니다.
CI/CD 파이프라인 구축
배포 자동화 파이프라인 구축: GitHub Actions를 이용해 클라이언트와 서버의 테스트, 빌드, 배포 과정을 자동화하는 파이프라인을 구축했습니다. 이로써 개발 효율성과 배포 속도가 크게 개선되었습니다.
빌드 시간 단축: Actions cache를 도입하여 패키지 의존성 설치 및 Docker 이미지 빌드 시간을 대폭 줄였습니다. 이는 파이프라인을 통한 배포 시간을 2~3분에서 1분 이내로 단축시켰습니다.
프로젝트 저장소
대외활동
네이버 부스트캠프 웹모바일 7기
네이버 커넥트재단
- 애자일 스프린트를 통한 여러 웹 서비스 개발 경험
- 팀프로젝트을 진행하여 협업에 대한 경험을 쌓으며 실제 웹 서비스를 운영
교육
성균관대학교
대학교(학사) | 컴퓨터 공학부
2016.03. ~ 2023.08. | 졸업
기술 스택
JavaScript, TypeScript, Node.js, NestJS, Git, AWS