전체 글 528

질문 프롬프팅

원본 질문CleanArchitecture 기반으로 만들었고 Riverpod 을 사용해서 상태관리를 하는 앱을 만들었습니다. 기본적인 Dart, Flutter 규칙에 의거해서 프로그래밍을 했는지 확인하고 수정할 부분이 있으면 알려주세요. 더불어서 CleanArchitecture 및 상태관리를 위한 Riverpod 을 잘 사용했는지도 확인해주고 수정할 부분이 있으면 알려주세요 AI로 개선된 질문앱을 검토하여 다음 사항을 확인해 주세요1. Clean Architecture 기반 구현 검토- 레이어별 분리(프레젠테이션, 도메인, 데이터)가 명확하게 이루어졌는지 확인- 의존성 방향이 도메인 → 데이터 방향으로 잘 유지되었는지 검토- 각 레이어의 책임이 명확하게 구분되었는지 확인2. Riverpod 상태 관리 검토..

Dev/Others 2025.09.05

프롬프팅을 위한 질문 개선해보기

원본 질문학생들이 Flutter 앱을 만드는데 Riverpod 을 사용하 MVVM 패턴을 제대로 이해하고 있지 않아서 단계별로 이해를 돕기 위한 예제 코드를 만들어줘 프롬프팅 전 질문 개선Flutter를 배우는 학생들을 위해 Riverpod과 MVVM 패턴을 단계별로 이해할 수 있는 간단한 예제 앱을 만들어주세요. 앱은 다음과 같은 구조로 구성되어야 합니다: 1. MVVM 패턴에 따라 Model, View, ViewModel 계층을 명확히 구분 2. Riverpod을 사용한 상태 관리 구현 3. 기본적인 CRUD 기능을 포함한 Todo 앱과 같은 간단한 예제 4. 각 단계별로 코드와 설명을 주석으로 첨부 5. View와 비즈니스 로직의 분리를 명확히 보여줄 수 있는 구조 예제 앱은 학생들이 Riverp..

Dev/Others 2025.09.03

[Algorithm] Dart로 풀어보는 역방향 연결 리스트 만들기

Reverse Linked ListGiven the head of a singly linked list, reverse the list, and return the reversed listInput: head = [1,2,3,4,5]Output: [5,4,3,2,1]Input: head = [1,2]Output: [2,1]Input: head = []Output: []Definition for singly-linked list.class ListNode { int val; ListNode? next; ListNode([this.val = 0, this.next]);} Node란 연결 리스트(Linked List)에서 데이터를 저장하는 기본 단위각 노드는 자신이 가진 데이터와 함께 다음 노..

Dev/Algorithm 2025.08.26

Flutter/Dart 와 함께 클린 아키텍쳐 학습하기

Clean Architecture 는 각 계층의 역할을 정확히 이해하면 유지보수가 쉽고 확장 가능한 앱을 만들 수 있는 설계 방법론로버트 C. 마틴이 제안한 소프트웨어 설계 원칙, 코드를 독립적인 계층으로 분리하여 각 계층이 명확한 책임을 갖도록 하는 구조 핵심 목표- 관심사의 분리 : UI, 비즈니스 로직, 데이터 처리 등 명확히 구분- 의존성 관리 : 안쪽 계층이 바깥쪽 계층에 의존하지 않도록 설계- 테스트 용이성 : 각 계층을 독립적으로 테스트 가능- 유지보수성 : 한 계층의 변경이 다른 계층에 미치는 영향 최소화 3개 주요 계층1. Presentation Layer (표현 계층)- 역할 : 사용자 인터페이스와 상호작용 처리- 구성요소 : Page, Widget, 상태관리(BLoC, Riverpo..

Dev/Flutter 2025.08.21

[Dart] List 와 Queue 의 차이 (강의자료)

ListList 는 순서가 있는 데이터 컬렉션 입니다. 그리고 인덱스를 사용해 요소에 접근해서 데이터를 사용할 수 있습니다. Dart 에서의 리스트는 크기에 제한을 두거나 혹은 제한을 두지 않는 형태로도 만들 수 있습니다. 기본적으로 List 를 생성하는 방법은 크기에 제한을 두지 않습니다.var fruits = ['apple', 'banana'];List = [1, 2, 3, 4, 5]; 위와 같은 형태로 List 를 만들게되면 요소를 추가하거나 삭제하는 등 자유롭게 할 수 있습니다. 이완 다르게 List 의 개수를 제한하게 할 수 있는 방법은 다음과 같습니다.var list = List.filled(5, 0, growable: false);var list = List.generate(5, (i) =>..

Dev/Dart 2025.07.29

[강의자료] Json 무엇이고 Dart 에서 어떻게 사용할까?

JSONJSON(JavaScript Object Notation) 은 데이터를 구조화해서 저장하고 전달히기 위한 텍스트 기반의 데이터 포맷입니다. 즉, 데이터를 구조화해서 특정 형태의 형식으로 전달합니다.사람이 읽고 쓰기 쉽고, 구조화의 예는 다음과 같습니다.{ "name": "HealthyRyu", "age": 30, "isAlive": true} 구조화를 했다는것은 정보가 어떤 의미를 가지는지 명확하게 정해져있고, key-value 형태로 정리되어 있는것을 의미합니다. 특징- 경략 텍스트 포맷- 다양한 언어에서 지원 (Dart, Kotlin, JavaScript, Python 등)- 데이터 구조가 key-value 형태로 표현- String, int, double, boolean, Null, ..

Dev/Flutter 2025.07.25

Dart 에서 Collection Map 을 알아보자

Map은 키와 값을 한쌍으로 저장하는 컬렉션 입니다.MapMapMap 특징키 값은 중복이 없어야 함키 하나에 값 하나만 연결(매핑)키(key) 타입과 값(value) 타입은 같게 혹은 다르게 설정이 가능 기본적인 Map 생성 방법은 다음과 같습니다.var mapDefault = {};var mapDynamic = {}; // Map 으로 추론됨// 명시적으로 타입을 선언한 형태var mapDefault = { "apple" : 1, "banana" : 2};// 암묵적으로 타입을 선언하지 않은 형태var mapDynamic = {"apple" : 1, "banana" : 2}; Map for 문 사용한 탐색 방법기본 MapMap scores = {'Alice': 90, 'Bob': 85, 'Charl..

Dev/Flutter 2025.06.25