티스토리 뷰
728x90
# 콜드스타트 (Cold Start)
여러분야에서의 ‘콜드스타트’가 존재하지만 이들을 통칭하면 아래와 같습니다.
초기 데이터나 준비과정의 부족으로 인해 발생하는 비효율성 또는 지연문제
소프트웨어에서의 “콜드스타트” 는 2가지가 존재합니다.
- 추천 시스템 : 사용자에게 적합한 추천 제공이 어려운 ‘데이터 부족’ 문제 입니다.
- 컴퓨팅 & 서버리스 아키텍쳐 : 함수나 인스턴스가 다시 실행될 때 초기화 및 리소스 할당으로 발생하는 성능 지연 시간을 의미합니다.
- 클라우드 서비스 제공업체는 리소스 효율성을 위해서 사용되지 않은 함수와 인스턴스를 자동으로 종료시킵니다.
이후 새로운 요청이 들어왔을 때 종료된 인스턴스는 다시 시작하고 필요한 라이브러리들을 로드하며 실행환경을 초기화하는 과정이 필요한데, 이 과정에서 추가적인 지연시간이 발생합니다.
- 클라우드 서비스 제공업체는 리소스 효율성을 위해서 사용되지 않은 함수와 인스턴스를 자동으로 종료시킵니다.
# 플러터에서의 콜드 스타트는 무엇인지?
플러터에서의 콜드스타트는 ‘앱이 처음부터 완전히 새로 시작하는 것’을 의미합니다.
시스템 메모리에 앱과 관련된 프로세스나 데이터가 전혀 없는 상태에서 앱을 실행할 때 발생합니다.
즉, 메모리와 앱과 관련된 프로세스가 전혀 없는 상태에서 새로운 프로세스로 앱을 시작한 과정을 거치는것을 의미합니다.
- 언제 콜드스타트가 발생하는지?
- 기기를 부팅한 후에 앱을 처음 실행할 때
- 사용자 또는 시스템에 의해 앱이 완전히 종료된 후에 다시 실행할 때
- 앱을 새로 설치한 직후 실행할 때
- 콜드스타트 / 웜스타트 / 핫스타트
- 콜드스타트(cold start): 앱 프로세스가 전혀 없는 상태에서 시작
- 웜스타트(warn start): 앱 프로세스는 남아있지만 액티비티(화면)가 재생성되어야 하는 상태
- 핫스타트(hot start): 앱과 액티비티가 모두 메모리에 상주하여 단순 포그라운드로 전환되는 상태
- 속도 비교: 핫스타트 > 웜스타트 > 콜드스타트
- flutter run 명령어도 콜드스타트에 해당되는지?
- 명령어로 앱을 최초 실행한 경우에는 콜드스타트가 맞습니다.
- 콜드스타트 진행과정
- 1. 빌드 및 배포 - 코드를 컴파일하고 앱패키지를 생성하여 대상 기기에 설치
- 2. 엔진 및 Dart VM초기화 - 기기(디바이스,애뮬레이터)에서 flutter 엔진과 Dart 런타임을 메모리에 로드합니다.
- 3. 앱코드 실행 - main() 함수부터 시작하여 앱의 초기상태와 위젯트리를 구성합니다.
- 다만, 이후 코드 변경으로 핫리로드 & 핫리스타트 를 진행한 경우에는 콜드스타트가 아닙니다.
- 핫리로드가 콜드스타트가 아닌 이유?
- 전체앱을 다시 빌드하거나 배포필요없이 변경된 사항을 즉시 업데이트하기 때문입니다. 이미 기기와 메모리에 남아있기 때문입니다.
- 핫리스타트가 콜드스타트가 아닌 이유?
- 앱의 상태와 관련된 메모리는 모두 초기화됐지만, flutter 엔진과 Dart VM을 완전히 종료하고 다시 시작한 것이 아니기 때문입니다.
- 핫리로드가 콜드스타트가 아닌 이유?
콜드스타트가 제일 시간이 오래걸리는 편이라서, 성능이나 퍼포먼스를 개선해야된다면
플러터 개발자는 항상 콜드스타트 성능을 기준으로 앱 시작시간을 최적화하는 것이 좋습니다.
나의 메타인지 점검하기
[ 콜드 스타트 ]
데이터 부족이나, 성능 지연으로 아직 준비되지 않은 상태를 의미함.
[ 인프라에서의 콜드 스타트 ]
클라우드에서 제공하는 함수나 인스턴스를 새로 생성하거나, 종료상태/유후(CPU가 놀고있는상태)에서 재실행할 때
시간이 오래걸리는 성능지연을 의미함.
[ 플러터에서의 콜드 스타트 ]
아예 맨처음부터 다시 시작하는 것을 의미함. (앱을 설치하고 실행할때, 부팅이후 앱을 실행하는 것)
기기에 메모리나 프로세스가 존재하지 않은 상태에서 시작하는 것을 의미함.
728x90
반응형
'Backend > 꾸준히 TIL' 카테고리의 다른 글
| 핫리로드 (Hot Reload) (1) | 2025.12.13 |
|---|---|
| SPA (Single Page Application) (4) | 2025.12.08 |
| DLQ 이론 (0) | 2025.12.05 |
| HTTP 헤더 2 - 캐시와 조건부 요청헤더 & 프록시 캐시 & 캐시 무효화 (0) | 2025.11.24 |
| [WIL-01 주차] 1주차 회고 (2) | 2024.12.22 |
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday