Flutter/심화 버전 6

[Flutter] 심화 버전 - 해시 함수

해시 함수해시 함수(Hash Function)는 입력값(키나 데이터)을 고정된 크기의 해시값(Hash Value)으로 변환하는 수학적 함수입니다.해시값은 보통 숫자나 문자열의 형태로 표현되며, 입력값의 크기와 관계없이 항상 고정된 길이를 가집니다. 사용 목적빠른 데이터 검색:해시값을 인덱스로 사용하여 데이터를 빠르게 검색하는 데 활용 (예: 해시 테이블, HashMap)객체를 빠르게 저장하고 삭제데이터 무결성 확인:데이터를 해싱한 값(체크섬)을 저장하고, 이후 해시값을 비교하여 데이터 변조 여부를 확인 (예: 파일 다운로드 검증)암호학:비밀번호나 민감한 정보를 암호화하는 데 활용 (예: SHA-256)고유 식별자 생성:데이터를 해싱하여 고유한 식별자를 생성 (예: Git의 커밋 ID) 입력값 → 해시값 ..

[Flutter] 심화 버전 - 가변 객체 -> 불변 객체

import 'package:equatable/equatable.dart';void main(){ print(const Post('홍길동전1') == const Post('홍길동전1')); print(const Post('홍길동전1')); print('-------------------------'); print(identical(const Post('홍길동전1') , const Post('홍길동전1')));}// 1. 가변 객체로 만들었다.// 2. 가변 객체를 불변 객체 허용으로 만들고 싶다면??class Post extends Equatable{ final String title; const Post(this.title); @override // [] 객체 배열을 반환해라 => 너가 사..

[Flutter] 심화 버전 - 객체 동등성 재정의

객체 비교와 객체 동등성 재정의Dart에서는 기본적으로 객체를 비교할 때 주소 값으로 비교 처리를 합니다.flutter에서 동일한 위젯을 재사용할 수 있다면 이미 만들어진 객체를 재사용하여 메모리 낭비를 줄일 수 있습니다. 객체 동등성 재정의 : 메서드를 재정의하여 객체를 비교할 때 논리적 동등성(내용 기반 비교)을 구현하는 것을 의미합니다.hashCode, operator를 재정의 해야 합니다.void main(){ // 객체 비교와 객체 동등성 재정의 // Dart 에서는 기본적으로 객체를 비교할 때 주소값으로 비교 처리 // 플러터에서 동일한 위젯을 재사용할 수 있다면 이미 만들어진 객체를 // 재사용하여 메모리 낭비를 줄일 수 있다. // const Container(), const Co..

[Flutter] 심화 버전 - 불변 객체

불변 객체 (Immutable Object)불변 객체란 한 번 생성되면 내부 상태(값)를 변경할 수 없는 객체를 말합니다.객체의 데이터가 설정되면, 이후에는 그 값을 변경할 수 없으며, 변경하려면 새로운 객체를 생성해야 합니다.즉, 메모리에 할당한 뒤 값을 변경할 수 없는 객체  특징값 변경 불가:객체의 모든 필드는 객체가 생성될 때만 설정 가능하며, 이후에는 변경할 수 없습니다.Thread-safe:불변 객체는 값을 변경할 수 없으므로, 여러 스레드에서 동시에 접근해도 안전합니다.새 객체 생성:불변 객체의 값을 변경하려는 모든 작업은 기존 객체를 수정하지 않고 새로운 객체를 반환합니다.재사용 가능:동일한 값을 가진 불변 객체는 재사용이 가능하여 메모리 효율성을 높일 수 있습니다.장점안정성:값이 변경되지..

[Flutter] 심화 버전 - 가변 객체

가변 객체 (Mutable Object)가변 객체란 한 번 생성된 후에도 내부 상태(값)를 변경할 수 있는 객체를 말합니다.객체의 메모리 주소는 유지되면서, 그 안에 저장된 데이터나 속성이 수정 가능합니다.즉, 메모리에 할당된 뒤 값을 변경할 수 있는 객체 // 내부 값이 변경이 되더라도 주소 변경 안됨 특징값 변경 가능: 객체를 생성한 이후, 내부의 데이터나 필드를 자유롭게 수정할 수 있습니다.효율성:값이 자주 변경되는 경우, 새로운 객체를 생성하지 않아 메모리 사용량이 적음.객체를 수정하기 위해 매번 새로운 객체를 생성할 필요가 없으므로 성능이 향상될 수 있음.동일 참조:동일한 객체를 참조 중인 여러 변수에서 값이 수정되면, 참조하는 모든 변수에 영향을 미침. 장점수정이 빈번한 작업에 적합:데이터를 ..

[Flutter] 심화 버전 - 객체

1. 객체 생성과 메모리 규칙 할당다트는 거의 모든 것이 객체이다. int, 정수형 값도객체입니다.즉! 연산자를 사용할 수 있다. 2. 객체 비교에 대한 이해객체를 비교할 때 두가지 방법이 있습니다.값 비교(value)주소 값 비교(Reference) -> dart에서는 기본적으로 주소값 비교를 사용 불변 가변불변 : 한번 생성이 되면 내부 상태 값을 변경할 수 없는 객체 (사용하는 이유 ➡️ 메모리 사용량을 줄이고 안정성이 증가)가변 : 항상 새로운 메모리 주소를 할당 받고 그 공간에 값을 저장 import 'package:flutter/material.dart';void main(){ // dart .. 문법 정리 - 심화 버전 // 1. 객체 생성과 메모리 규칙 할당 // 다트는 거의 모든 ..