Dev 326

[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

Flutter 빌드 오류

Case - 수강생Android Emulator 에 앱을 실행하려니 오류가 발생 > Could not create service of type ChecksumService using BuildSessionScopeServices.createChecksumService(). > Unexpected lock protocol found in lock file. Expected 3, found 0. .gradle 폴더 파일을 아예 날려버리고 새롭게 AndroidStudio 를 실행해서 Gradle 설정 및 파일들을 새로 받아내서 처리했습니다.https://stackoverflow.com/a/39270010/3897810

Dev/Flutter 2025.06.16