Mobile/Dart6 Dart에서 비동기 작업을 처리하는 방법 - 1 (Future) 대표적인 싱글 스레드 언어인 JavaScript는 비동기 작업을 처리하기 위해 Web API와 Event Loop를 활용합니다. JavaScript 엔진 내부에서 직접 비동기 작업을 처리하는 것이 아니라, 작업을 Web API에 위임한 후 **이벤트 루프(Event Loop)**를 통해 결과를 받아와 실행하는 방식이죠.Dart도 이와 유사한 방식으로 비동기 작업을 처리합니다. Dart 내부에서 모든 작업을 실행하는 것이 아니라, Dart VM과 Event Loop를 활용하여 비동기 작업을 관리합니다.공식 문서에서도 Event Queue 에 대해 설명하고 있으며, Dart의 이벤트 루프 동작 방식에 대한 자세한 내용은 아래 링크에서 확인할 수 있습니다. Dart Event Loop Dart의 동시성Isol.. 2025. 3. 15. [Dart] Equatable 뽀개기 이전에 Swift에서는 Equatable 프로토콜을 기본으로 지원해주었는데, Dart에서는 pub으로 제공되어있습니다. 객체를 비교하는 방법에는 Equatable을 사용하는 방법도 있다는것을 소개해보겠습니다.(다른 강의에서도 많이 사용함) Equatable을 사용하는 이유?Dart에서 객체를 비교할 수 있으려면 종종 == 연산자와 hashCode를 재정의해야 합니다.이 과정은 번거롭고 지루할 뿐만 아니라, 이를 올바르게 수행하지 않으면 코드가 비효율적이거나 예상대로 동작하지 않을 수 있습니다. Equatable의 역할은?Equatable을 사용하면 == 연산자와 hashCode를 직접 오버라이드할 필요 없이 객체 비교를 간편하게 처리할 수 있습니다. 이 덕분에 보일러플레이트 코드를 많이 작성하는 데 시.. 2024. 10. 7. [Dart] Factory 생성자 이번 글에서는 Dart에서 자주 보이는 Factory Constructor에 대해 알아보겠습니다. 아마 Freezed를 사용하시는 분들은 자주 보셨을 거라고 생각합니다. 또는 다른 모델 및 위젯에도 사용 가능합니다.일반적인 생성자와 Factory Constructor의 차이점새로운 인스턴스 반환 여부:일반적인 생성자는 항상 새로운 인스턴스를 반환하지만, Factory Constructor는 반드시 새로운 인스턴스를 반환할 필요가 없습니다. 이미 생성된 인스턴스를 반환하거나 특정 조건에 따라 다른 인스턴스를 반환할 수 있습니다.하위 클래스의 인스턴스 반환 가능:Factory Constructor는 클래스의 하위 클래스 인스턴스를 반환할 수 있습니다. 이를 통해 객체 생성 시 동적으로 하위 클래스를 결정할 .. 2024. 8. 29. [Dart] 추상 클래스와 인터페이스의 차이점 이번 글에서는 추상 클래스와 인터페이스의 차이점에 대해 작성해보겠습니다. 평소에 두 가지를 사용할 때 남용되는 부분이 있어 이번 글에서 정리하고 넘어가면 좋을거 같아서 작성해봅니다. Abstract Classabstract 키워드를 사용하여 추상 클래스를 정의할 수 있습니다. 추상 클래스는 인스턴스를 생성할 수 없으며, 서브클래스에서 구현해야 하는 추상 메서드를 포함할 수 있습니다. 동물은 잘 수 있으며, 소리를 낼 수 있죠? 해당 구조를 가진 Animal 클래스를 생성해줍니다. 잘 때 내는 소리는 모두 같다고 명시하며, 소리는 다를 수도 있다는 가정하에 추상적인 메서드를 작성해줍니다. Animal 클래스를 상속받은 강아지, 개 Class를 생성해주고, 어떤 소리를 내는지는 정해두지 않았죠? 해당 내용을.. 2024. 8. 23. [Dart] Stream 뽀개기 이번 글에서는 Dart의 Stream에 대해 알아보겠습니다.우선 Stream을 다루기 전에 비동기 프로그래밍에 대해 간단히 소개하고 넘어가겠습니다.비동기 프로그래밍특정 작업이 완료될 때까지 프로그램의 실행을 중지하지 않고 다른 작업을 계속 진행할 수 있도록 하는 프로그래밍 패러다임 아래 예시를 통해 예시를 들어보겠습니다.기존에는 First, Second, Third 이렇게 3가지가 순서대로 출력되어야 합니다.하지만 위 코드에서는 1초 뒤에 Second가 출력되도록 하였는데, 이렇게 작성을 해도 코드가 중지되지 않고 콘솔에서는 1초 뒤에 Second라는 결과가 출력됩니다. 이렇게 비동기 프로그래밍을 이용하면 작업을 중지시키지 않고 다른 작업을 진행시킬 수 있습니다. 비동기 프로그래밍에 대한 소개를 마쳤으니.. 2024. 7. 31. [Dart] sealed class 뽀개기 이 글은 중고나라 기술 블로그의 글을 참고하여 작성하게 되었습니다. 우선 저 같은 경우에는 게시글의 목록을 보여주는 화면을 생성하는데, 각각의 페이지에서 다루는 게시글의 타입이 다르지만 보여주는 형태는 비슷했습니다. 하지만 타입이 다르다고 각각의 타입에 따라 위젯을 그리는 것은 비효율적이라고 생각하고 있었는데 중고나라 기술 블로그를 보고 도움이 되어서 정리해보려고 합니다. Selaed ClassDart 3.0 에 추가된 새로운 기능으로 Sealed Class 가 나왔습니다.TypeScript의 union types를 대체할 수 있는거같은데요, 같은 성질을 지니는 유형을 생성하고 해당 유형의 멤버를 생성할 수 있습니다. sealed class를 사용하면 아래의 이점을 얻을 수 있습니다.- 무분별한 클래스.. 2024. 7. 30. 이전 1 다음