툴링

툴링

적절한 툴링 선택은 개발 워크플로 효율성과 효과에 큰 차이를 만듦

버전 관리 깃

버전관리는 협력적인 개발을 가능케함

일관성 있는 브랜칭 전략

  • 기능 브랜치와 같이 명확하고 일관성 있는 브랜칭 전략을 구현해 새로운 기능 개발, 수정 사항, 출시를 관리하라

  • 이를 잘 문서화해서 모든 팀원들이 명확하게 이해할 수 있게 해야한다.

리뷰 프로세스

  • 메인 브랜치에 병합하기 전 명확한 코드리뷰 프로세스를 거쳐야 한다.

  • 이슈를 식별하고 새로운 코드가 병합되기 전에 코드 품질을 보장하는데 도움된다.

지속적 통합

CI는 여러 개발자의 코드 변경을 그 즉시 하나의 소프트웨어 프로젝트로 병합하는 프랙티스

  • CI 프로세스가 진행되는 동안 자동화 체크 중 하나라도 실패하면 시스템을 통합 프로세스를 중지

  • 잠재적인 문제를 가진 코드가 병합되는것을 방지함

CI 파이프라인에 전형적으로 구축할 수 있는 항목들

  • 린팅, 포맷, 코드 스타일 체크

  • 단위 테스트, 통합 테스트, E2E

  • 타입스크립트 타이핑

  • 접근성 테스팅(Axe 같은 도구)

번들러

개발 코드를 브라우저에 호환되는 형식(HTML, CSS, JS) 변환하는 도구

  • 번들러의 핵심 기능은 코드 컴파일과 변환이지만, 요즘 도구들은 웹 개발에 필요한 추가적인 기능도 제공함

    • 성능 최적화의 핵심적인 역할 (이미지 최적화, 지연 로딩, 코드 분할 기법 등)

    • 트리 셰이킹 기능을 제공하여 사용하지 않는 코드를 제거 후 최종 번들 파일 크기를 줄인다.

로깅

사용자 경험에 영향을 미칠 수 있는 이슈들을 식별하고 진단하는 도구

  • 처리되지 않은 예외, 문법 에러, 런타임 에러 같이 프로덕션에서 발생하느 에러를 추적하고 진단함

  • 이 정보들을 활용하여 버그를 신속하게 식별하고, 수정함으로써 사용자 경험 개선하고 다운타임을 줄임

유용한 접근법

  • 중앙 집중화된 로깅 솔루션을 사용

  • 로깅 대상을 신중히 선택

    • 너무 많은 정보를 로깅하면 검색 및 분석하는데 부정적인 영향을 끼침, 불필요한 정보는 제거

  • 구조화된 로깅

    • 일반 텍스트가 아닌 JSON같은 구조화된 형식의 데이터를 로깅하는 것을 말함

    • 구조화된 로깅은 검색과 분석을 쉽게 할 수 있고 앱 동작의 패턴과 트렌드를 식별하는데 도움됨

  • 로그에 컨텍스트 포함

    • 사용자 ID, 요청 ID, 앱 버전과 같은 컨텍스트를 로그에 포함하면 버그 원인을 보다 쉽게 식별 가능

  • 로그를 모니터링

    • 로그를 실시간으로 모니터링하면 이슈를 빠르게 식별하고 대응 가능

성능 모니터링

앱의 효율성과 속도를 지속적으로 추적하고 평가하는 능력

  • 응답 시간, 서버 부하, 리소스 효율같은 앱 성능에 관한 데이터 수집, 분석, 보고를 포함함

  • 페이지가 느리게 작동하는 것과 로딩 시간이 긴 것을 식별하고 분석할 수 있는 이익을 얻음

  • Splunk, Datado, New Relic 같은 도구로 에러 로깅과 함께 시스템 성능 추적과 모니터링 기능도 제공함

Last updated