flutter8 Flutter & Dart - SDK 업데이트이 후 발생한 이슈.. Flutter 개발 중 발생한 이슈 정리 및 해결 방법Flutter 프로젝트를 개발하면서 발생한 다양한 문제들과 그 해결 방법을 정리했습니다. 같은 문제를 겪는 분들에게 도움이 되길 바랍니다.1. Java 버전 관련 경고 해결문제 상황Flutter 프로젝트를 빌드하는 과정에서 다음과 같은 경고가 발생했습니다:warning: [options] source value 8 is obsolete and will be removed in a future releasewarning: [options] target value 8 is obsolete and will be removed in a future release내 프로젝트의 build.gradle에서 Java 17을 사용하도록 설정해두었음에도 불구하고, 위와.. 2025. 3. 5. Flutter & Dart - Closure 클로저 (Closure)클로저란?클로저(Closure)는 함수가 외부 스코프의 변수를 참조하여, 해당 변수의 상태를 "기억"한 채로 실행되는 함수를 말합니다. 즉, 클로저는 자신이 생성된 스코프(환경)의 상태를 캡처하고 이를 유지할 수 있는 특별한 함수입니다.Dart에서 클로저는 함수를 반환하거나, 함수 내부에서 정의된 함수가 외부 변수에 접근할 때 활용됩니다.클로저의 특징외부 변수의 참조 클로저는 자신이 선언된 외부 스코프의 변수를 "캡처"하여 유지합니다.Function makeAdder(int base) { return (int value) => base + value; // base는 외부 변수}void main() { final addFive = makeAdder(5); // base = 5.. 2025. 1. 14. Flutter & Dart - Isolates<in Dart> Isolates in Dart (다트의 아이솔레이트)Isolates란?Isolate는 Dart에서 제공하는 경량 프로세스입니다.Isolate는 독립적인 메모리 공간과 실행 흐름을 가지며, 병렬 처리를 가능하게 합니다.서로 간섭하지 않고 동작하며, 데이터를 주고받을 때 메시지 패싱(Message Passing)을 사용합니다.Isolates의 특징독립된 메모리 공간Isolate는 서로 독립된 힙 메모리를 사용합니다.따라서 하나의 Isolate에서 발생한 문제(예: 메모리 누수)는 다른 Isolate에 영향을 미치지 않습니다.병렬 처리Isolate는 Dart의 싱글 스레드 모델을 보완하며, 동시에 여러 작업을 실행할 수 있습니다.CPU 집약적인 작업을 메인 Isolate와 분리하여 앱의 응답성을 유지합니다.메.. 2025. 1. 13. Flutter & Dart - Functional Programming (함수형 프로그래밍) 해당 목차는 저의 배움을 설명 하기에 앞서 드리고 싶은 말이 있습니다.함수형 프로그래밍이란 주제를 가지고 책이 여러권 있을만큼 아직까지도 많은 내용과 사람마다 다양한 생각이 존재하는데요.제가 설명 드리는 부분이 극히 일부분 + 저의 개인적인 생각이 들어간 부분이 존재하니FP 관련해서는 제 글 만 보지 마시고 다른 글도 참고 하셔서 유익한 정보만 가져가셨으면 합니다.Functional Programming (함수형 프로그래밍)함수형 프로그래밍이란?함수형 프로그래밍(Functional Programming)은 프로그래밍 패러다임 중 하나로, 프로그램의 구성 요소를 순수 함수(Pure Function)로 작성하고, 상태 변화와 부작용(Side Effect)을 최소화하여 코드를 작성하는 방법론입니다. 데이터와 .. 2025. 1. 9. Flutter & Dart - Dart 에서의 커링(Currying) 커링(Currying)은 하나의 함수가 여러 매개변수를 받는 대신, 매개변수를 나누어 단계별로 받는 기법입니다. 이를 통해 함수 호출을 더 유연하게 작성할 수 있으며, 재사용성을 높이는 데 기여합니다. 여기에서는 Dart에서 커링을 구현하고 사용하는 방식을 예제로 설명합니다.기본 커링 함수 구현curry(Function f) => (a, {Iterable? args}) => (args?.length ?? 0) > 1 ? f(a, args) : (b) => f(a, b);코드 분석Function f: 커링 대상이 되는 함수입니다. 예를 들어, (int a, int b) => a * b 같은 함수가 입력됩니다.매개변수 a와 선택적 매개변수 args: a: 첫 번째 매개변수로 사용됩니다. args: 선.. 2025. 1. 9. Flutter & Dart - Lambda 람다 함수는 익명 함수로, 이름 없이 간단한 형태로 작성되는 함수입니다. 함수의 형식이 간단하고 특정한 기능을 짧은 코드로 구현할 수 있기 때문에 자주 사용됩니다. 주로 간결한 코드와 고차 함수를 다룰 때 유용하게 사용됩니다.1. 람다의 특징익명 함수: 람다 함수는 이름이 없는 함수입니다. 그 대신 변수에 할당하거나 다른 함수의 매개변수로 전달할 수 있습니다. 람다 함수는 코드가 짧고, 직접적으로 표현해야 할 때 유용합니다.(a, b) => a + b위 예시에서 (a, b) => a + b는 "a"와 "b"를 받아 더하는 함수입니다. 이름이 없는 이 함수는 직접적으로 계산만 수행하고, 이름은 필요 없습니다.예:함수: 람다는 객체가 아니라 함수로 취급됩니다. 즉, 람다는 클래스에 종속되지 않고 독립적으로 .. 2025. 1. 8. 이전 1 2 다음