형태소 분석 API로 CS 퀴즈앱 만들기
프로젝트 개요
배포 주소 | Github
프로젝트명: 형태소 분석기를 활용한 "다짜고짜 CS문제 풀기"
프로젝트 진행 기간 : - 2023.02.28 ~ 2023.03.04 (5일 간)
프로젝트 인원 : 1 명 (개인 프로젝트)
주요 기술 스택: Next.js 13, Redux Toolkit
프로젝트 소개
본 프로젝트는 ETRI의 형태소 분석 OPEN API를 이용하여 자동으로 객관식 퀴즈를 생성하고, 풀이할 수 있는 Web Application 입니다.
- Next.js의 API Route를 이용하여 서버리스로 개발되었습니다.
- next-pwa 라이브러리를 이용하여 PWA로 배포하였습니다.
프로젝트 데모
랜딩 페이지
앱의 실행을 준비하는 페이지입니다.
모바일 웹에서 접속시 PWA 설치 소개 문구가 함께 노출됩니다.
퀴즈 페이지
문제를 푸는 페이지입니다.
다섯 문제를 맞히면 결과창이 뜹니다.
문제의 보기를 Bottom Slide 형식의 UI로 구성하여 문제를 푸는데에 방해되지 않도록 디자인하였습닏.
마이 페이지
지금까지 자신이 푼 문제와 정답, 점수를 확인하며 복습할 수 있습니다.
랜딩 페이지에서 자신이 푼 문제를 초기화할 수 있습니다.
회고 (4L)
좋았던 점 (Liked)
- 모바일 최적화 : 모바일 환경에 최적화된 UI, UX를 구성해본 경험이 적었는데, 본 프로젝트는 기획단계에서부터 모바일을 중점에 두고 개발해볼 수 있어 좋았습니다.
- PWA 배포 : 개발된 어플리케이션을 PWA로 배포해보고, Native App 처럼 작동하는 UI, UX를 확인할 수 있어 즐거웠습니다.
- Next.js API Route 활용 : 서버리스로 기획하고 설계하면서 Next.js의 API Route를 활용해보았습니다. 그 과정이 차질없이 진행되어 만족스러웠습니다.
배운 점 (Learnt)
- PWA 설정 : PWA를 설정하고 배포하면 서비스 워커와 PWA에 대해 이해하는 계기가 되었습니다.
- API 설계 : 하나의 API만을 사용하는 어플리케이션이지만, 이 과정에서 Node js에서 표준적인 API 패턴에 대해 이해하고, File System으로 파일을 저장하고 조작하는 방법에 대해 익힐 수 있었습니다.
부족한 점 (Lacked)
- 부실한 디자인 : 본 프로젝트는 한 주 동안의 토이프로젝트로 진행하였습니다. 이 과정에서 원하는 수준으로 미려하게 디자인 하지 못한 점이 아쉽습니다.
- PWA 오프라인 캐싱 : 현재 배포된 버전은 랜딩 페이지에서 서버로부터 문제를 받아옵니다. 해당 과정을 Service Worker로 설정하여 오프라인에서 작동하도록 구현하지 못한 점이 아쉽습니다.
바라는 점 (Longed for)
- 나만의 디자인 시스템 만들기 : 금번 프로젝트에서는 Button의 종류에 대한 스토리북만 제작하였습니다. 추후 기회가 된다면 보다 다양한 요소에 대한 디자인 시스템을 만들고 구현하고 싶습니다.
- PWA 고도화 : 금번 프로젝트에서는 외부 라이브러리로 Service Worker를 자동 생성하였고, 오프라인 캐싱 기능도 빠져 있습니다. 추후 더 학습하여 세세한 부분까지 서비스 워커를 설정하여 PWA의 성능을 최대한 활용할 수 있기를 바랍니다.
- Product 완성하기 : 금번 프로젝트에서는 형태소 분석기의 성능을 시험해보고, 이를 이용한 모바일 사용자 경험을 구현하는데에 초점을 맞춘 일종의 프로토타입입니다. 추후 더 구체적인 기획과 개발 계획으로 사용자들이 직접 문제를 생성하고, 공유할 수 있는 Product로 발전시킬 수 있기를 바랍니다.