Back to Projects
logo

코풀 (Copool)

2023.07 - 2024.03
thumb

공·사교육 모두에서 사용할 수 있도록 파이썬, 아두이노와 같은 프로그래밍, 피지컬 컴퓨팅 도구를 활용하여 프로젝트 중심의 AI SW 교육 콘텐츠를 제공하는 교육 코스웨어 서비스입니다.

서비스 방문하기

Team & Role

FE 1명, BE 1명, FullStack 1명, 디자이너 1명

Front-end, UX 설계 및 리뉴얼

Tech Stack

CoreReactNext.js 14 (Page Router)TypeScriptTurborepo
StylingTailwindCSS
State ManagementTanstack-QueryZustand

참여 활동

  • 기기 성능에 따라 인증 Token이 저장되지 않고, 로그인 화면으로 전환되는 인증 로직(HOC) 이슈 개선
  • Notion API - Page Upload, 미디어 업로드 누락 에러 개선을 위한 비동기 업로드 로직 재구성
  • 기존 텍스트 에디터 사용성 개선을 위한 블록형 에디터(텍스트, 이미지, 영상, 코드 컴파일러) 구현
  • 온라인 코드 컴파일러 UI 개발 및 로컬 카메라 기기, 라즈베리파이 피코와 연동 가능한 Javascript 기반 티처블 머신 개발
  • Google Search Console, Mix-panel으로 종합한 정보를 기반하여 고객 관심 유도, 접근성 개선을 위한 랜딩 페이지 리뉴얼 (4건의 계약 유치)
  • 코딩 교육 컨퍼런스 이벤트를 위한 ‘IT 진로 테스트’ 개발 및 ‘개발자 MBTI’ 이벤트 페이지 리뉴얼

성과

MAU & 계약

2000+

UI/UX 개선을 통한 4건의 계약 유치

미디어 업로드

100%

누락 이슈 해결 및 교육자료 업로드 활성화

신규 기능

컴파일러

온라인 코드 컴파일러 및 자체 티처블 머신 개발

트러블 슈팅

# 노션 페이지 미디어 업로드 누락 개선을 위한 Queue 구현

Problem

Admin 페이지에서 Notion API를 이용하여 교육 자료를 업로드하는 중, 미디어 자료 중 일부가 간헐적이고 무작위적으로 업로드에 실패하여 교육 자료의 일부가 지속적으로 누락되는 이슈에 직면하였습니다.

Solution

기존 Promise.all 로직에서 발생할 수 있는 문제들을 세분화하여 가설을 세우고 검증하는 과정을 통해, 동시 다발적인 요청으로 인한 서버의 메모리 제한(OOM)이 원인임을 파악했습니다. 서버 Scale-Up 없이 프론트엔드 레벨에서 문제를 해결하기 위해, Recursive(재귀) 알고리즘을 활용한 큐(Queue) 기반의 순차적 업로드 로직으로 전면 재구성했습니다.

✨ 개선 결과

  • 미디어 업로드 로직을 순차 처리 방식으로 변경하여, 간헐적으로 발생하던 미디어 누락 이슈를 완벽히 해결하고 업로드 성공률을 100%로 개선했습니다.
  • 재업로드 로직과 함께 전체 업로드 진행 상황을 보여주는 Progress UI를 구성하여, 관리자가 업로드 상태를 명확히 인지할 수 있도록 UX를 향상시켰습니다.
  • 순차 처리로 인해 기존 업로드 방식보다 시간은 더 소요되었으나, '속도'보다 '기능의 정확성(데이터 무결성)'을 우선시하는 비즈니스적 트레이드오프(Trade-off)를 성공적으로 조율했습니다.

Before

약 80%

After

100%

Learned
  • 외부 API와 내부 API를 모두 이용하는 기능에서 문제가 발생했을 때, 원인을 파악하기 위한 가설 검증 단계와 실험을 체계적으로 진행해볼 수 있었습니다.
  • 기능의 정확도와 처리 속도 사이의 충돌 상황에서, 서비스의 비즈니스적 관점과 우선순위를 고려하여 합리적인 결정을 내리는 시야를 얻게 되었습니다.
  • 비동기 로직과 재귀 함수의 흐름을 다시 검토해볼 수 있었으며, 유지보수를 위한 직관적인 코드 설계의 중요성을 깨달았습니다.
  • 서버의 리소스 제한이 있을 때 백엔드 인프라 수정에만 의존하지 않고, 프론트엔드 단에서의 구조적 로직 개선만으로도 문제를 해결할 수 있는 역량을 길렀습니다.
Notion API를 통해 전달받은 미디어 파일
Notion API를 통해 전달받은 미디어 파일
원인 파악을 위한 파일 분석 과정1
원인 파악을 위한 파일 분석 과정1
원인 파악을 위한 파일 분석 과정2
원인 파악을 위한 파일 분석 과정2
원인 파악을 위한 파일 분석 과정3
콘솔 로직 검토 및 업로드 실패 로직 상세 분석
원인 파악을 위한 파일 분석 과정4
큐 구현을 통한 재업로드 로직 구성 및 업로드 진행 상황 검토