3년 차 웹 엔지니어입니다.
TypeScript, Python, MongoDB, Nginx, AWS 등의 기술로 시스템을 설계, 개발, 운영한 경험이 있습니다.
레거시에서 신규 시스템으로 전환, 클라우드 환경(AWS)으로 마이그레이션 등 다양한 경험을 가지고 있습니다.
완벽하지 않더라도 우선 완성하는 것을 중요하게 생각합니다.
비효율적인 업무 프로세스를 개선하는 것을 좋아하며, 체계가 부족해도 주도적으로 체계를 만들어가며 업무를 진행할 수 있습니다.
MVNO 통신사인 스마텔에서 프론트, 백엔드, 클라우드 등 다양한 업무를 수행하고 있습니다. 회사에 합류했을 때, 모든 서비스가 외주를 통해 개발되어 소스 및 버전 관리가 제대로 이루어지지 않는 상황이었습니다. 제가 근무하는 동안 바닥부터 점진적으로 체계를 구축하고 문제점을 개선해 나가는 데 집중하고 있습니다.
처음엔 Spring Boot, MySQL 조합으로 개발을 시작하였습니다. 하지만 운영진의 요구에 따라 빠른 개발과 배포가 필요했고, DB 설계가 자주 변경되어야만 했습니다. 따라서 Next.js, FastAPI, MongoDB, Vercel 등 생산성 높은 기술 위주로 변경하여 요구 사항에 빠르게 대응할 수 있었습니다.
셀프개통과 같은 통신사 api는 호출에 20초 이상이 걸릴 때가 있습니다. Python FastAPI로 해당 api를 구현했을 때 가끔 blocking이 되는 이슈가 있었습니다. Serverless(Lambda)를 이용하여 api가 병렬처리 되도록 구성하여 이슈를 해결하였습니다.
Vercel, AWS Lambda와 같은 서버리스 서비스는 고정된 ip가 없어, 타사 api를 사용하는 데에 제약이 있었습니다. 서버리스 서비스를 사용하면서도 고정된 ip를 사용할 수 있도록 Nginx를 활용하여 Proxy 서버를 구축하였습니다.
CI/CD를 직접 구성하는 것 보다 외부 서비스에 의존하고, 개발에 집중하는 것이 회사에 더 이득이라고 판단되어, Vercel을 활용하여 CI/CD를 구성하였습니다.
기존 홈페이지는 페이지 마다 개발 업체와 도메인 주소가 다른 문제가 있었습니다. 이는 SEO에 좋지 않았으며, 페이지간 쿠키와 같은 데이터를 공유하기 어려웠습니다. 기존 홈페이지의 문제점들을 개선하기 위해 새로운 홈페이지를 자체 개발하였습니다. SEO를 고려하여 개발하였기에 오픈 일주일만에 구글 검색 1페이지에 노출되었으며, 조회수 10만회를 달성하였습니다.
TypeScript, Next.js, TailwindCSS, FastAPI, MongoDB, Redis, AWS
고객이 선불 요금을 직접 충전할 수 있는 웹 페이지를 개발하였으며 결제 모듈을 연동하여 결제 기능을 구현하였습니다.
TypeScript, Next.js, MongoDB, Redis
스마텔의 요금제를 가입할 수 있는 신청서입니다. 처음에는 통신 도메인에 대한 이해도가 부족하여 개발에 어려움이 있었으나, 시행착오를 거쳐 하루 1천명의 가입자를 담당하는 스마텔 핵심 서비스를 개발하였습니다. 명의 도용 개통을 방지하기 위해 전자서명 기능을 탑재하고, 서버단에서 신청자 일치 여부 검증을 진행하였습니다.
AWS - VPC, EC2, NLB, ALB, Next.js, MongoDB, Docker
웰컴저축은행 앱에서 스마텔 요금제를 가입할 수 있도록 개발하였습니다. 은행권 서버와 통신하기 위해 전용망을 구성할 때 어려움이 있었으나, AWS Support와 인터넷 검색을 활용하여 전용망을 구성하는데에 성공하였습니다.
AWS - VPC, EC2, NLB, ALB, Next.js, MongoDB, Docker
셀프개통은 고객이 직접 유심을 통해 휴대폰을 개통할 수 있는 서비스입니다. 기존의 레거시 셀프개통은 성공률이 10%에 불과하였으며 오개통이 되는 등 여러가지 문제가 있었습니다. 이 문제를 빠르게 해결하기 위해 생산성 높은 기술 위주로 시스템을 설계하여 신규 셀프 개통 서비스를 개발하였습니다.
AWS - ALB, VPC, EC2, TypeScript, Next.js, TailwindCSS, FastAPI, Docker, Redis
스마텔 직원들이 서비스를 관리할 수 있는 백오피스 서비스를 개발하였습니다. 홈페이지 관리, 요금제 등록/수정, 고객 관리 등 다양한 기능이 있습니다.
TypeScript, Next.js, MongoDB, Redis
시리스 C 의료 스타트업에서 프론트엔드 및 백엔드를 개발 및 운영을 하였습니다.
기존 레거시 프로젝트 개선 및 신규 개발을 하였으며,
제가 개발에 기여한 TiSepX의 경우 의료기기 판매를 위한 식약처 인증까지 성공하였습니다.
폐질환을 분석해주는 AI 서비스인 TiSepX 의 프론트엔드와 백엔드를 개발하였습니다. ML엔지니어와 협업하여 개발하였으며, HTTPS인증 등 식약처의 요구사항을 반영하여, 의료기기 판매를 위한 식약처 인증에 성공하였습니다.
Python, FastAPI, Docker, Nginx, TypeScript, React, TailwindCSS
회사 소개를 위한 웹 페이지를 개발하였습니다.
기존의 홈페이지가 React 특성상 SEO가 부족하다고 판단되어,
SSR을 도입하여 SEO 향상을 통해 방문자 수를 증가시켰습니다.
TypeScript, React, Next.js
환자의 장기 모델을 웹에서 볼 수 있는 서비스인 Visual Printing의 프론트엔드와 백엔드를 개발하였습니다. 프론트엔드는 VanillaJS를 React로 변환하여 생산성을 향상시켰습니다. 백엔드는 레거시 Node.js 서버를 리팩토링을 통해 유지보수성 및 확장성을 향상시켰습니다. 현재는 일부 병원 내부에서 사용되고 있어 따로 외부에 공개된 페이지는 없습니다. Three.js 부분에 대한 간단한 예시는 오픈소스로 만들어 보았습니다.
TypeScript, Node.js, Express.js, React, Three.js
FastAPI를 통해 REST API 서버를 구성하는 예시가 많이 없어서 직접 학습도 하며 다른 사람들에게도 도움이 되고자 fastapi-server 를 만들었습니다.
Python, FastAPI, PostgreSQL, Docker