소소한 일상과 잡다한 정보
반응형

IT/Dart 16

Dart_14일차 (PostgreSQL 버전): Dart에서 PostgreSQL 연동 및 데이터 CRUD

이번에는  PostgreSQL 기준으로 DB 연동 부분을 진행해보자.( 원래는 MSSQL 부분을 진행하려고 했지만, MAC에서는 제한이 있기 때문에 우선 Dart 코드상으로 테스트를 위해서 포스트그레SQL로 진행해보겠다.. )PostgreSQL 연동을 위해 postgres 패키지를 사용. ✔ 준비 사항PostgreSQL 설치 완료됨test_db 데이터베이스 생성users 테이블 생성:CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(50), email VARCHAR(100));✅ 1. postgres 패키지 설치📌 pubspec.yaml에 다음 내용 추가:dependencies: postgres: ^2.6.3📌 터미널에서 설치:dart pub..

IT/Dart 2025.03.31

Dart_13일차 : Isolate (멀티스레드 프로그래밍)

📌 Dart 17일차: Isolate (멀티스레드 프로그래밍)Dart에서 Isolate는 멀티스레드 프로그래밍을 구현하는 방법이다.Isolate 개념 및 사용법기본 Isolate 생성 및 실행 ( spawn )Isolate 간 데이터 통신 ( SendPort, ReceivePort )Isolate 활용 예제 ( 비동기 연산 처리 )1. Isolate란? (멀티스레드 개념) Dart는 기본적으로 싱글 스레드(single-threaded) 언어. 즉, 한 번에 하나의 작업만 실행할 수 있다. 하지만, Isolate를 사용하면 여러 개의 작업을 병렬로 실행할 수 있음! 📌 싱글 스레드 vs Isolate (멀티스레드) 비교특징싱글 스레드 (Future, async-await)Isolate (멀티스레드)실행..

IT/Dart 2025.03.17

Dart_12일차 : HTTP 요청 및 API 연동

오늘은 Dart에서 HTTP 요청을 보내고 데이터를 처리하는 방법을 진행해보자.Dart에서 HTTP 요청 보내기 ( http 패키지 사용)GET & POST 요청 처리JSON 데이터 변환 ( jsonDecode )비동기 네트워크 요청 ( Future , async-await )1. http 패키지 설치 ( Dart 프로젝트 )  Dart에서 HTTP 요청을 보내려면 http 패키지를 추가해야 한다. ✔️  pubspec.yaml 에 http 패키지 추가 dependencies: http: ^0.13.6 # 또는 최신 버전 사용 ✔️ 패키지 설치//intellij의 하단에 terminal 선택 후dart pub get//또는 Flutter 프로젝트 에서는 flutter pub get 진행패키지가 정상적..

IT/Dart 2025.03.12

Dart 번외 : IDE 선택하기 + 설치

11일차 까지는 Dart만 설치해서 notepad로 학습을 진행했고, 앞으로는 http 요청 및 API 연동, 그리고 각 패키지들을 활용해서 조금더 깊이 Dart를 알아보기 위해서 IDE를 설치해서 진행을 해보자.  우선 Dart를 하는 이유는 flutter 를 개발하기 위해서이고, 보통 대부분의 사람들이 VSCode / Android Studio / intelli J 3개 중 하나의 IDE를 선택해서 진행한다. 📌 VSCode vs IntelliJ IDEA vs Android Studio 비교 ( Flutter 개발 기준 )VSCode, IntelliJ IDEA, Android Studio 모두 Flutter 개발을 지원하지만 각기 다른 장점과 단점이 있다.어떤 걸 선택할지 결정할 수 있도록 각 ID..

IT/Dart 2025.03.11

Dart_11일차 : 파일 및 디렉터리 관리 (File & Directory Handling)

