● CICD 구축
- AWS ECS와 GitHub Actions를 활용해 다운타임 없는 배포 자동화 파이프라인을 구축하고, 배포 시간을 평균 10분 이하로 단축했습니다.
- ECS Fargate 기반 클러스터를 구성하여 서버 관리 부담을 줄이고, 자동 확장 기능을 통해 운영 비용을 최적화했습니다.
● 무한스크롤 성능 최적화
- useInfiniteQuery를 도입해 무한스크롤 성능을 최적화하고 불필요한 리렌더링을 줄였습니다.
- 데이터 병합 및 캐싱 로직을 개선해 서버 요청을 줄이고 페이지 로딩 속도를 단축했습니다.
● 어드민 개발
- 고객지원 팀이 유저 데이터를 조회·수정하기 위해 개발팀에 의존해야 했던 문제를 해결하고자, Ant Design과 구글 소셜 로그인을 활용한 어드민 페이지를 구축했습니다.
- CS 업무 처리 속도를 단축시키고 고객 경험을 개선했으며, 개발 리소스 소모를 줄였습니다.
● 앱 UI/UX 개선
- Button ripple effect를 도입해 정적인 UI에 사용자 피드백을 시각적으로 강화하고, 인터페이스 몰입도를 높였습니다.
- 사용자 이탈률이 높은 주관식 문제풀이 화면에 답안 입력 및 채점 기능을 추가하여, 하루 평균 주관식 문제풀이 수가 증가했습니다.
- Skeleton 공통 컴포넌트를 구현해 로딩 시 노출되는 빈 화면 문제를 해결하고, CLS 점수를 개선했습니다.
● React Native 웹뷰 통신
- Next.js ↔ React Native 통신을 구현해 앱에서만 제공되는 기능을 웹뷰에서도 사용할 수 있도록 했습니다.
- AsyncStorage를 활용한 1일 동안 보지 않기 기능과 RNPermission을 사용한 알림 허용/거부 확인 기능을 추가했습니다.
● Git Branch 전략 설계
- 기존 TBD 전략의 충돌 문제를 해결하기 위해 두 가지 대안을 시도했습니다.
1. Feature Flag를 도입했으나, 작업 후 정리 과정에서 비효율성이 발생했습니다.
2. Git Flow 전략을 채택하여 운영 브랜치(main), 배포 준비 브랜치(release), QA 브랜치(staging)로 역할을 명확히 분리해 작업 혼선을 줄이고 협업 효율성을 높였습니다.
● 문서화
- 디자인 시스템을 피그마와 노션으로 정리해 컴포넌트 사용법과 히스토리를 명확히 문서화하고, 팀 간 소통을 개선했습니다.
- 개발팀의 컨벤션과 협업 방식을 온보딩 자료로 제작해 신규 팀원의 적응 기간을 단축하고, 팀 전체의 작업 일관성을 확보했습니다.
- 트러블슈팅 사례와 기술적 학습 내용을 기록해 지식 공유를 활성화하고, 문제 해결 속도를 높였습니다.
더보기