
서론
2달 전 마지막 개발일지를 작성하고 너무 오랜만에 글을 쓴다.
그동안 개발은 열심히 했는데 작업하다보니 개발일지 쓰는걸 매번 깜빡하거나 미뤘었는데..
지금부터라도 다시 복기하며 개발 내용을 되짚어봐야겠다.
Notification Helper 만들기
아래와 같이 백그라운드에서 호출될 초기 헬퍼 파일을 만들었다.
강의에서 배운거 그대로 써먹기..ㅋㅋ

컴파일(Compile)
컴파일이란 개발자가 작성한 코드를 기계어(기계가 이해할 수 있는 형태)로 바꾸는 과정이다.
Dart같은 언어의 경우 사람이 이해하고 사용하기는 좋지만 기계가 이해하지 못한다.
컴퓨터가 이해할 수 있는것은 0과 1로 이루어진 코드 뿐이다.
이를 영어로 Binary 또는 Machine Code라고 한다.
컴파일 방식은 AOT / JIT 두가지가 있다.
AOT (Ahead-of-Time Compilation)
AOT는 프로젝트 실행 전 소스코드를 미리 기계어로 컴파일 하는 방식이다.
앱 빌드시 기계어로 완전히 바꿔놓는다.
장점으로는 실행속도가 굉장히 빠르다는 점 (기계어가 이미 준비되어있음),
미사용코드 (호출 안된 최상위 함수 등) 들이 제거되어 앱 크기를 최적화 한다는 점이다.
대신 코드 변경 후 반응되는 속도가 상대적으로 느리다.
보통 flutter build apk --release / flutter build ios 시에 사용된다.
JIT (Just-in-Time Compilation)
반대 개념인 JIT는 실행중(런타임)에 소스코드를 해석하거나 컴파일 한다.
전체 속도는 느리지만 개발중에 코드를 변경할 경우 빠르게 Hot Reload가 가능하다는 장점이 있다.
flutter run / flutter build apk --debug 시에 사용된다.
릴리즈 모드에서 AOT 컴파일 시에는 사용되지 않는 코드들이 제거되기 때문에,
백그라운드에서 실행되는 코드는 런타임 코드 내에서 호출이 안되는 것으로 인식한다고 한다.
따라서 @pragma('vm:entry-point') 명령어를 추가하여 컴파일러가 이 함수를 제거하지 않도록 설정해야 한다.
이제 정각 알림, 매시각 30분 알림 스케줄링 함수를 아래와 같이 짜봤다.

'개발일지 : 모멘톡(momentalk)' 카테고리의 다른 글
| Day 6 - 정각알람 기능 만들기(1) (0) | 2025.05.12 |
|---|---|
| Day 5 - 내비게이션 바, 타임라인 만들기 (2) | 2025.03.27 |
| Day 4 - To Do List Section Layout 수정 (0) | 2025.03.24 |
| Day 3 - Figma 추가 작업중 (0) | 2025.03.13 |
| Day 2 - Figma 작업 (0) | 2025.03.11 |