● 오르조/오르조클래스 백엔드 기능 개발 및 유지보수
- 백엔드 개발자가 별도로 없이 클라이언트 개발자가 서버리스 함수를 그때 그때 만들다보니 코드 중복, 사용 라이브러리 및 코드 스타일의 분화 등 아키텍처가 없는 상황이었고, 요청 검증/응답 검증/도메인 모델 검증/디버깅 가능한 에러 리포팅이 안되고 있었음
- 기존 기술 스택을 최대한 유지하면서 일관된 형식으로 백엔드 애플리케이션을 개발할 수 있도록 컨벤션 구축 및 발전
- Firebase Firestore, Firebase Functions, TypeScript, class-transformer, class-validator 사용
- 내부적으로 도입하다 지지부진 하고 있던 Firestore 에 대한 DDD Repository 추상화를 개선/발전 및 프로젝트 전반에 적용
- 에러 계층화 적용 및 에러에 컨텍스트 정보를 포함하도록 변경하여 프로덕션 디버깅 경험을 극적으로 향상
- 오르조클래스 수업 및 클리닉 관련 API 개발: Elasticsearch 를 이용하여 같은 유형의 다른 문제 n개 추천
- Firebase Functions 의 수평적 스케일 확장 실패에 대한 원인 분석 및 임시 해결
- OpenTelemetry 를 이용한 서버리스 함수 성능 문제 분석 및 해결
- 학습 통계 API 성능 개선
- 질문/답변 관련 API 개발
- 오르조클래스 선생님/학생 복수 초대 API 개발
● 오르조 iPadOS 앱 기능 개발 및 유지보수
- SwiftUI 와 TCA(The Composable Architecture), PencilKit 을 활용한 고등학생 수능/내신 학습 태블릿 앱
- 에러 발생시 원인 파악이 가능하도록 에러 리포팅 라이브러리 구현
- 에러 발생 당시 콘텍스트 정보를 에러 정보에 추가하고 에러를 계층화하여 Crashlytics 에 리포팅
- 학습 앱의 핵심 기능인 필기 경험을 개선하기 위해 애플이 기본 제공하는 툴 피커 대신 커스텀 툴 피커 구현
- 컬러 프리셋, 컬러 피커(그리드, 스펙트럼), 투명도 조정 등의 컬러 팔레트 UI 구현
- 애플 PencilKit 에서 기본 제공하지 않는 직선 그리기 모드 구현
- 학생의 지식 수준에 따라 다른 도움을 주는 '오르조 힌트' 설계 참여 및 구현
- 해설을 트리 형태로 세분화하고, 해당 트리 노드에 해당하는 지식을 보유하고 있는지 확인을 위한 퀴즈 노출
- 학습 콘텐츠 소비 중 노트 필기나 연습장으로 사용할 수 있도록 필기노트를 멀티 윈도우로 제공
- 개발 진행 상황을 비개발자가 매일 확인할 수 있도록 오전 6시에 실행되는 TestFlight DEV 앱 CD 시스템 구축
- 전체/문항별 해설 보기 UX 개선
- 별도 모달을 사용해 보여주던 해설을, 동적 조판을 적용해 문제 풀이 영역 내에 심리스하게 보여주도록 변경
- Ghost blog platform 을 이용해 최소 공수로 새로운 에디터 콘텐츠 시스템을 구현
- 학습 자료 상세화면 디자인 리뉴얼
- 채점 결과 화면 디자인 리뉴얼
- 빌드 타임 개선을 위해 Tuist/SPM 를 이용한 애플리케이션 코드 모듈화
더보기