미리보기
- 직업
- 백엔드 개발자
- 이름
- 이지수
- 이메일
- earthlyz9.dev@gmail.com
- 간단소개
- 어제보다 성장한 오늘의 나를 추구합니다. 고민, 역경, 배움, 성장의 무한 굴레를 즐기는 지구력이 강한 개발자입니다. RESTful 한 API 개발, 대규모 데이터 수집 및 분석을 위한 데이터 파이프라인 구축, GitHub Actions 와 AWS 를 이용한 CI/CD 구축 등을 비롯한 인프라 세팅의 경험이 있습니다. 습득 속도가 빨라 어떤 기술이든 빠르게 이해하고 적용할 수 있으며, 다양한 협업 및 문서화 툴을 능숙하게 다룰 수 있습니다. 업무 관련 사항을 문서화하는 것을 좋아하고 습관화하며 무엇보다 새로운 기술에 대해 논의하는걸 좋아합니다!
기술 스택
- 기술 스택
- Python
- Django
- Docker
- PostgreSQL
- MySQL
- AWS
- Node.js
- GitHub
- Spring Boot
경력
- 회사명
- 크리스비
- 직책 • 부서
- Backend Developer • -
- 근무 기간 (근무 형태)
- 2023.08. - 재직 중
- (1년 6개월 | 정규직)
- 담당 업무
대량의 데이터 관리와 차트를 통한 시각화를 지원하는 대시보드 서비스를 위한 RESTful API 개발
다양한 소스로부터 대규모 데이터를 수집하고 가공하는 데이터 파이프라인 구축
사내 클라우드 리소스 관리
인플루언서 관리 솔루션 검수 및 유지 보수
다양한 소스에서의 데이터를 수집하는 백오피스 소프트웨어 유지 보수
기존 베타 서비스 유지 보수 및 추가 기능 개발
사용중인 주요 기술 스택
Python, Django Ninja, Django Channels, Celery, Playwright, Docker Compose, AWS, GitHub Actions
프로젝트
- 프로젝트명
- 대량의 데이터 관리와 차트를 통한 시각화를 지원하는 대시보드 서비스를 위한 RESTful API 개발
- 소속/기관명
- 크리스비
- 프로젝트 기간
- 2023.10. - 진행 중
- (1년 4개월)
- 프로젝트 설명
Django Ninja 를 중심으로 한 프로젝트 구성
Docker compose, GHCR 와 GitHub Actions 를 이용한 CD 구축
pytest 와 GitHub Actions 를 이용한 CI 구축
black, Ruff, mypy, pre-commit hook 등을 이용한 코드 스타일 통일 및 코드 퀄리티 유지
EC2, RDS, Cloudwatch, S3 등 필요한 AWS 리소스 할당
용이한 협업과 QA 를 위한 테스트 서버 별도 구축
Sentry 연동
CloudFlare 를 이용한 도메인 작업
django-ninja, django-ninja-extra 를 이용한 controller based api 개발
Owner-Editor-Viewer 로 이루어진 유저 권한 시스템 구축 및 django-guardian 을 이용한 per-object-permission 도입
swagger 를 사용한 API 문서 생성 및 관리
고객사 구독 구매에 따른 상태 변경 등의 스케줄링 작업과, 처리 시간이 긴 요청에 비동기적으로 대응하기 위해 rabbitmq 와 celery 도입
주문 및 마케팅 데이터를 다양한 각도에서 필터링할 수 있도록 하는 excel-like 조회 API 구현
polars 를 사용해 30여가지 종류의 차트 데이터를 생성하고 성장률, 매출액 대비 비중 등 다양한 보조 지표에 대한 연산 결과 제공
세부 기술 스택
python, django-ninja, django-ninja-extra, pytest, ruff, mypy, pre-commit, black, GitHub Actions, GitHub Container Registry, AWS, CloudFlare, Sentry, polars
초기 프로젝트 세팅
코어 API 개발
- 프로젝트명
- 다양한 소스로부터 대규모 데이터를 수집하고 가공하는 데이터 파이프라인 구축
- 소속/기관명
- 크리스비
- 프로젝트 기간
- 2023.10. - 진행 중
- (1년 4개월)
- 프로젝트 설명
다수의 3rd party 서비스로부터 크롤링, open api 등 다양한 방식으로 데이터를 수집하는 collector 모듈 구현 (Celery & asyncio 사용)
크롤링을 기반으로 한 collector 의 경우, playwright 의 auto-wait 기능을 적극사용하여 timeout 예외의 발생을 방지하였으며, 에러 발생 시 스크린샷을 s3 에 업로드하는 방식으로 오류 원인을 빠르게 파악하고 보수할 수 있도록 조치함
api 방식의 collector 의 경우 access token 의 교환 및 만료 시각, 응답 페이징 등을 고려하여 누락되는 데이터 없이 수집할 수 있도록 함
표준화하기 어려운 다양한 채널과의 연동을 처리하는 connector 모듈 구현
모든 데이터소스 connector 가 공통의 인터페이스를 가지게 하여 세부 연동 과정은 달라도 공통의 프로세스를 거치도록 강제함
dynamic import 를 이용해 적절한 connector 가 호출되도록 처리
polars 를 이용해 수집된 데이터를 전처리하고 분석하였으며, 적재적소에 LazyFrame 을 이용해 쿼리 속도를 높임
적은 데이터를 처리할 때나, 연산 결과를 곧바로 이용해야할 때에는 최적화 과정의 오버헤드를 줄이기 위해 일반 DataFrame 을 사용했으며 대량의 데이터를 복잡한 과정을 거쳐 전처리할 때에는 LazyFrame 사용
celery group 과 chaining 을 사용하여 분석 데이터를 이용한 다양한 종류의 차트 데이터 생성
새로운 차트 타입이 추가될 때마다 체계적이고 일관적인 방식으로 개발할 수 있도록 확장성 높은 차트 모듈 설계
차트의 구성 정보에 따라 적절한 DataFrameBuilder 모듈과 DataGenerator 모듈 호출
API 서버와 분리된 별개의 서버에 batch job 만을 위한 큐 및 celery worker 를 위치시켜 컴퓨팅 리소스 분산
수집 - 분석 - 차트 데이터 생성의 흐름을 가지는 daily batchjob 을 모니터링할 수 있는 다양한 수단 마련
각 과정에 대한 로그를 저장하고 django admin 을 커스텀하여 각 과정별 로그를 쉽게 볼 수 있도록 조치
각 과정에서 실패했을 때의 재시도 api 를 만들어둠으로써 실패한 batchjob 을 빠르게 정상화할 수 있도록 함
슬랙봇을 연동하여 daily batchjob 에 대한 리포트를 생성하였으며, 이를 기반으로 빠르게 대응함
세부 기술 스택
playwright, chromium, python, django-ninja, django-ninja-extra, polars, asyncio, aiohttp, celery, rabbitmq, GitHub Actions
- 프로젝트명
- 인플루언서 관리 솔루션 검수 및 유지 보수
- 소속/기관명
- 크리스비
- 프로젝트 기간
- 2023.12. - 진행 중
- (1년 2개월)
- 프로젝트 설명
외주 업체로부터 DRF 기반의 백엔드 애플리케이션 코드를 이관받아 검수
lazy loading을 eager loading으로 전환하여 데이터베이스 쿼리 속도를 크게 개선하고, n+1 문제를 해소
1분 이상 걸리던 조회 쿼리를 5초 안에 수행되도록 최적화
개발 기간 동안 외주업체와의 기술적인 커뮤니케이션 담당 및
AWS IAM 유저를 이용한 AWS 리소스 할당 (EC2, RDS, SES, S3)
이관받은 어플리케이션에 대한 CI/CD 재구축 및 인프라 세팅
GitHub Actions workflow 구축을 통한 지속적인 배포 달성
docker compose 도입
nginx daemon 을 docker service 로 전환
높은 트래픽 처리를 위한 gunicorn 도입
서버 에러 대응을 위해 Sentry 를 도입하고 적절한 예외 처리를 추가해나감으로써 점진적으로 오류를 줄여나감
세부 기술 스택
DRF, AWS, docker compose, nginx, gunicorn, GitHub Actions, postgresql, CloudFlare
- 프로젝트명
- 크롤러를 이용한 데이터 수집을 지원하는 백오피스 소프트웨어 유지 보수
- 소속/기관명
- 크리스비
- 프로젝트 기간
- 2023.08. - 진행 중
- (1년 6개월)
- 프로젝트 설명
다양한 채널에서의 데이터 수집을 관장하는 백오피스 소프트웨어 유지 보수
각 수집 태스크별 로그와 수집 태스크 목록의 상태값들을 실시간으로 열람할 수 있도록 django-channels 도입
세부 기술 스택
python, django-ninja, django-channels, celery, celery-beat, docker compose, AWS, GitHub Actions, Sentry
- 프로젝트명
- 기존 베타 서비스 유지 보수
- 소속/기관명
- 크리스비
- 프로젝트 기간
- 2023.08. - 진행 중
- (1년 6개월)
- 프로젝트 설명
검색 기능을 위한 Algolia 도입 및 Celery 를 이용한 비동기적 인덱스 업데이트 작업
새로 추가된 차트 기능에 대한 API 지원 (기간별 성장률, VAT 계산 등)
새로운 고객사를 위한 대시보드 구축 지원
세부 기술 스택
python, django-ninja, celery, docker compose, AWS, GitHub Actions, Algolia, Sentry
교육
- 소속/기관
- 연세대학교
- 종류 | 전공명/전공계열
- 대학교(학사) | 경영학과
- 재학 기간 (재학 상태)
- 2019.03. - 2024.02. (졸업)
자격증
- 자격증명
- SQL개발자
- 점수/급 | 발급 기관
- SQLD | 한국데이터산업진흥원
- 취득월
- 2024.06
- 자격증명
- 정보처리기사
- 점수/급 | 발급 기관
- 1 | 한국산업인력공단
- 취득월
- 2023.06
- 자격증명
- TOEIC
- 점수/급 | 발급 기관
- 990 | TOEIC
- 취득월
- 2022.09
- 자격증명
- 컴퓨터활용능력
- 점수/급 | 발급 기관
- 1 | 대한상공회의소
- 취득월
- 2019.10
포트폴리오
- 타입
- URL