분류 전체보기 48

[Flutter] Riverpod 상태관리 - ConsumerStatefulWidget 가이드

✅ ConsumerStatefulWidget을 사용해야 하는 경우ConsumerStatefulWidget은 setState()와 Riverpod 상태 관리를 동시에 사용해야 할 때 필요하다.예를 들어, 사용자가 버튼을 클릭할 때마다 UI가 변경되지만, 추가적인 상태(예: 애니메이션 컨트롤러, 텍스트 필드 입력 등)도 관리해야 할 경우 ConsumerStatefulWidget을 사용하면 적절하다.🛠 ConsumerStatefulWidget 예제 코드 (텍스트 필드 + 상태 관리)import 'package:flutter/material.dart';import 'package:flutter_riverpod/flutter_riverpod.dart';/// 상태 관리 (카운터)class CounterNotif..

개발/Android 2025.04.02

[Flutter] Riverpod 상태관리 - watch vs read 차이

Riverpod watch vs read 차이와 UI 빌드 영향 분석🔍 watch vs read 차이watch (ref.watch)ref.watch(provider)를 사용하면 해당 provider의 값이 변경될 때마다 UI가 자동으로 리빌드됨.주로 UI에 실시간으로 반영해야 하는 상태 값을 구독할 때 사용.read (ref.read)ref.read(provider)는 현재 상태 값만 한 번 읽고 끝.이후 provider 값이 변경되더라도 UI가 리빌드되지 않음.주로 이벤트 기반 로직 (ex. 버튼 클릭 시 상태 변경)에서 사용.사용 방식 리빌드 여부 설명ref.watch(provider)✅ 리빌드됨provider의 값이 변경될 때마다 UI가 다시 빌드됨. (자동 감지)ref.read(provider)..

개발/Android 2025.04.02

[Flutter] Riverpod 상태관리 - ConsumerWidget 가이드

🔍 ConsumerWidget이란?ConsumerWidget은 flutter_riverpod에서 제공하는 위젯으로, Consumer와 동일한 역할을 하지만 더 간결한 코드 작성을 가능하게 한다.Consumer vs ConsumerWidget ConsumerConsumerWidget사용 방식Consumer(builder: (context, ref, child) {...})build 메서드에서 ref.watch 사용 가능코드 구조StatelessWidget + Consumer 조합 필요StatelessWidget을 대체하여 더 간결함위젯 성능특정 부분만 리빌드 가능특정 부분만 리빌드 가능추천 사용처위젯의 특정 부분만 ref.watch가 필요할 때전체 위젯에서 ref.watch를 사용할 때 1. Consum..

개발/Android 2025.04.02

[Flutter] 간단한 ToDo앱에서 MethodChannel 응용

