๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ฑ Mobile/ํ”Œ๋Ÿฌํ„ฐ ์•ฑํ”„๋กœ๊ทธ๋ž˜๋ฐ

ํ”Œ๋Ÿฌํ„ฐ ์•ฑํ”„๋กœ๊ทธ๋ž˜๋ฐ Day1

ํ”Œ๋Ÿฌํ„ฐ ์•ฑํ”„๋กœ๊ทธ๋ž˜๋ฐ Day1

 

ํ”Œ๋Ÿฌํ„ฐ๋Š” ๋‹คํŠธ(Dart)๋ผ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ”Œ๋Ÿฌํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹คํŠธ๋ผ๋Š” ์ƒˆ๋กœ์šด ์–ธ์–ด๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค. 

 

์‹ค์Šต์„ ํ•˜๋ฉด์„œ ๋‹คํŠธ๋ฅผ ์ดํ•ด ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. 

 

 

 

๋‹คํŠธ์™€ ์Šค๋ ˆ๋“œ

๋‹คํŠธ๋Š” ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋กœ ๋™์ž‘ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค.

await๋ผ๋Š” ํ‚ค์›Œ๋“œ๋Š” ์ฒ˜๋ฆฌ๋ฅผ ์™„๋ฃŒํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•  ๋•Œ๊นŒ์ง€ ์ดํ›„ ์ฝ”๋“œ์˜ ์ฒ˜๋ฆฌ๋ฅผ ๋ฉˆ์ถ˜๋‹ค.

๋”ฐ๋ผ์„œ, await๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ž˜ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

void main(){
  printOne();
  printTwo();
  printThree();
}

void printOne() {
  print('One');
}
void printThree() {
  print('Three');
}

void printTwo() async {
  Future.delayed(Duration(seconds : 1), () {
    print('Future!!');
  });
  print('Two');
}

Future.delayed()ํ•จ์ˆ˜๋Š” Duration๊ธฐ๊ฐ„ ๋™์•ˆ ๊ธฐ๋‹ค๋ฆฐ ํ›„์— ์ง„ํ–‰ํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. 

์œ„์˜ ์ฝ”๋“œ๋Š” 1์ดˆ ํ›„์— ์ง„ํ–‰ํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. 

 

์ฝ”๋“œ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

 

'printTwo()'ํ•จ์ˆ˜๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•œ๋‹ค. 

void printTwo() async {
  await Future.delayed(Duration(seconds : 2), () {
    print('Future!!');
  });
  print('Two');
}

 

์ฒ˜์Œ๊ณผ ๋‹ค๋ฅธ ์ ์€ await ํ‚ค์›Œ๋“œ๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. 

์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

์ด์ฒ˜๋Ÿผ await ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด await๊ฐ€ ์†ํ•œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ์ชฝ์—์„œ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ 

๊ธฐ๋‹ค๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ž˜ ๊ณ ๋ คํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. 

 

 

 

JSON์—์„œ ๋ฐ์ดํ„ฐ ์ฃผ๊ณ  ๋ฐ›๊ธฐ

์•ฑ์„ ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋ฉด ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์ด ์ฃผ์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋œ๋‹ค. 

๋Œ€๋ถ€๋ถ„ ์•ฑ์€ ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉฐ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ณ  ํ™”๋ฉด์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ํ˜•์‹์ด JSON์ด๋‹ค. 

 

JSON์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์†Œ์Šค์— convert๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค. 

 

 

728x90