Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 오름캠프
- Tag #패스트캠퍼스 #내일배움카드 #국비지원 #K디지털기초역량훈련 #바이트디그리 #자바인강
- 플러터
- 패스트 캠퍼스
- #패스트캠퍼스 #내일배움카드 #국비지원 #K디지털기초역량훈련 #바이트디그리 #자바인강
- 오름캠프플러터
- 모두의연구소 오준석생존코딩 오름캠프
- ㅇ
- 오준석의생존코딩
- 오준석의 생존코딩
- 생존코딩
- 모두의 연구소 # 오준석의생존코딩# 오름캠프
- 오존석의 생존코딩
- 모두의연구소
- 모두연구소
Archives
- Today
- Total
꾸준히 하고싶은 개발자
컴파일 런타임 본문
컴파일(Compile)
컴파일(compile)은 프로그래밍 언어로 작성된 소스 코드를 컴퓨터가 실행할 수 있는 바이너리 코드로 변환하는 과정을 말합니다.
고급 수준의 프로그래밍 언어로 작성된 코드를 기계어로 변환하는 과정이 컴파일입니다.
이러한 변환 과정을 통해 컴퓨터가 이해할 수 있는 형태로 소스 코드가 변환되어 실행될 수 있게 됩니다. 컴파일러는 이 변환 작업을 수행하고, 소스 코드를 분석하여 해당 컴퓨터 아키텍처에 맞게 최적화된 기계어 코드를 생성합니다. 이렇게 생성된 기계어 코드는 컴퓨터의 하드웨어에서 직접 실행되어 원하는 작업을 수행하게 됩니다.
빌드 vs 컴파일
- 빌드라는 변환 과정의 큰 틀안에서 동작하는 하나의 과정이 컴파일이다.
- 여러 과정이 합쳐진것이 빌드이다.
- 빌드 과정을 도와주는 도구가 Build Tool이다. (Dart의 run)
- 런을 실행하여 결과를 보여지는 화면에서 이때 Build Tool에 의해 모든 빌드과정이 자동으로 실행된다.
- 컴파일은 주로 고급 수준의 프로그래밍 언어로 작성된 소스 코드를 저급 수준의 기계어로 변환하는 과정을 의미합니다.
- 컴파일러는 소스 코드를 분석하고 그에 따라 적절한 목적 코드를 생성합니다.
컴파일 타임과 런타임
- 컴파일 타임: 컴파일을 진행하는 일련의 과정
- 런타임: 컴파일 과정을 마친 프로그램이 실행되고 있는 환경 또는 동작되는 동안의 시간
컴파일 에러
- 프로그램이 실행되기 전 발견되는 에러이다.
- 컴파일링되는 과정에서 발생하는 에러로 문제를 일으킨 소스코드라인을 지적해준다.
타입 에러
선언 되지 않는 타입 에러
런타임 에러
- 프로그램이 실행되는 도중 발생하는 에러이다.
- 코드가 실행될 때 발견되는데, 논리적 오류나 예상치 못한 상황에 발생한다.
range (범위초과에러)
예외처리
네트워크 연결
참고) JIT 컴파일, AOT 컴파일
JIT 컴파일: 개발할 때
AOT 컴파일: 배포할때
JIT 컴파일 (just-in-time)
- 소프트웨어를 효율적으로 개발하려면 코드의 변경된 사항을 화면에 반영해보고 수정하는 반복적인 과정이 빠른 사이클로 진행되어야 한다.
- 코드의 변경된 사항을 처음부터 다시 컴파일할 필요 없이 즉시 화면에 변경 사항을 반영할 수 있는 핫 리로딩(hot reload) 기능을 제공한다
AOT 컴파일 (ahead-of-time compile)
- 배포할 때는 미리 컴파일이 돼 있어야 더욱 리소스를 효율적으로 사용할 수 있다.
- 그래서 배포 시에는 AOT 컴파일 방식을 사용해서 컴파일 하는데, ARM64나 x64 기계어로 다트 언어가 직접 컴파일이 되어서 매우 효율적인 실행이 가능하다!
'Flutter' 카테고리의 다른 글
동기 비동기 (0) | 2024.05.06 |
---|---|
Dart에서 private 변수를 쓰는 이유 (0) | 2024.05.02 |
const and final (0) | 2024.05.01 |
핫 리로드와 핫 리스타트 차이 (0) | 2024.04.29 |
패키지 라이브러리 플로그인 (0) | 2024.04.26 |