반응형
<1-1. Dart Intro>
- 프로그램 : 컴퓨터가 이해할 수 있는 명령어의 나열
- 명령어 or 프로그래밍 언어 => 모두 합치면 프로그램
- 저급 (Low-level)
- 기계어
- 어셈블리어
- 고급 (High-level)
- C
- C++
- C#
- Kotlin
- Python
- Java
- JavaScript
- Dart
- 컴파일러
- Just In Tim (JIT) 컴파일
- 프로그램 실행 중 (런타임) 에 코드의 일부 또는 전부를 컴파일하는 기술
- 장점
- 바로 바로 컴파일하기 때문에 실행 결과를 실시간으로 확인할 수 있다 👍🏼
- 단점
- 실행 중에 계속 코드를 컴파일하니 상대적으로 느리다
- Ahead-of-Time (AOT) 컴파일
- 프로그램 실행 전에 미리 컴파일하는 기술
- 대부분의 전통적인 컴파일러 (ex. C, C++) 가 사용하는 방식
- 장점
- 한 번 컴파일 되고 나면 실행 속도가 빠르다 👍🏼
- 단점
- 실시간으로 컴파일하는 것이 아니어서 결과를 바로 확인할 수 없다 😅
- Just In Tim (JIT) 컴파일
- 저급 (Low-level)
- Dart
- Google 이 개발한 오픈 소스 프로그래밍 언어
- Flutter 프레임워크의 기반이 되는 프로그래밍 언어
- 다양한 클라이언트 (ex. Web, Mobile, Desktop) 애플리케이션 개발에 최적화된 언어
- 플랫폼
- Native
- Target
- Mobile (Android, iOS)
- Desktop (Windows, Linux, macOS)
- Target
- Web
- Target
- Web (Chrome, Firefox, Safari, Edge)
- Target
- Native
- Null Safe
- null ?
- 값이 없는 데이터를 사용해야 하는 경우 컴퓨터에게 ‘이 데이터에는 값이 없어 !’ 라고 알려주기 위해 사용하는 키워드
- Null Safe ?
- null 에 대해 안전한 상황을 만들어 준다는 뜻 !
- 데이터가 null 값을 가질 수 있도록 설정하지 않는 한, 절대 null 값을 가질 수 없다는 뜻 !
- 컴퓨터가 싫어하건 말건 저는 null 을 쓰고 싶습니다만 ㅇㅅㅇ ?
- 그때는 타입 뒤에 ? 를 붙이면 돼요 !
- null ?
<1-2. Dart 개발 환경 구성하기 (feat. SDK)>
- SDK
- Software Development Kit
- 특정 플랫폼에서 프로그램을 만들고, 테스트하고, 배포하는 과정에서 필요한 도구를 제공하는 패키지
- 구성
- 컴파일러
- 라이브러리
- 프로그래밍할 때 자주 사용하는 코드를 미리 정의해둔 코드의 집합
- 디버깅 및 테스트 도구
- 문서 및 샘플코드
- 패키지 관리자
- 외부 라이브러리 나 패키지 를 설치하고, 관리할 수 있도록 도와주는 도구
- 종류
- Android
- iOS
- Unity
- Dart
- Flutter
- AWS
- Reactive Native
- TensorFlow
- iOS 프로젝트 구성방법
- dart create [프로젝트 이름]
- cd [프로젝트이름] - change directory
<1-3. Dart 기본 문법 알아보기>
- [타입] [변수 이름] = [값];
int age = 30;
String name = 'Bob';
bool isStudent = true; - var [변수 이름] = [값];
var name = 'Bob'; - 상수(Constant>
final [타입] [변수 이름] = [값];
final firstCurrentTime = DateTime.now(); // 타입 명시하지 않은 경우
final DateTime secondCurrentTime = DateTime.now(); // 타입 명시한 경우 - const [변수 이름] = [값];
const pi = 3.14159; // 타입 명시하지 않은 경우
const int age = 30; // 타입 명시한 경우 - 초기화 시점
- final 변수
- 프로그램 실행 (런타임) 시점
- const 변수
- 컴파일 시점
- 그래서 const 변수를 컴파일 타임 상수 라고 부르기도 해요.
- final 변수
- 용도
- final 변수
- 프로그램 실행 중에 값이 결정되는 경우
- ex. 현재 시간
- 프로그램 실행 중에 값이 결정되는 경우
- const 변수
- 프로그램 실행 전이든 실행 후든 상관없이 항상 값이 고정인 경우
- ex. 원주율 (3.14XXXX)
- 프로그램 실행 전이든 실행 후든 상관없이 항상 값이 고정인 경우
- final 변수
- late 변수
- 선언 후에 초기화되는 NonNullable 한 변수
- 변수가 사용되는 시점에 초기화 (지연 초기화) 되는 변수
- late [타입] [변수 이름];
late String name; - 변수를 선언할 당시에는 넣어줄 값을 아직 특정하기 어려운 경우
late String description; - late 변수는 null 을 허용하지 않으면서도 변수에 null 을 넣어준 것과 비슷한 역할
void main() {
description = '설명입니다.';
print(description); // 설명입니다.
}
- 데이터 타입
- 숫자형
- int : 정수
int [변수이름] = [값] ; - double : 소수
double [변수이름] = [값] ; - num : 모든 숫자 유형 (상위클래스)
num [변수이름] = [값] ;
- int : 정수
- 문자형
- String
String [변수 이름] = ‘문자’; / String [변수 이름] = “문자”;
- 식별자는 $식별자 형태로, 표현식은 ${표현식} 형태
- String
- 숫자형
반응형