이번에는 Dart에서 파일과 디렉터리를 관리하는 방법을 확인해보자.디렉터리 생성 및 삭제 (Directory)디렉터리 내 파일 및 폴더 리스트 출력파일 복사, 이동, 삭제 (copy(), rename(), delete())비동기(Async) 방식으로 안전하게 파일 및 폴더 관리1. 디렉터리 생성 및 삭제 ( Directory )  Dart의 dart:io 라이브러리를 사용하면 디렉터리를 생성하거나 삭제할 수 있다. ✔️ 디렉터리 생성 ( create() ) import 'dart:io';void main() async { Directory dir = Directory('test_directory'); if (!await dir.exists()) { await dir.create(); pri..

IT/Dart 2025.03.10

Dart_10일차: 파일 입출력 (File I/O) & 스트림 (Stream) 활용

이번에는 저번에 맛보기로 진행했던 파일 입출력(File I/O)과 스트림(Stream)을 확인보자.파일을 읽고( readAsString() ), 쓰고( writeAsString() ) 수정하는 방법스트림( Stream )을 사용하여 대용량 파일을 효율적으로 처리하는 방법1. 파일 쓰기 ( writeAsString() , writeAsBytes() )  Dart에서는 dart:io 라이브러리를 사용하여 파일을 생성하고 데이터를 저장할 수 있다. ✔️ 문자열을 파일에 저장 ( writeAsString() ) import 'dart:io';void main() async { File file = File('test.txt'); // 파일 객체 생성 await file.writeAsString('Hello,..

IT/Dart 2025.03.09

Dart_9일차 : 예외 처리 (Exception Handling) & Future Error Handling

이번에는 Dart의 예외 처리(Exception Handling), 비동기 코드(Future)에서 에러를 다루는 방법을 진행해보자 1. 예외 처리 기본 ( try-catch-finally ) Dart에서는 프로그램 실행 중 예상치 못한 오류(Exception)가 발생할 수 있다. 이때 try-catch-finally를 사용하면 에러를 잡아서 정상적으로 프로그램을 실행할 수 있음! ✔️ 기본 예외 처리 void main() { try { int result = 10 ~/ 0; // 0으로 나누기 → 예외 발생 print("결과: $result"); } catch (e) { print("⚠️ 예외 발생: $e"); } finally { print("✅ 예외 여부와 상관없이 실행되는..

IT/Dart 2025.03.07

Dart_8일차 : 클래스 심화 (생성자, Getter/Setter, 연산자 오버로딩)

이번에는 Dart의 클래스 개념을 더 깊이 있게 이해하는 시간을 가져보자.생성자(Constructor) 활용법Getter/Setter를 통한 캡슐화연산자 오버로딩 (Operator Overloading)위 사항을 좀 더 공부를 해보면 객체 지향 프로그래밍을 더 강력하게 활용할 수 있을 것이다.   1. 생성자 (Constructor) 클래스의 생성자는 객체가 생성될 때 자동으로 실행되는 함수다.  Dart에서는 기본 생성자 외에도 여러 가지 생성자를 활용할 수 있다. ✔️ 기본 생성자class Car { String brand; int year; // 기본 생성자 Car(this.brand, this.year); void display() { print("🚗 브랜드: $brand, 출시 ..

IT/Dart 2025.03.06

Dart_7일차 : 파일 입출력 & JSON 데이터 처리

이번에는 파일 입출력 (File I/O)과 JSON 데이터 처리를 확인해보자. 이제 파일을 읽고 쓰는 법, 그리고 JSON 데이터를 다루는 법을 익혀서 실제 애플리케이션 개발에 활용할 수 있도록 하자. JSON 처리는 웹 API 활용에 중요한 부분이니 내용을 정확히 알고 가는 것이 좋을 것 같다.   1. 파일 입출력 (File I/O)  Dart에서는 dart:io 라이브러리를 사용해서 파일을 읽고 쓸 수 있다. ✔️ 파일에 문자열 쓰기 (writeAsString)import 'dart:io';void main() async { File file = File('test.txt'); // 파일 객체 생성 await file.writeAsString('안녕하세요, Dart 파일 입출력!'); // 파일..

IT/Dart 2025.03.05

Dart_6일차 : 고급 Stream 활용 (listen(), StreamController, Broadcast Stream)

이번에는 Stream을 더 깊이 있게 활용하는 방법을 확인해보자. 특히 listen(), StreamController, Broadcast Stream을 사용할 수 있게 되면 실시간 데이터 처리에 더 강력한 기능을 사용할 수 있다.1. Stream의 기본 동작 복습 (await for) ✔️ await for를 사용한 기본 StreamStream countStream(int maxCount) async* { for (int i = 1; i yield를 사용해 값을 하나씩 방출await for을 사용해 Stream을 반복문처럼 활용 2.  listen()을 사용한 Stream 구독 await for 없이 Stream을 구독하고 데이터가 올 때마다 실행하는 방법이 listen()이다. ✔️ listen()..

IT/Dart 2025.03.04

Dart_5일차 : 비동기 프로그래밍 (Future, async/await, Stream)

Dart의 비동기 프로그래밍에 대해 진행해볼 예정이다. Future, async/await, Stream을 활용하면 네트워크 요청, 파일 읽기, 데이터베이스 처리 같은 시간이 오래 걸리는 작업을 효율적으로 처리할 수 있다.1. Future ( 미래 값 ) Future는 비동기 작업의 결과를 담는 객체. 예를 들어, 데이터를 다운로드하는 작업이 끝나면 결과를 반환한다. Future는 비동기적으로 Type 값을 반환 / Future, Future 등 다양한 타입도 가능 await를 사용하면 Future의 결과를 기다릴 수 있음 ✔️ 기본 Future 예제Future fetchData() { return Future.delayed(Duration(seconds: 2), () => "📦 데이터 로드 완료!"..

IT/Dart 2025.02.21

Dart_4일차 : 클래스(Class)와 객체(Object) 기초

1. 클래스 ( Class ) 클래스는 객체(Object)를 만들기 위한 설계도다. 객체는 클래스 인스턴스(Instance)로, 실제로 생성된 데이터 덩어리라고 보면 된다. ✔️ 기본 클래스 만들기 Car 클래스를 새성하고, brand, speed 속성(변수)를 추가 accelerate() 메서드로 속도 증가 , 객체 생성 후 메서드 호출class Car { //클래스 생성 String brand = "BMW"; int speed = 0; void accelerate() { //메서드 생성 speed += 10; print("$brand의 속도: $speed km/h"); }}void main() { Car myCar = Car(); // 객체 생성 myCar.accelerate()..

IT/Dart 2025.02.20

Dart_3일차 : 컬렉션(List, Set, Map), 예외처리

1. 리스트 ( List )  Dart에서 List는 배열과 비슷한 개념으로 순서가 있는 데이터 모음이다. ✔️ 리스트 생성 및 사용 리스트는 add()로 요소를 추가하고, remove()로 삭제할 수 있음.void main() { List fruits = ["사과", "바나나", "포도"]; print(fruits); // 전체 리스트 출력 print(fruits[0]); // 첫 번째 요소 출력 (사과) fruits.add("오렌지"); // 요소 추가 print(fruits); // ["사과", "바나나", "포도", "오렌지"] fruits.remove("바나나"); // 특정 요소 삭제 print(fruits); // ["사과", "포도", "오렌지"] print(fruits.le..

IT/Dart 2025.02.19

Dart_2일차 : 제어문과 함수 심화 학습

1. 조건문 ( if-else, switch ) 심화 ✔️ if-else 문 심화 if-else를 활용하여 다양한 조건에 따른 결과 출력void main() { int score = 80; if (score >= 90) { print("A 학점"); } else if (score >= 80) { print("B 학점"); } else if (score >= 70) { print("C 학점"); } else { print("F 학점"); }} ✔️ switch 문 심화 switch문은 여러 개의 if-else를 간결하게 표현할 때 유용하다.void main() { String grade = "C"; switch (grade) { case "A": print..

IT/Dart 2025.02.17

Dart_1일차 : 기본 문법

1. Dart 개발환경 설정Dart 코드를 실행하는 방법은 여러 가지가 있다. - Dart 설치: 공식 사이트(https://dart.dev/get-dart)에서 다운로드 가능- 실행 방법:   1. VS Code + Dart 플러그인 사용  2. DartPad(웹에서 실행 / dartpad.dev)   3. 터미널에서 실행 (dart run 파일명.dart) 우선적으로 DartPad를 이용해서 공부를 하다가 콘솔로부터 값을 입력 받아야 하는 부분은 DartPad에서 Support 해주지 않기 때문에 마무리 예제 부분에서는 Dart를 설치하였다.2. Dart 기본 문법 ✔️ 변수 및 데이터 타입 Dart는 정적 타입의 언어이며, 변수 타입을 명시적으로 지정할 수 있다.void main() { int n..

IT/Dart 2025.02.16

Dart를 공부하게 된 이유 + Dart 특징

0. 풀스택 도전 현재 웹 개발자이며, 회사 내부에서 전산업을 담당하는 사람으로써.. 풀스택을 한번 도전해봤으면 좋겠다는 생각이 들었다. 1. Dart 언어란? Dart는 Google이 개발한 오픈소스 프로그래밍 언어로, 주로 Flutter 프레임워크에서 사용된다. 웹, 모바일, 데스크톱 애플리케이션 개발이 가능하며, 빠른 실행 속도와 비동기 프로그래밍에 최적화되어 있다. 2. 왜 Dart를 선택했는가? ✔️ 뛰어난 성능 Dart는 AOT(미리 컴파일) 방식으로 동작하여 네이티브 코드로 변환된다. Flutter는 자체 렌더링 엔진(Skia)을 사용하여 플랫폼과 관계없이 일관된 UI와 빠른 렌더링을 제공한다. React Native는 JavaScript와 네이티브 간 브릿지를 사용하기 때문에 성능이 Flu..

IT/Dart 2025.02.14
반응형