flutter10 Flutter & Dart - What is Bloc 제게 마지막 기회가 왔습니다.정말 제가 존경하는 분께서 개발자로서의 마지막 기회를 주셨고, 면접을 볼 수 있을지는 아직 모르지만,기회를 주셨다는 사실 하나만으로도 절대 놓치고 싶지 않았습니다.최소한 폐는 끼치지 말자는 마음으로, 해당 회사에서 사용하는 기술 스택을 하나하나 분석하며그동안 몰랐던 것을 배우고, 익히고, 정리하며, 작은 예제라도 만들어보자고 결심했습니다.그 첫 번째 주제는 Bloc 입니다.상태 관리가 필요한 이유아래의 이미지 처럼 위젯 트리가 존재한다고 했을때Flutter의 기본적으로 제공되는 StatelessWidget과 StatefulWidget 내에서 , 간단한 상태 변경은 setState()를 통해 처리할 수 있습니다. 아래의 로직이 동작 했을경우를 예를 들어 보겠습니다.setStat.. 2025. 7. 7. Flutter & Dart - Clean Architecture에서 UI 새로고침의 내부 동작 흐름 오늘은 제가 정리한 클린 아키텍처에 대해 설명드리려 합니다. 분명 장점이 많은 구조이지만, 실제로 적용해보면 모든 계층을 어디까지 나눠야 할지, 또는 각 계층의 역할을 어떻게 해석해야 할지가 애매하게 느껴질 때가 많습니다. 예를 들어, UseCase에서 DTO를 다뤄도 되는지, Repository는 어디까지 비즈니스 로직을 포함할 수 있는지 등 실제 구현에서의 해석 차이가 존재하더군요.저 역시 아직 배우는 중이며, 직접 써보며 느낀 점은 결국 회사나 팀마다 클린 아키텍처를 해석하고 적용하는 방식이 다르다는 것이었습니다.하지만 이러한 차이에도 불구하고, 클린 아키텍처의 큰 틀과 철학을 이해하고 있다면 어떤 환경에서도 빠르게 적응할 수 있고, 구조적인 코드 작성에 큰 도움이 될 것이라 확신합니다. 클린 아키.. 2025. 7. 6. 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. 이전 1 2 다음