유학생 커뮤니티 서비스, 유톡



프로젝트 배경:
'유톡'은 보스턴 지역 대학교 유학생들을 위한 커뮤니티 서비스로, 유학생 간 정보 공유와 소통의 필요성을 충족시키기 위해 개발되었습니다. 이 플랫폼은 학교 생활, 생활 정보, 공동 구매 등 다양한 주제에 대한 소통 창구를 제공하여 유학생활의 질을 향상시키는 것을 목표로 합니다.
주요 성과 및 기술 스택:
- 초기 멤버 및 개발자: 서비스의 MVP 개발부터 현재까지 개발과 인프라 관리를 주도하였습니다.
- 백엔드 개발
- 초기 버전 개발: Django를 활용하여 2주 만에 개발을 완료하고, 보스턴 지역 대학교에서 서비스를 홍보하였습니다.
- 서버 환경 개선:
- replit, sqlite 기반의 배포 환경을 EC2 내부에서 도커를 통해 redis, postgresql을 관리하도록 마이그레이션을 수행하였습니다.
- 페이지 로딩 속도 개선
- 장고의 debug toolbar 플러그인을 활용해 쿼리 계획을 살펴보고, N+1 문제를 해결하였습니다.
- 쿼리를 최적화하기 위해 select_related, prefetch_related 를 적절히 사용하여 성능을 향상시켰습니다.
- 장고의 compressor 플러그인과 CDN을 활용해 static 파일 로딩을 줄였습니다.
- redis를 통해 페이지의 레이아웃 캐싱을 도입하여 페이지 로딩 시간을 단축하였습니다.
- 푸시메시지
- FCM을 활용하여 푸시 알림 기능을 개발함으로써 사용자 참여도를 높였습니다.
태블릿 기반 문제집 학습 서비스, 서당개


프로젝트 배경:
'서당개'는 소프트웨어마에스트로 과정에서 진행한 프로젝트로, 교육 불평등을 해소하고 효율적인 학습을 지원하기 위해 태블릿 기반의 문제집 학습 서비스를 개발하였습니다.
주요 성과 및 기술 스택:
- 팀 리더: 프로젝트의 기획과 발표를 주로 담당하였으며, 팀을 이끌며 목표를 달성하였습니다.
- 백엔드 개발
- 기출문제 크롤링 및 데이터 가공
- Playwright를 활용하여 기출문제 정보를 크롤링하고, 가공 및 저장하는 CLI 프로그램을 개발하였습니다.
- EBS 사이트의 API 스펙을 분석하여 문서화하였습니다.
- 웹 서버 구축
- NestJS와 TypeORM을 활용하여 백엔드 서버를 개발하였습니다. 레이어드 아키텍처와 의존성 역전 등의 백엔드 구조에 대해서 깊이 공부하고 배울 수 있는 계기가 되었습니다.
- 지문, 문제, 보기 등을 효율적으로 관리하기 위해 계층 구조를 갖는 데이터베이스 모델을 설계하였습니다.
- 학습 시스템과 복습 기능, 그리고 postgresql 의 full-text search 를 활용한 문제 검색 기능을 개발하였습니다.
- AWS 배포
- Terraform을 활용하여 서버 네트워크를 구축하였습니다.
- EC2에서 Docker Compose를 통해 서버를 구동하였으며, S3를 사용하여 시험지 이미지를 저장하였습니다.