본문 바로가기
취미/컨퍼런스

Flutter 개발에서 DevTools를 활용하는 이유 (천정환 - Flutter Seoul) - Flutter In Production Extended Seoul

by WooHey 2025. 1. 16.

본 게시글은 Flutter in Production 컨퍼런스 참여 후 작성한 글입니다.

Flutter In Production Extended Seoul 컨퍼런스 후기

 

 

 

들어가며..

이번 세션은 Flutter 에서 DevTools 를 활용하는 이유에 대한 내용이다.

Flutter 에서 DevTools 를 한 번도 사용해보지 않아서 그런가.. 아니면 강의 시간이 촉박해서 그런가.. 

처음 듣는 단어들도 많고.. 뭔가 개인적으론 조금 어려운 느낌이 없지 않아 있었다.

(사실 배도 고프고 쉬는 시간 거의 없이 달려서 집중력이 흐트려졌을 지도..ㅎㅎ)

 

그래서 천정환님도 이번 발표를 준비하면서 많은 고민을 하신 것 같았다.

이 DevTools 라는 것이 약간의 배경 지식이 있으면 되게 흥미롭게 팔 수 있는 내용이라고 하면서, 

배경지식이 없는 사람들을 위해서 내용 전달을 어떻게 할 지 고민한 흔적이 많이 보였기 때문이다.

 

간단한 메모장 앱을 만든 후, 여러 기능들을 소개해주셨다.

 

발표는 주로 각 기능들 활용법을 시각화 자료를 통해 알려주셨기에..

발표 내용을 조금 참조해서 DevTools 에 대한 내용을 간략하게 정리해보겠다.

 

 

 

DevTools 가 뭐지?

DevTools 는 Flutter 앱을 디버깅하고 최적화 하는 도구이다.

이를 활용해서 실시간으로 앱의 상태를 모니터링하고 문제를 파악할 수 있다.

 

천정환님은 DevTools 를 주로 UI 디버깅할 때 많이 사용했지만,

최근들어 CPU 사용량도 확인할 일이 있어서 깊게 파는 중이라고 했다.

 

 

주요 기능

  • 메모리 관리 : 힙 메모리 분석, 가비지 컬렉션 모니터링
  • 성능 프로파일링 : 프레임 타임 분석, CPU 사용량 모니터링
  • 네트워크 트래픽 분석 : API 요청 및 응답 시간 분석
  • 앱 크기 분석 : APK 크기 및 IPA 파일 크기 최적화
  • UI 디버깅 : 위젯 트리 시각화 및 레이아웃 분석

 

 

 

활용 1. 메모리 관리 및 최적화

Flutter 의 메모리는 힙(Heap)에서 관리되고, 앱이 실행 되는 동안 객체가 생성된다.

DevTools 를 활용해서 메모리 사용량을 실시간으로 모니터링하고 분석할 수 있다.

 

앱 실행 중에 생성된 객체는 힙(Heap)메모리에 저장되고, 루트 객체를 통해 참조된다.

참고로, 루트 객체는 앱의 메인 함수, 전역 변수, 현재 실행 중인 함수에서 접근 가능한 객체이다.

 

메모리 뷰

앱의 메모리 사용량을 분석하고 최적화할 수 있도록 도와준다.

어떻게 도와주냐면..

 

프로파일 메모리 라는 것을 통해 각 객체 유형별 메모리 사용량을 확인하고,

Diff Snapshot 으로 서로 다른 시점의 메모리 상태를 비교해서 변화점을 분석한다.

그리고 Trace Instances 에서 특정 클래스에서 발생한 객체 할당 수를 확인할 수 있다.

 

 

 

활용 2. 디버깅 및 성능 분석

Call Method Tracking

특정 함수의 실행 시간을 분석할 수 있고,

 

네트워크 트래픽 모니터링

네트워크 요청 및 응답을 분석해서 성능 저하 원인을 파악할 수 있다.

 

CPU 프로파일링

프레임 렌더링 시간을 분석하여 성능 병목을 해결할 수 있다.

 

 

 

최신 DevTools 업데이트

이번 Flutter 3.27 에서는 여러 기능들이 개선되었다.

 

딥 링크 개선

특정 화면으로 바로 이동할 수 있도록 지원하고

 

오프라인 프로파일링 지원

네트워크 연결 없이도 성능 분석이 가능해졌다.

 

WebAssembl 지원

웹 앱의 렌더링 성능을 개선해서 더욱 빠른 실행 가능해졌으며

 

성능 로깅 향상

성능 로그를 개선하여 분석이 더욱 직관적으로 이뤄질 수 있도록 지원한다.

 

 

 

끝으로..

천정환님은 지금까지는 DevTools 를 UI 디버깅 용으로만 사용하다가

이번 기회에 CPU와 메모리에 관해 활용을 하면서 관련 내용을 공부하는 계기가 되었다고 했다.

 

그리고 우리가 만드는 제품이 뛰어난 기능, 강력한 성능을 가지기보다

사용자에게 더 좋은 경험을 주는 서비스가 좋은 제품이라고 말해주셨다.

 

하루에도 수없이 출시되고 삭제되는 앱들이 많은데,

DevTools 를 통해 이러한 사용자 경험을 향상시킬 수 있으면 좋을 것 같다고 헀다.

 

또한, DevTools 를 통해 보다 긴밀하게 문제를 추적하고 해결하는 과정을 겪으며

성장하는 개발자가 되도록 하자! 

라는 좋은 말씀을 해주셨다ㅎㅎ