Flutter/Dart 9

[DART] 비동기 프로그래밍(Future) 알아보기

Dart는 비동기 프로그래밍을 지원하며, 이를 통해 프로그램의 흐름을 중단하지 않고 작업을 처리할 수 있습니다. 이번 포스팅에서는 Dart의 비동기 프로그래밍 개념과 Future 타입, 그리고 이를 활용한 실습 코드를 살펴보겠습니다. 💡 학습 목표1. Dart 비동기 프로그래밍의 개념 이해하기2. Future 타입 알아보기3. Future.delayed 함수와 함께 Future 타입 활용해 보기 1. Dart 비동기 프로그래밍의 개념동기 프로그래밍모든 코드가 순차적으로 실행됩니다.하나의 작업이 끝나야만 다음 작업이 실행됩니다.예: 파일 읽기 작업이 끝난 뒤에야 다음 코드가 실행.비동기 프로그래밍코드가 동시다발적으로 실행됩니다.작업의 실행 순서가 보장되지 않습니다.Dart 비동기 프로그래밍은 작업 완료를..

Flutter/Dart 2025.01.15

[DART] dart의 추상 클래스

객체지향 프로그래밍(OOP)에서 추상 클래스는 특정 동작이나 속성을 강제하기 위한 강력한 도구입니다. Dart에서도 추상 클래스는 상속을 통해 일반화된 동작을 구체적인 구현으로 확장할 수 있는 기회를 제공합니다. 이번 포스팅에서는 Dart의 추상 클래스에 대해 알아보고, 왜 추상 클래스가 필요한지, 그리고 실전 코드에서 어떻게 활용되는지를 살펴보겠습니다. 1. 추상 클래스란?추상 클래스(Abstract Class)는 완전한 구현을 제공하지 않는 클래스입니다.특정 동작을 서브 클래스가 반드시 구현하도록 강제할 수 있습니다.인스턴스화 불가: 추상 클래스는 직접 객체를 생성할 수 없습니다.추상 메서드: 메서드 본체가 없는, 반드시 구현해야 하는 메서드를 포함할 수 있습니다.상속 필수: 추상 클래스는 다른 클래..

Flutter/Dart 2025.01.07

[DART] OOP 연관관계와 Mixin

객체지향 프로그래밍(OOP)의 중요한 개념 중 하나는 연관관계(Association)입니다. 연관관계는 객체 간의 관계를 정의하며, 특히 객체들의 생명주기와 소유권에 따라 구분됩니다. 이 글에서는 연관관계의 두 가지 주요 형태인 컴포지션(Composition)과 집합(Aggregation) 관계를 Dart 언어를 사용하여 구현하고, 더 나아가 코드 재사용성을 높이는 Mixin에 대해 살펴보겠습니다. 1. 연관관계란?연관관계는 객체 간의 상호작용과 관계를 나타냅니다. 연관관계는 소유권과 생명주기에 따라 다음과 같이 분류됩니다.1.1. 컴포지션 관계 (Composition)강한 소유 관계부분-전체 관계에서 **전체(Whole)**와 **부분(Part)**의 생명주기가 밀접하게 연관되어 있습니다.전체 객체가 ..

Flutter/Dart 2025.01.07

[DART] 상속(Inheritance)이란 무엇인가요?

상속(Inheritance)은 객체 지향 프로그래밍(OOP)의 핵심 개념 중 하나로, 부모 클래스가 가진 속성(상태)과 메서드(행위)를 자식 클래스가 물려받는 것을 의미합니다. 이를 통해 코드 재사용성을 높이고, 계층적인 구조를 통해 클래스 간의 관계를 명확히 표현할 수 있습니다.하지만 단순히 "물려받는 것" 이상의 의미를 가지며, 다형성(Polymorphism)이 성립할 때 진정으로 올바른 상속이라 할 수 있습니다.  다형성이란?"하나의 형태가 다양한 형태로 동작하는 것" 상속 관계에서 다형성이란, 자식 클래스의 객체가 부모 클래스의 형태로 사용될 수 있는 것을 뜻합니다. 예를 들어, 자식 클래스가 부모 클래스의 타입으로 묶여 있을 때도 부모 클래스에서 정의된 행위를 동일하게 수행하거나, 자식 클래스에..

Flutter/Dart 2025.01.06

[DART] Sound Null Safety in dart

