괴물 같이 변한 Dooray! 웹앱 정리하기

Dooray 웹앱이 커지면서 유지보수가 어려워지고, 이를 해결하기 위해 많은 고민들을 했습니다.
왜 이러한 결정들이 내려졌고, 그로인해 어떻게 바뀌었는지에 대한 경험들을 공유해 볼까 합니다. ^_^

대상

웹앱이 복잡해져 어떻게 정리할지 고민하시는 분

다루는 내용

  1. 왜?
    • 오랫동안 개발하다보니 히스토리를 추적하기 힘든 코드가 많아짐
    • AngularJS라는 지원 종료된 라이브러리 사용 중
    • Vue로 점진적 전환 시도하지만 문제점들 발생
    • React로 전환 시작
  2. 컴포넌트 정리
    • 스토리북을 활용한 값들의 정리
    • 공통 컴포넌트 정리 시에는 팀원 전체 참여하여 제작
    • 각 서비스와 연관된 컴포넌트도 스토리북으로 공유
    • 컨테이너 프리젠테이셔널 패턴 적용
    • 컨테이너 자식으로 1개의 컴포넌트만 가지며 memo 적용 가능 포인트로 사용
  3. 데이터 정리하기
    • 상태는 대부분 스토어에 저장
    • 영역에 국한된 상태와 서비스와 연관된 상태인 도메인으로 구분
    • 역할에 따라 UI 스토어와 데이터 스토어로 구분
    • 리덕스 사가를 통하여 흐름 제어
  4. 테스트는 어떻게 할까?
    • 프리젠테이셔널 컴포넌트는 스토리북으로 테스트
    • 컨테이너는 상호작용 테스트
    • 스토어는 액션에 대한 동작을 통합테스트

최종 정리 요약

화살표는 의존성 방향

발표 자료 자세히 보기

이 포스트를 공유해주세요
알투
알투

Dooray를 만들고 있는 프론트엔드 개발자입니다.

Articles: 1

의견 남기기

0