FE 개발단계 체크 리스트
Process
- 1.Requirements
- 2.Develop
- 3.Testing
- 4.Monitoring Plan
1.Requirements & System Design
📌 1.기존의 스펙과 코드를 이해하는 단계
일정이 촉박하다고 반드시 이 단계를 넘어가지 마세요.! 일정의 일부입니다.
다른 사람들의 짠 코드의 로직을 이해 해야함(익숙도)
- 아무리 잘 짠 코드라도, 간단한 코드라도 남이 짠 코드를 바탕으로 무언가를 만들려고 하면 복잡하다.
- 그래서 다른 사람들의 코드를 마치 내가 짠 코드 처럼 익숙해지는 단계가 필요하다.
사용중인 API 목록(API Spec) 파악
- 데이터의 확실한 정의를 리체크 해라.
- 특히나 거지같은 변수명으로 함부로 의미를 추론하지 마라.
놓치기 쉬운 FE 로직들
- Ingress Point 정리 ( 외부에서 들어오는 경로들, 심지어 외부 사이트도 있을 수 있음. )
- 데이터 차원 정리 ( Retail로 접속 or 3P로 접속 등 )
📌 2.요구사항 수집 단계 및 준비
- PRD에서 꼼꼼히 테스트 케이스들을 작성하는 훈련을 먼저 해야한다.
📌 3.커뮤니케이션
- API Interface는 미리 공유 및 제안을 하자.
- 변수명, 내부 로직, 단위 체크, 의미 체크, Nullable 체크
2.Develop
📌 1. 시스템 도구 활용하기
- i18n을 JSON으로 변경하는 도구 사용하기
- *400개 한/영 옮기면 800번이나 왔다갔다 해야 한다. 실수안할 자신이 있는가? 나는 96% 정확도를 가진다.
📌 2. API Interface Testing
- 데이터 정합성 : 데이터 포인트가 많으면 필드명이 헷갈려서 엉뚱한 필드를 쓰는 경우가 허다하다. 반드시 올바른 데이터가 나오는지 테스트
📌 3. UI LifeCycle Testing
- 컴포넌트 라이프 싸이클
- 팝오버
- 생성 단계 : 기존의 데이터들이 초기화, 새롭게 패칭.
- Loading & Error
- 적절한 Status UX (업다면 제안)
- Render :
- 레이아웃 쉬프팅 체크.
- 과도한 리렌더링 체크.
- Rerendeing
- 메모이제이션 의존성 배열에 놓친것
- Submitting
- 사용자의 중복 제출을 막아라
- 소멸
- 스토어 클린업
- 이벤트 리스너 등 이펙트 클린업
- API 요청 Abort
- 페이지 수준에서도 마챤가지다.
- 팝오버
📌 4. UI Stress Testing
- 포멧팅, 임계값(String(i18n), Number), 반응형 레이아웃
- 화면 해상도에 따라 컴포넌트가 줄어들면 어떻게 되는가? > 개행, 줄임표 등 대응
- 예) min-width ~ context-fit ~ max-width 의 범위를 넘어가면, wrap으로 개행 처리.
- 최후의 수단으로 언어별, 숫자별 UI의 마크업을 달리한다. 혹은 font-size 등의 CSS를 달리한다.
📌 5. 컴포넌트 하위 호환성 고려하기
- UI컴포넌트는 많은 곳에서 참조된다. 하위호환성을 지키면서 개발을 해야 한다.
📌 전역, 지역, 서버 상태관리
- (공통) 리렌더링이 되는 컴포넌트라면 초기화, CleanUp 싸이클이 언제 필요한가?
- (공통) 재생성 되는 컴포넌트라면 초기화, CleanUp 싸이클이 언제 필요한가?
- 재생성 로직만으로 싸이클을 다룰 수 있는가?
📌 Validator 순서 스펙 명시하기
- 유효성 검사 조건, 노출 순서, 노출 조건 확인
📌 의존성 체크
- 컴포넌트 수정은 항상 하위 호환성을 고려한다. 사이드 이펙트를 방지
- 프로덕션과 동일한 MFE의 환경 테스트 : 스타일이 깨지는 경우도 있음
2.4 Unit Test
📌 필수 단위 테스트 코드 작성
- 그래프, 수치에 대한 함수는 테스트 코드를 반드시 작성한다. 예를들어 계산식, 선형보간법, 특정 공식 구현, 주요 비즈니스 로직
3.Testing
📌 훈련
- PRD에서 꼼꼼히 테스트 케이스들을 작성하는 훈련을 먼저 해야한다
📌 Validator 순서 Testing
📌 UI Stress Testing
📌 UI LifeCycle Testing
4.Monitoring
📌 시스템 이상탐지 & 얼럿
- BFF : Grafana 대시보드에 특정 피처들만 집중해서 모아둔 대시보드와 얼럿을 설정해야 한다.
- FE : Sentry 로깅 모니터링과 얼럿을 만들어야 한다.
회고
Action Item
1.모든 상태의 합집합은 전체 집합인지 체크하자.
- 1.그래프에 데이터가 없는 케이스 고려 = 상승 | 하락 | 동일 | 없음
- 2.상품 목록 API 처리 = 로딩중 | 상품없음 | 상품 리스트 | 오류
2.시스템 예외사항은 - window.Alert 대신에 별도의 Modal UI 요청하자.
3.State가 복잡한 경우에는, 다양한 케이스를 고려해야 한다.
- 메인Filter, 서브 Filter, Sorter, Pagination, Selection 등 다양한 인터렉션이 존재한다. 각각의 로직에 잘 대응하는것이 필요.
- PageSize가 10일때는 50Page가 있지만, PageSize가 50일때는 50번째 페이지는 없다. 적절하게 마지막 페이지로 이동해야 함.
- 메인 필터에 따라서, 서브 필터에 상품군의 갯수가 달라진다. 모수가 바뀌는것 대응
4.CSS 조금이라도 이상한가 꼼꼼해 봐야 한다.
- Padding/줄간격 / i18n 텍스트 깨짐 / CommaInsert
- ⬆️ 이모지는 쓰면안된다.