ㅇㅇ널 세이프티(Null Safety)는 개발자가 널 에러를 피할 수 있도록 도와주는 다트 프로그래밍 언어의 기능입니다. 이 기능은 사운드 널 세이프티 인 다트(Sound Null Safety in dart)라고 불리며, 이를 통해 개발자는 코드 작성 시점에 널 에러를 잡을 수 있습니다.  Sound Null Safety in dart 이란 (Sound Type System) 런타임 중에 null 포인터 예외를 방지하기 위해 Dart 컴파일러가 코드를 분석하고 컴파일할 때 타입 시스템에서 엄격한 규칙을 적용하는 것을 의미합니다.정리하면, Dart 컴파일러가 코드를 분석하고, null이 될 수 있는 타입과 null이 될 수 없는 타입을 분명히 구분해 주기 때문에, 우리가 실수로 null을 넣거나 반환하게 ..

Flutter/Dart 2025.01.06

[DART] 클래스와 인스턴스

프로그래밍에서 클래스와 인스턴스는 객체 지향 프로그래밍(OOP)의 가장 기본적인 개념입니다.이번 포스팅에서는 클래스와 인스턴스의 정의, 객체 지향 프로그래밍의 개념, 그리고 Dart에서 이를 활용하는 방법에 대해 알아보겠습니다. 객체 지향 프로그래밍(OOP)이란?객체와 객체간에 관계를 형성하고, 그 상호작용을 통해애플리케이션을 설계, 구현하는 프로그래밍 패러다임 중 하나 입니다.OOP의 주요 목적은 복잡한 문제를 더 작은 객체로 나누어 해결하는 데 있습니다.각각의 객체는 자신의 역할에 충실하며, 서로 협력해 문제를 해결합니다. 더보기OOP의 4가지 주요 특징캡슐화: 데이터를 숨기고, 필요한 메서드만 외부에 제공.상속: 기존 클래스를 기반으로 새로운 클래스를 정의.다형성: 동일한 메서드 이름이 다양한 동작..

Flutter/Dart 2025.01.03

[DART] 익명함수와 화살표함수

프로그래밍에서 함수는 작업을 캡슐화하고 재사용할 수 있도록 도와주는 중요한 도구입니다.Dart에서는 익명 함수와 화살표 함수(람다 표현식)를 사용하여 더 간결하고 유연한 코드를 작성할 수 있습니다. 이번 글에서는 익명 함수와 화살표 함수의 개념과 활용 예제를 알아보겠습니다. 1. 익명함수 (Anonymous Function)익명 함수는 이름이 없는 함수로, 특정 작업을 수행하기 위해 임시로 정의되는 함수입니다. Dart에서 익명 함수는 변수에 할당하거나, 다른 함수의 인자로 넘길 때 유용하게 사용됩니다. 아래에 익명 함수의 문법 모양을 보여드릴게요.(매개변수){ // 수행 구문 }💻 실습하기// 익명 함수void main() { // 1단계 - 이름이 없는 함수(선언을 하더라도 외부에서 사용할 방법이..

Flutter/Dart 2025.01.03

[DART] 기본 연산자

1. 산술 연산자 (Arithmetic Operators)Dart에서 산술 연산자는 숫자 값을 계산할 때 사용합니다. 기본적인 덧셈, 뺄셈, 곱셈, 나눗셈 외에도 Dart만의 독특한 나머지 연산자와 정수 나눗셈 연산자가 있습니다.연산자기능예시결과+더하기3 + 25-빼기3 - 21*곱하기3 * 26/나누기 (결과는 double)3 / 21.5%나머지3 % 21~/정수 나누기(몫만 반환)5 ~/ 22// 산술 연산자void main() { // 더하기 print('3 + 2 = ${3 + 2}'); print('3 - 2 = ${3 - 2}'); print('3 * 2 = ${3 * 2}'); print('3 / 2 = ${3 / 2}'); // 나머지 연산자 print('3 % 2 = ${3 ..

Flutter/Dart 2025.01.03

[DART] Dart 기본 문법 익히기

안녕하세요. 이번 포스팅에서는 Google에서 개발한 프로그래밍 언어 Dart의 기본 문법을 소개해 드리려고 합니다.Dart는 Flutter를 활용한 앱 개발에서 주로 사용되며, 간결한 문법과 객체지향 프로그래밍 지원으로 초보자부터 숙련자까지 모두에게 사랑받는 언어입니다.그럼, Dart의 세계로 들어가 보겠습니다! 🚀  1. Dart의 시작 : main() 함수void main() { print("Hello, Dart!"); // 콘솔에 출력}Dart 코드의 실행은 항상 main() 함수에서 시작됩니다. 2. 변수와 데이터 타입변수란?값을 저장할 수 있는 메모리 공간즉 값을 저장해두고 이후 재사용하거나 변경할 수 있도록 메모리 공간을 이름으로 할당한 개념데이터 타입이란?메모리 공간에 들어간 값의 형태..

Flutter/Dart 2025.01.03