[Flutter] MVVM 아키텍처(Model-View-ViewModel)
MVVM 아키텍처 MVVM 아키텍처란?Model - View - ViewModel의 약자UI와 비지니스 로직을 효율적으로 분리해 구조화하는 디자인 패턴유지보수성, 재사용성이 좋음.역할이 분리되어 있어 테스트가 용이함. MVVM 구조의 핵심 요소Model데이터와 비지니스 로직을 관리하는 레이어데이터의 CRUD 작업(생성, 읽기, 수정, 삭제), 직렬화/역직렬화 로직이 이 레이어에 포함View와 직접적으로 연결되지 않으며, ViewModel하고만 소통서버 API, 데이터베이스, 로컬 저장소 등의 데이터 소스를 다룸예 : 사용자 정보, 상품 목록 등View사용자 인터페이스(UI)를 담당ViewModel에서 데이터를 가져와 화면에 표시사용자 입력을 ViewModel로 전달하며, Model에 직접 접근하지 않음...
2025. 3. 23.
[Flutter] JSON, jsonEncode(toJson), jsonDecode(fromJson)
JSON JSON이란?JavaScript의 객체 표기 방식 기반Flutter에서 서버와 데이터를 주고 받을 때 가장 많이 사용되는 데이터 형식 JSON 사용이유가볍고 빠르기 때문에 서버와 통신 시 부담이 적음.언어의 독립성으로 인해 Python, Dart, JavaScript 등 다양한 언어에서 사용 가능키-값 쌍 구조로 가독성이 높음.많은 REST API들이 JSON 형식을 기본으로 제공 JSON 예시{ "name" : "flutter" "age" : 10}중괄호 안에 key-value 쌍key는 반드시 문자열value에는 다양한 타입이 들어갈 수 있다.String, Number(int, double), Boolean(bool), Array(대괄호), Object(중괄호), nullJSON 데이터 ..
2025. 3. 21.
[Flutter] 레이아웃 관련 위젯(1) : Container, SizedBox, Card
Container특징가장 유연한 스타일링 위젯 : 여백, 패딩, 정렬, 크기, 배경색, 테두리, 그림자 등 다양한 기능 제공복잡한 디자인을 구현할 때 유리커스텀 스타일링 최적화남발할 경우 성능 저하 우려 예시 코드import 'package:flutter/material.dart';class CustomContainer extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Container'), ), body: Container( width: double.infinity, // 가로 길이..
2025. 3. 18.
[Verilog] 조합회로(Combinational logic) : 전가산기(Full Adder)
전가산기란?두 개의 값(a, b)과 하위 올림 수(cin)를 입력 받아 입력의 합(sum)과 올림 수(carry)를 출력하는 전가산기 회로반가산기 두 개가 합쳐진 것 진리표abcinsumcarry0000001010100101100100110011011010111111 verilog 코드//full adder(전가산기)module fadder(a, b, cin, sum, carry); input a, b, cin; output sum, carry; wire s0, c0, c1; assign s0 = a ^ b; assign c0 = a & b; assign c1 = s0 & cin; assign sum = s0 ^ cin; assign carry = c1 | c0; endmod..
2025. 3. 3.