4.8.1)
- unit test: single function, method, class
- widget test: single widget
- integration test: a complete app or a large part
- 를 테스트 함. code coverage 활용하면 수치화도 가능함.
- 모든 브랜치 커밋 푸시 단위로 자동 테스트하면 queue에 job이 너무 쌓이니까 PR 올라온 거만 workflow 실행할 것 추천.
- TDD 테스트 주도 개발이 여러 장점이 있지만 생산성 저하가 큰 단점임. 그래서 안전성이 상당히 중요한 개발이나 서비스 보단 모듈 개발(채팅, 동영상플레이어, 사진 편집기 등)에 더 적합하다 함.
- BDD 이런거도 있음,, Given When Then으로 시나리오 기반 테스트 케이스 작성하는 거래.
4.8.2)
- unit test 목표는 다양한 conditions에 대한 로직의 정확도를 검증.
- 유닛테스트가 서버 api 또는 db로부터 데이터 fetch 해야하는 경우 Mockito를 활용하여 목업 데이터를 생성하여 테스트 실행 가능. node에서도 mock 데이터 만들어서 했었음.
4.8.3)
- widget test의 목적은 UI look과 interaction이 예상대로 작동하는지 검증.
- flutter_test 패키지 사용함.
4.8.4)
- integration test 목표는 예상대로 실제 앱이 작동하는지 검증하는 것.
- golden toolkit 패키지 참고.
4.9.1)
- breakpoints는 중단점을 잡는 것인데, 안드로이드 스튜디오 기준으로 아래의 디버그로 실행을 해야함:
- step into: bp 다음 라인으로 이동하고, 함수가 있으면 함수 내부로 이동
- step over: 함수 실행은 하지만 내부로 이동하진 않음
- step out: 현재 함수의 리턴으로 이동
- flutter lint 적용 적극 권장함.
4.9.2-3)
- logging 패키지 사용법.
- Sentry 소개. (모니터링 플랫폼)
- 3rd Party 'logger' package 소개. (로그가 어디서 찍힌 건지 바로 보이기에 아주 편함)
- Network Log는 http 통신이 많다면 적용 추천. 개발 하면서 응답값이 어떻게 나오는지 바로 확인하면서 개발 가능. insomnia같은 api client 느낌인 듯.
- alice 패키지 소개해줌.
4.10.1)
- DevTools를 강사는 잘 사용 안함. 한다면 성능개선 목적의 Frames 체크, 메모리 이슈 체크, 인스펙터(레이아웃 이슈 디버깅할 때) 등으로 씀.
- hot reload, hot restart가 강력해서 자주 사용할 일이 없다 함.
4.10.2)
- Performance view 소개. profile로 실행해야 함.
4.10.3)
- CPU profiler 소개. 이건 강사도 안써봤다 함 (위 두 개 devtools 빼고).
4.10.4) 메모리 관련 개념적인 설명이 주를 이룸. CS 기초가 필요하고 고차원적인 개념인 듯 함.
- Memory view 소개.
- 클래스 객체(object)를 생성하면, 메모리 heap 영역에 할당되고, object가 더이상 사용되지 않으면 메모리에서 해지됨 (garbage collector)
- root object는 앱 내 모든 객체가 root object를 레퍼런스함. 근데 이런 레퍼런싱을 끊게되면 garbage collector(gc)가 메모리에서 해지하는 시그널이 됨. => object가 unreachable한 상태가 됐다고 표현함.
- retaining path가 하나라도 있으면 reachable한 것.
- shallow size vs retained size 설명.
- 어찌됐든 GC가 모든 memory leak을 방지할 수 없기에 감시하기 위해 있는 게 memory view임.
4.10.5)
- Network View 소개.
- 유용할 것으로 생각한다 함. 특히 웹소켓 활용시.
- 네트워크 연결할 때부터 찍힌다 함.
4.10.6)
- Logging View 소개. 상당히 디테일하게 모든 이벤트가 찍힌다 함. 근데, 꼭 필요한가?는 잘 모르겠다 함.
4.10.7)
- App size tool 소개. 말그대로 앱 사이즈(용량)를 분석하는 툴임.
출처: 패스트캠퍼스
[Flutter] 간단 실시간 퀴즈 앱 (RTDB, StreamBuilder, onValue) (0) | 2024.05.06 |
---|---|
[Flutter] 간단 배달앱, Firebase 환경설정 및 컬렉션 설계 (+트러블슈팅) (0) | 2024.05.06 |
[Flutter] Clean Architecture, Reactive Programming, WebView (git flow, singleton, etc.) (0) | 2024.05.03 |
[Flutter] 간단 당근 (다양한 테마적용, live templates, mixin, 패키지 분리) (1) | 2024.05.01 |
[Flutter] 간단 당근 (pagination, FCM push, internationalization, mixin) (1) | 2024.05.01 |