Skip to content

Jcurver/Keepit-frontend

Repository files navigation

🗺️ Keepit 우리만의 지도 만들기

⛳️ 목표

킵잇은 좋은 장소를 찾는 모두를 위한 제품을 만들고 있습니다.

우리가 sns나 블로그에서 얻은 장소 정보는 광고나 단순 보여주기식으로 인해 생각보다 만족하지 못한 경험으로 이어지게 됩니다. 여러 플랫폼에 흩어져 있는 정보를 모으기에 기술적 제약과 불편함도 있고요. 킵잇은 공통의 주제로 사람들이 모여 솔직한 장소 리뷰를 나누고 장소를 모아 그룹 지도를 만드는 커뮤니티 서비스를 목표로 합니다.

사소한 UX 디테일까지도 놓치지 않고 기능을 구현하는 것이 목표입니다.

ex1. 유저가 어떤 상황에서 앱을 종료하더라도 문제가 없도록 조치하기
ex2. 필요한 곳에 상황별 Skeleton을 적용하여 로딩중임을 꼭 보여주기
ex3. 이미지와 글을 불러올 때 상황에 따라 캐싱과 api 호출 등을 분기처리하여 빠른 성능과 데이터 무결성을 모두 챙기기 ex4. 임시저장 기능을 통해 작성하던 글은 언제든 다시 작성할 수 있도록 구현
ex5. 페이지를 스크롤 한 후 다른페이지로 이동했다 돌아왔을 때 리스트 데이터 업데이트 여부에 따라 새로고침 여부 핸들링
ex6. 테스트 외적으로도 직접 기능들을 하나하나 사용해보며 Side Effect로 인해 발생되는 에러를 추적하고 핸들링

클린코드를 위해 꾸준히 코드 리팩토링을 진행 중입니다.

기능이 아무리 많다 한들 제대로 동작하지 않으면 의미가 없습니다. 주기적으로 컴포넌트를 리팩토링하고 props를 수정하고 스타일가이드 정책을 가꾸고 함수 등 관심사를 분리하는 작업을 진행합니다.

CI/CD를 통한 자동화를 구현하여 쉽게 협업이 가능한 프로젝트를 목표로 합니다.

e2e Test, Codepush와 XCode를 상황에 맞게 활용하여 무중단 배포 전략을 구현합니다.

Github, Notion, Figma를 통한 활발한 소통을 바탕으로 효율적인 협업을 추구합니다.

Git Flow 확립, 주간 회의시 작업내용 컨펌, 실시간 Notion ToDo 업데이트.

안정적인 서비스 운영을 위해서 테스트 코드를 작성합니다

기능이 지속적으로 추가되기 때문에 Side Effect 방지를 위해 e2e 테스트를 중점으로 점검합니다.

⛳️ 사용한 기술

  • React-Native
  • CodePush
  • Redux
  • Detox
  • FCM
  • React Navigation

개발하는 과정에서 기존 기능에 Side Effect를 발생시키는 기능들이 지속적으로 추가되었기에 이를 해결하는데 많은 시간을 소비하였습니다. 이런 과정을 겪은 뒤로는 새로운 기능이 생겨도 Side Effect가 적게 발생할 수 있도록 코드를 유지보수 하였습니다.

⛳️ 기술적 이슈와 해결 과정

작업하며 겪었던 크고작은 다양한 이슈들, 그리고 진행했던 과정과 배운 점들을 기록해 보았습니다.

Webview와 Kakao API, Kakao cdn을 활용하여 발생할 수 있는 복잡하고 다양한 유저 이벤트의 모든 케이스를 대응하여 구현하였습니다.

디자인 요구사항을 만족하는 Toast 라이브러리가 없다고 판단하여 확장성과 안정성을 고려해 직접 Toast 기능을 구현하였습니다.

백그라운드 / 포그라운드 / 인앱 알림 업데이트 및 dev / prd 구분을 위해 많은 시간 검색하고 적용한 내용을 담았습니다.

CodePush를 통해서 Xcode 대비 CI/CD에 들어가는 시간을 10배 이상 단축하였으며, 무중단 배포 설정 및 업데이트 조건을 설정했습니다.

치명적인 에러를 사전 방지하기 위해서 로그인부터 시작해서 테스트코드를 점진적으로 적용해나가고 있습니다.

작업을 진행하면서 코드 내부에서도 많은 어려움을 마주했지만 코드 밖에서도 다양한 어려움이 있었습니다. 그런 어려움들을 극복한 과정들 역시 저에게 소중한 자산이기에 배우고 느낀 점들을 Trouble Shooting과 분리하여 기록하였습니다.

About

Team Project - 우리만의 지도 만들기 : Keepit

https://www.notion.so/Keepit-a5f019c1a00a47de9e803d4ca5c3c637

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published