Google에서 개발한 크로스 플랫폼 개발 프레임워크
: iOS와 Android, 모바일과 데스크톱, 웹까지 모두 지원
*iOS 개발도 할 경우 Mac필요.
배우기 쉽다, 생산성 높, 다양한 디스플레이에 맞는 레이아웃 지원, native에 가까운 성능, 오픈소스, 심플하고 예쁜 디자인
저급언어: 기계어로 이루어진 0과 1 혹은 어셈블리어
고급언어: compile 필요한 대부분의 프로그래밍 언어
2008년 개발. Javascript에서 영감을 받아 개발. 유사성 높.
객체지향. 두 가지 컴파일러 보유(JIT, AOT)
JIT Compiler(Just In Time)
코드 실행 시점에 컴파일 수행. 빠른 개발과 디버깅
Hot-Reload/Hot-Restart 구현시 활용
AOT Compiler (Ahead of Time)
사전에 미리 컴파일 수행하여 높은 실행속도.
코드 내부 보호. 컴파일 후 배포 가능한 바이너리 파일 생성
강력한 타입 시스템 갖춤
강력한 타입 시스템이란 by Google Bard :
프로그램에서 사용하는 변수, 함수, 연산 등의 타입을 정확하게 정의하고, 서로 맞는 타입만 사용하도록 엄격하게 관리하는 것.강력한 타입 시스템의 장점:
- 코드 오류를 줄여줘:
레고 블록처럼 서로 맞는 타입만 사용하도록 하기 때문에, 코드를 작성하면서 실수를 할 가능성이 줄어들고, 프로그램이 더 안정적으로 작동하게 돼.- 코드를 더 안전하게 만들어줘:
잘못된 타입의 값이 변수에 들어가는 것을 막아서, 메모리 오류나 보안 취약점을 방지하는 데 도움이 돼.- 코드를 더 쉽게 이해하고 유지 관리할 수 있게 만들어줘:
각 변수, 함수, 연산 등이 어떤 역할을 하는지 명확하게 알 수 있기 때문에, 코드를 훨씬 더 쉽게 이해하고 관리할 수 있게 돼.- 코드 실행 속도를 높여줄 수 있어:
컴파일러가 코드를 더 효율적으로 최적화할 수 있도록 도와줘서, 프로그램이 더 빠르게 실행될 수 있게 돼.
사용 가능 프로그램: DartPad, Android Studio, VS Code
변수: 특정한 데이터를 담아 두는 그릇. 타입을 함께 선언
타입: 기본형인 bool(참, 거짓), int(정수), double(실수), String(문자열), Null(값없음), 자료형인 List, Set, Map(파이썬의 딕셔너리 비슷), 확장형인 Object, Enum, Future, Stream등이 있음.
상수: const(compile 시점에 상수 처리), final(프로그램 진행 중 상수 처리)