본문 바로가기

Programming/Dart & Flutter

Dart 7일 차 - Language Tour (7/7)

공부 좀 해야지 라는 생각에 하루에 10분이라도 보면서 기록하고 있었다.

오늘이 벌써 1주일이 되는 날이다.

조금씩 봐서 아직 Language Tour 도 못 끝내기는 했지만 많은 부분을 본 것 같다.

Isolates

https://dart.dev/guides/language/language-tour#isolates

 

대부분의 모바일, 컴퓨터는 멀티 코어 CPU이다.

멀티 코어의 장점을 활용하기 위해 개발자들은 전통적으로 동시적으로 실행되는 공유 메모리 스레드를 사용한다.

그러나 공유 상태 동시성은 에러가 발생하기 쉽고 코드가 복잡해진다.

 

Dart 는 스레드 대신 isolates 안에서 코드를 실행한다.

개별 isolate 는 전용 메모리 힙을 가지고 있다. 다른 isolate로부터 isolate 상태 접근을 할 수 없도록 한다.

 

isolate 는 생소한 개념이다. 일단 스레드는 아닌 것 같지만 비동기 처리를 하는 동작은 맞는 것 같다.

이건 나중에 더 알아봐야겠다.

Typedefs

https://dart.dev/guides/language/language-tour#typedefs

 

Dart 에서 문자열, 숫자가 객체인 것과 같이 함수도 객체이다.

typedef/function-type ailas 는 함수 타입에 이름을 지정할 수 있다.

typedef 는 함수 타입이 변수에 대입될 때도 정보가 유지된다.

 

typedef 를 사용하지 않고 변수로 대입하는 경우 함수 인터페이스에 대한 정보를 잃게 된다. 그래서 저장도니 변수가 어떤 타입인지 정확히 알 수 없다. typedef 를 사용하면 그 정보가 그대로 유지되므로 하나의 타입과 같이 사용할 수 있다.

Metadata

https://dart.dev/guides/language/language-tour#metadata

 

코드에 관한 추가적인 정보를 주기 위해 metadata 를 이용한다.

metadata 어노테이션은 @ 문자로 시작한다.

 

두 어노테이션이 있다. @deprecated, @override

 

어노테이션을 직접 만들 수 있다.

reflection 을 사용하여 런타임에서 metadata 를 읽을 수 있다.

Comments

1일 차에 미리 확인했다.

2020/07/20 - [Programming/Dart] - Dart 1일 차 - Language Tour

 

 

어라... 끝났다?!

 

 

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음