카테고리 없음

본 캠프 6일 차_Dart 프로그래밍 1주차 1-6 학습 및 팀내 네트워킹

개발일지27 2025. 3. 10. 21:03

컴파일러

  • Just in Time(JLT): 프로그램 실행 중에 코드의 일부 도는 전부를 컴파일하는 컴파일러
  • Ahead of time(AOT): 프로그램 실행 전에 미리 컴파일하는 컴파일러-고성능 앱 개발

SDK( Software development kit)

: 특정 플랫폼에서 프로그램을 만들고, 테스트하고, 배포하는 과정에서 필요한 도구를 제공하는 패키지

  • 컴파일러
  • 라이브러리
  • 디버깅(오류 수정) 및 테스트 도구
  • 문서 및 샘플 코드
  • 패키지 관리자

ex) TensorFlow SDK(인공지능 툴)

 

Dart SDK: Stable/ Beta/DEV 버전으로 배포

Stable: 3개월에 한 번씩 업데이트 되는 안정적인 베포 버전(x.y.z 형태)

Beta:  1달에 한번씩 업데이트 되는 배포 버전, 새로운 기능을 Stable에 넣기 전에 미리 테스트해 보는 용도-안정적 x(x.y.z-a.b beta)

Dev: 2주일에 한번 씩 업데이트 되는 배포 버전, 검증되지 않은 기능이 일부 포함(x.y.z-a.b dev 형태)

 

# 프로그램 실핼 중에 값을 변경할 수 있는 변수

[타입] [변수 이름] = [값]; // int double String...

var [변수 이름]= [값];

 

# 프로그램 실행 중에 값을 변경할 수 없는 변수

final변수: 프로그램 실행(런 타임)시점에 초기화/ 프로그램 실행 중에 값이 결정되는 경우 ex) 현재 시간

const 변수: 컴파일 시점/ 프로그램 실행 전이든 실행 후든 상관없이 항상 값이 고정인 경우 ex) 원주율 

 

# late 변수

: 선언 후에 초기화되는 NonNullable 한 변수

   late [타입] [변수이름];

   late String name;   O

   late name;              X

   late String name = null; X

   String? name= null;   O

 

  • 변수를 선언할 당시에는 넣어줄 값을 아직 특정하기 어려운 경우

late String description;

void main() {

description = '설명입니다.';

print(description); // 설명입니다.

}

  • 초기화 비용이 높은 변수가 지금 당장 필요하지는 않은 경우

#Null

: 어떤 변수가 null 이면 ?.을 포함한 표현식 전체가 null이 됩니다.

 

String? name;
print(name?.length); // null

name = 'Bob';
print(name?.length); // 3

 

 

연산자 (Operators)

  • 산술 연산자 (+, -,  /, *, ~/, %)          //    [~/]: 나누었을 때 나오는 값의 정수 부분만 반환  [%]: 나누었을 때 나오는 나머지
  • 비교 연산자( ==, !=, >, <, >=, <=)  
  • 타입 체크 연산자( as, is, is!)  //[as]: 타입 변환, 확실하게 행 변환 가능할 때만, [is]: 특정 타입을 가지고 있는지 판별, is! 와 반대
  • 대입 연산자(=, ??=, +=, -=, *=, /=, %=) // [??=]: ??= 기분으로 왼쪽에 있는 것이 null일 때 오른쪽 값을 대입.
  • 논리 연산자(!, ||, &&)  // [!]: !기준으로 오른족에 있는 판별식을 반전, [||]: ||기준 왼쪽 오른쪽 중 하나라도 창이면 참 아니면 거짓, [&&]: &&기준으로 왼쪽 과 오른쪽 모두 참이면 참 하나라도 거짓이면 거짓 반환.

조건문

  • if- else if- else- else

int a = 3;
if (a < 0) {
print('a 는 음수입니다.');
} else if (a == 0) {
print('a 는 0 입니다.');
} else {
print('a 는 양수입니다.'); // a 는 양수입니다.
}

 

  • Switch

void main() {
  int age = 10;

  switch (age) {
    case 10:
      print('10살입니다');

      break;

    case 9:
      print('9살 입니다.');

      break;

    default:
      print('유효하지 않습니다.');
  }
}

 

출력: 10살 입니다.

 

  • 조건 표현식

(조건문) ? (표현식 1) : (표현식2) - 조건문이 참이면 표현식1을, 조건문이 거짓이면 표현식2를 따릅니다

표현식1 ?? 표현식2   - 표현식1이 null값을 갖지 않으묜 표현식1을, 표현식1이 null값을 가지면 표현식 2를 따릅니다.

 

반복문

  • for
  • while
  • do while
  • for in

for in: 초기화 식에 있는 변수를 사용하지 않으면서 collection 요소를 순회할 때 사용

 

List<String> fruits = ['사과', '바나나', '귤'];

for (var fruit in fruits) {
  print(fruit);
}
/*
사과
바나나

*/

 

 

 

# break : 반복문이 실행되고 있던 중에 이제 그만 실행했으면 할 때

 

int count = 1;

while (count <= 6) {
  count += 1;
  if (count == 5) {
    print('count = $count'); // count = 5
    break;
  }
}

 

 

 

 

# continue: 반복문 실행 중에 특정 조건인 경우에는 건너뛰고 싶다 ! 할 때

 

final fruits = ['사과', '파인애플', '오렌지', '귤', '복숭아'];
for (final fruit in fruits) {
if (fruit == '파인애플') {
continue;
}
print('맛있는 $fruit');
}
/*
맛있는 사과
맛있는 오렌지
맛있는 귤
맛있는 복숭아
*/

 

 

#주 석

/// 주석: []를 주석에 포함할 수 있는데 코드의 특정 요소 (ex. 매개변수, 클래스, 메소드, 변수) 를 참조한 문서를 만들고 싶을 때 주석 안에 해당 요소를 []사이에 넣으면 됩니다.