Flutter 앱과 안드로이드 네이티브 코드(Kotlin) 간의 통신을 위한 플러그인(Platform Channel) 구현 코드📌 주요 역할Flutter에서 보낸 메소드 호출(Method Call) 을 안드로이드 네이티브에서 처리할 일 목록(To-Do List)을 저장하고 불러오는 기능 제공SharedPreferences를 이용해 데이터를 저장 및 관리📂 코드 상세 설명1. 기본 클래스 및 변수 선언class MainActivity : FlutterActivity() { private val CHANNEL_NAME = "com.example.to_do_list/task_channel" private val TAG = "MainActivity"MainActivity는 FlutterActivi..

개발/Android 2025.03.10

[Flutter] MethodChannel이란 ?

Flutter에서 MethodChannel은 Flutter와 네이티브 플랫폼(Android, iOS) 간에 데이터와 메서드를 주고받는 데 사용됩니다. 이를 통해 Flutter 앱 내에서 네이티브 코드(예: Java, Kotlin, Objective-C, Swift)와 상호작용할 수 있습니다. MethodChannel을 사용하면 Flutter와 네이티브 간에 기능을 확장하거나 네이티브 API를 활용할 수 있습니다.1. MethodChannel이란?MethodChannel은 Flutter와 네이티브 플랫폼 간에 메서드 호출과 결과를 전달하는 채널입니다.Flutter에서는 MethodChannel을 사용하여 네이티브 코드에 메서드를 호출하거나 네이티브 코드에서 결과를 Flutter로 반환할 수 있습니다.2. ..

개발/Android 2025.03.10

[Flutter] Riverpod 상태관리 라이브러리

Riverpod 개요Riverpod는 기존 Provider 패키지의 한계를 보완하여 더욱 유연하고 안정적인 상태 관리를 제공하는 라이브러리이다.컴파일 타임에 오류를 감지할 수 있어, 개발 중 발생할 수 있는 실수를 줄일 수 있으며, 반응형 패러다임을 기반으로 한다.특징Riverpod는 다음과 같은 핵심 개념을 기반으로 동작한다.Providers: 데이터의 원본을 선언하는 역할을 한다.Consumers: Provider를 구독하여 데이터의 변경 사항에 따라 UI를 재구성한다.Notifiers: Provider의 상태를 업데이트하는 역할을 한다.또한, 내부적으로 스트림을 활용하여 Provider의 상태 변화가 발생하면 자동으로 Consumer가 업데이트된다.기존 Provider보다 타입 안정성이 향상되었으며..

개발/Android 2025.02.20

[CS] Java 기초 (배열)

배열 ◼︎ 선언 방법 (1)자료형[] 변수명 = new 자료형[크기]; int[] numbers = new int[5];String[] names = new String[3]; ◼︎ 선언 방법 (2)자료형 변수명 [] = new 자료형[크기]; int numbers[] = new int[5];String names[] = new String[3]; ◼︎ 선언 방법 (3)자료형[]  변수명 = new 자료형[]{값1, 값2,...};int[] numbers = new int[]{1,2,3,4,5};String[] names = new String[]{"A","B","C"};자료형[]  변수명 = {값1, 값2,...};int[] numbers = {1,2,3,4,5};String[] names = {"A"..

CS 2025.02.14

[CS] Java 기초 (형 변환, 문자열 기능)

형 변환(자료형) 변수명 or 값;int score = 93;float score_f = (float)score;double score_d = (double)93;이때 (float) 과 (double)은 생략이 가능한데, 이를 묵시적 형 변환(=자동 형 변환)이라고 한다.즉, int ➝ long ➝ float ➝ double 처럼 데이터 크기가 작은 것을 보다 더 큰 것으로 변환하는 것은 생략 가능하다. 반대로, 명시적 형 변환은 double ➝ float ➝ long ➝ int 처럼 데이터 크기가 큰 것을 보다 작은 것으로 변환하는 것이므로 이 과정에서는 데이터의 손실이 발생할 수 있으므로 변화하려는 자료형을 생략할 수 없다. 문자열 기능String s = "I like Java" ;기능설명 예시결과l..

CS 2025.02.14

[CS] 소프트웨어 설계 -소프트웨어 아키텍처 패턴

◼︎ 소프트웨어 아키텍처 패턴 유형계층화 패턴(Layered Pattern)시스템을 계층으로 구분하여 구성각 하위 모듈들은 특정한 수준의 추상화를 제공, 각 계층은 다음 상위 계층에서 서비스를 제공서로 마주 보는 두 개의 계층 사이에서만 상호 작용이 이루어짐대표적으로 OSI 참조모델이 있음클라이언트-서버 패턴(Client-Server Pattern)하나의 서버 & 다수의 클라이언트로 구성사용자가 클라이언트 통해 서버에 서비스 제공서버는 클라이언트에게 서비스를 제공서버는 계속 클라이언트로부터 요청을 대기파이프 - 필터 패턴(Pipe-Filter Pattern)데이터 스트림을 생성하고 처리하는 시스템에서 사용 가능한 단방향 패턴데이터 스트림 : 데이터가 송/수신 되거나 시간의 흐름에 따라 연속적으로 생성되고..

CS 2025.01.21

[CS] 소프트웨어 설계 - 분석 모델 확인(모델링/분석 자동화)

(1) 모델링 기법◼︎ 모델 모델은 객체, 시스템, 개념에 대한 구조나 작업을 보여주기 위한 패턴이다.이는 개발 대상을 추상화하고 기호나 그림 등으로 시각적으로 표현한다. 모델 특징SW에 대한 이해도 향상, 이해 당사자 간의 의사소통 향상문제 상황에 대한 이해도 높이고 해결책 설명향후 개발될 시스템에 대한 유추 가능개념 모델은 문제 도메인의 엔터티 들과 관계 및 종속성을 반영◼︎ 모델링: 모델링은 실세계의 물리현상을 특정한 목적에 대응하여 이용하기 쉬운 형식으로 표현하는 기법이다. 모델링 특징여러 분야의 엔지니어들이 공통된 개념을 공유하는 데 도움을 줌개발팀이 응용문제를 이해하는 데 도움을 줄 수 있음모델링 작업의 결과물은 다른 모델링 작업에 영향을 줄 수 있음절차적인 프로그램을 위한 자료 흐름도는 프로..

CS 2025.01.20