커리큘럼
home
React
home

[이음] 작은 재능부터 큰 재능까지 거래할 수 있는 비대면 재능 매칭 플랫폼

Section info
Section A
A3
비즈니스
Specialty
React
아키텍쳐
기술적 의사결정
선택한 기술
이 기술을 선택한 이유
React
1. Virtual DOM, CSR 방식으로 페이지 내에 변경된 부분만을 감지해서 필요한 부분만 렌더링 할 수 있습니다. 2. 커뮤니티가 많습니다.
TypeScript
1. Type을 미리 지정하여 Type에 맞지않는 부분들을 RunTime 이전에 에러로서 확인할 수 있어 RunTime 이 후에 일어날 수 있는 버그,에러들을 사전에 방지 할 수 있습니다. 2. 작성한 코드가 나중에 보았을 때 어떤 Type의 코드인지 명확히 알 수 있습니다. (가독성)
Recoil
1. 컴포넌트의 상태를 자동으로 추적하여 Context API와 다르게 필요한 상태만 렌더링하고 성능을 최적화 할 수 있습니다. 2. 저희 프로젝트는 많이 복잡한 편이 아니기에 BoilerPlate가 적은 Recoil을 선택하였습니다. 3. React를 개발한 Facebook에서 개발하여 React와 상성이 좋으며 Facebook의 대규모 애플리케이션에서 테스트하고 사용되었기 때문에 안정성,성능면 에서 뛰어나다 평가되고 있어 선택하였습니다.
React-Query v4
1. 데이터를 캐싱하고 최신 데이터를 가져와서 자동으로 UI가 업데이트 되도록 할 수 있어 불필요한 API호출을 줄이고 성능을 향상시킬 수 있습니다. 2. 코드가 짧아 가독성이 좋습니다. 3. 다양한 옵션으로 편리합니다.
Firebase
1. 회원정보를 AuthService를 통해 보안성을 향상시키기 위해 선택하였습니다. 2. 간편한 소셜 로그인을 지원하기 위해 사용하였습니다.
성능 개선

저희는 최적화된 사이트를 만들기 위해 지속적인 성능 개선을 실시 하였습니다.

최초 성능 검증 (23.02.23)

1차 성능 개선 (23.02.23)

불필요한 자바스크립트 제거 및 불분명한 코드 type수정

2차 성능 개선 (23.02.25)

반복되는 component 축소, styled 동일 요소 제거

3차 성능 개선 (23.03.05)

API분리하여 따로 관리 진행을 하였으며, JSX에 코드 중에서 중복되거나 합칠 수 있는 코드들은 모두 한번에 불러서 진행할 수 있도록 하였습니다.
불필요한 이미지 파일 또는 사이즈 조절이 되지 않는 ITEM들 모두 수정하였습니다.

4차 성능 개선 (23.03.07)

Loader적용하여 사용자 입장에서 대기하는 시간을 알려주는 방향을 잡았으며, 팀원들 전체 라이브 코딩을 진행하며, 팀 의사소통으로 찾지 못하거나 발견하지 못했던 부분을 찾아 자바스크립트를 축소화하고 나머지 접근성 부분을 관련 코드를 추가했습니다.
트러블 슈팅

회원가입 → 로딩 → 홈화면 까지 이동시간이 너무 긴 문제

로그인 이 후 새로고침 시 로그인 상태가 풀리는 문제

실시간 포인트 반영이 되지 않는 문제

데이터 용량을 보다 적게 사용하는 방법을 고민

주요 기능

결제 및 결제취소 시스템

마이페이지의 여러가지 편의기능

무한 스크롤