배운것들을 정리합니다.
三昧境

플러터 23

[플러터 Flutter] 조건문의 종류

우선 조건문은 크게if 문if - else 문if - else if - else 문switch 문삼항 연산자null-aware이렇게 4가지의 종류로 볼 수 있습니다.사실 6가지로 볼 수 있지만 2가지는 if 문의 큰 카테고리로 넣어 정리하도록 하겠습니다.  if 문가장 기본적인 조건문으로, 조건이 참일 경우에만 블록 안의 코드를 실행합니다.문법 :if (조건) { // 조건이 참일 때 실행할 코드}예제 :void main() { int number = 10; if (number > 5) { print('number는 5보다 큽니다.'); }}// 출력 : number는 5보다 큽니다.위와 같은 경우에는number = 10 이고숫자가 5보다 클경우 print를 하는 코드입니다.void ma..

[플러터 Flutter] enum이란?

enum(enumerate)은 열거형 이라고도 불리며 특정 값들의 집합을 정의하는 데 사용됩니다.예를 들어, 요일, 계절, 상태 등을 나타낼 때 유용하며, 코드의 가독성을 높이고 특정 값들만 사용하도록 제한할 수 있어 오류를 줄이는 데 도움이 됩니다. enum을 사용하는 이유코드 가독성 향상관련된 상수들을 그룹화하여 코드를 더 읽기 쉽고 이해하기 쉽게 만듭니다.타입 안전성컴파일 시점에 타입 체크를 통해 오류를 방지할 수 있습니다.유지보수 용이성관련 값들을 한 곳에서 관리할 수 있어 유지보수가 쉬워집니다.명확한 의도 전달코드의 의도를 명확하게 표현할 수 있습니다.switch 문과의 호환성enum은 switch 문과 잘 어울려 깔끔한 코드 작성이 가능합니다.값의 제한특정 값들로 제한된 집합을 만들 수 있습니..

[플러터 flutter] initState와 dispose란?

initState플러터에서 위젯의 상태가 처음 생성될 때 호출되는 메서드입니다.StatefulWidget의 상태 클래스에서 오버라이드 할 수 있으며 위젯의 초기 설정, 초기화 작업을 수행하는데 사용됩니다.위젯이 처음 빌드되기 전에 호출되기 때문에 위젯이 화면에 나타나기 전에 필요한 작업들을 설정할 수 있는 최적의 위치입니다 특징한 번만 호출됨initState는 위젯의 상태가 처음 생설될 때 단 한번만 호출됩니다.사용처네트워크 요청, 스트림 구독, 컨트롤러 초기화 등 초기 설정 작업을 수행하는데 사용됩니다.super.initState() 호출initState 메서드를 오버라이드할 때, 반드시 super.initState()를 호출해야합니다.이는 부모 클래스의 초기화 작업을 보장합니다.class MyStat..

[플러터 Flutter] 예외처리 try-catch와 throw, finally

try-catch 구문은 Dart 언어의 예외 처리(exception handling) 메커니즘의 일부입니다.여기서 예외란 프로그램의 정상적인 실행 흐름을 방해하는 사건입니다.이는 코드작성의 오류, 네트워크 통신오류, 기기오류 등 다양하게 발생할 수 있습니다.try-catch를 사용하여 실행 중 발생할 수 있는 예외(에러)를 포착하고 적절히 처리할 수 있습니다.// 기본구조try { // 예외가 발생할 수 있는 코드} catch (e) { // 예외가 발생했을 때 실행되는 코드}  try 블록try { // 예외가 발생할 수 있는 코드}예외가 발생할 수 있는 코드를 포함합니다.여기서 예외가 발생하면 프로그램의 흐름이 try블록을 벗어나 가장 먼저 일치하는 catch블록으로 이동합니다. catch(e..

[플러터 Flutter] 소셜로그인 카카오톡 2 social login with Kakao 2

[플러터 Flutter] 소셜로그인 카카오톡 1 social login with Kakao 1Flutter 3.22.2Dart 3.4.3DevTools 2.34.3AndroidStudio 17.0.10 koalamac 기준으로 작성되었습니다.들어가기 앞서 카카오톡 플러터 공식문서도 있음 참고 부탁드립니다.https://developers.kakao.com/docs/latest/ko/flutter/gettingujo-orr.tistory.com  우선 프로바이더 패키지를 설치하여 프로젝트에 적용시킵니다. [플러터 Flutter] 상태관리 Provider, MultiProvider상태관리란?애플리케이션의 상태(state)를 관리하는 것을 의미합니다.상태는 사용자 인터페이스(UI)와 상호작용하거나 애플리케이션..

Flutter/tip 2024.07.12

[플러터 Flutter] 객체지향(Object Oriented Programing,OOP)의 이해

객체지향 프로그래밍Object Oriented Programing의 앞글자만 따서 OOP라고 불립니다. 이는 프로그래밍 패러다임의 하나로, 데이터를 객체로 다루며, 객체의 상호작용을 통해 프로그램을 설계하는 방식입니다.쉽게 생각했을 때 아주 잘 정리된 코드 또는 구조방식이라고 볼 수 있습니다.정리가 잘 되어있는 만큼 문제가 생긴 구간을 찾아서 유지보수하거나 사용하기 쉬울 것입니다.  객체 (Object)데이터를 구조화하고 관련 기능을 함께 묶어 하나의 단위로 관리하는 방법입니다.클래스를 기반으로 메모리에 생성된 구체적인 실체이며, 속성과 데이터를 처리하는 메서드를 포함합니다.객체는 상태와 행동을 가지며, 이를 속성(Properties)과 메서드(Methods)라고 하며, 클래스의 인스턴스입니다. 객체의 ..

Flutter/tip 2024.07.05

[플러터 flutter] 비동기 / 동기 async, awiat, future은 무엇인가?

Future은 비동기 작업을 처리하는 데 사용되는 클래스입니다.비동기 작업은 즉시 완료되지 않고 일정 시간이 걸리는 작업을 말하며, Future는 이러한 작업의 완료 또는 실패 결과를 나타내는 객체입니다.여기서 동기와 비동기란비동기 (asynchronous) / 동기 (synchronous)위 사진을 참고하여 보면 동기 (Synchronous)한 작업이 완료될 때까지 다음 작업이 시작되지 않습니다.간단하고 직관적이지만, 시간이 오래 걸리는 작업일 경우 비효율 적입니다.void main() { print('시작'); performTask(); print('끝');}void performTask() { print('실행중');}// 차례대로 출력시작실행중끝  비동기 (Asynchronous)한 작업이..

[플러터 Flutter] Const, Final의 차이 그리고 컴파일타임과 런타임

const와 final은 둘 다 Dart에서 변경할 수 없는 변수를 선언할 때 사용되지만사용 용도와 동작 방식에서 차이가 있습니다.컴파일 타임과 런타임은 프로그래밍에서 코드가 실행되는 두 가지 주요 단계입니다. 이 두 개념은 코드가 언제 검증되고, 언제 실제로 실행되는지를 정의합니다.들어가기 앞서 중요한 개념을 짚고 넘어가야 합니다. 저급(저수준) 프로그래밍 언어 (Low-Level Programing Language) 컴퓨터가 이해하기 쉽게 작성된 프로그래밍 언어로 컴퓨터 위주의 코드입니다.수준이 낮다가 다른 뜻이 아닌, 더 하드웨어에 근간을 두고 있다는 뜻입니다. 실행속도가 매우 빠르지만 배우기가 어려우며 유지보수가 힘든 것이 단점입니다.일반적으로 기계어와 어셈블리어를 말합니다.  기계어 (Machi..

[플러터 Flutter] Null-Safety와 late키워드

NullSafety는 Dart에서 도입된 개념입니다.코드에서 null 참조에 대한 안정성을 높이기 위한 기능이며이를 통해 null 참조로 인한 예기치 않은 오류를 방지하고 안전한 코드를 작성할 수 있습니다.똑같이 ?(Question mark)를 사용해도 삼항연산자와는 다른 개념입니다.Null-Safety의 주요 개념 Nullable 타입변수가 null을 포함할 수 있는 타입입니다.변수를 선언할 때 String이 아닌 String? 으로 작성합니다.String? nullableName;String nullavleName; // 오류  Non-nullable 타입변수가 null을 포함할 수 없는 타입입니다.이는 변수를 선언할 때 String? 이 아닌 String 으로 작성합니다.String name = '..

[플러터 Flutter] Private, getter/setter가 무엇인가? 어떻게 사용하는가?

프라이빗 (Private) Dart에서는 _name처럼 변수나 메서드의 이름 앞에 _언더스코어를 붙이면 이 변수나 메서드를 프라이빗 취급합니다.프라이빗은 (같은 파일 내) 클래스 내부에서만 접근 가능하며외부로부터의 직접 접근을 막아 데이터의 무결성을 유지하고객체지향 원칙 중 하나인 캡슐화의 원칙을 지킵니다.하지만 Dart의 프라이빗 접근 제어는 파일 수준의 접근 제한입니다.이는 같은 파일 내에 있는 모든 코드가 프라이빗 변수와 메서드에 접근할 수 있다는 의미입니다.그래서 같은 파일 내에서는 _로 시작하는 프라이빗 변수나 메서드에도 접근할 수 있습니다.프라이빗 변수를 완전히 숨기려면 프라이빗 변수와 메서드를 다른 파일로 분리(리팩토링)하여 사용하는 것이 좋습니다. 기능 및 역할데이터 캡슐화 (Encapsu..