
기본 개념각 기능의 UI계층은 View + ViewModel로 구성됨ViewModel: UI 상태 관리, 로직 처리View: UI 상태를 표시, ViewModel과 1:1 관계예: LogOutView, LogOutViewModel ViewModel 역할ViewModel은 UI 로직을 처리하는 역할 클래스도메인 모델 데이터를 입력받아 View가 사용할 수 있도록 UI 상태로 변환버튼 클릭 등의 이벤트 처리 로직 포함이벤트를 데이터 계층으로 전달하여 변화 유도 다음 코드는 HomeViewModel이다. 이 뷰모델은 데이터를 제공받기 위해 BookingRepository와 UserRepository에 의존한다.// home_viewmodel.dartclass HomeViewModel { HomeViewMod..

이제부터 플로터에 아키텍처를 적용해서 만든 예제 코드를 작성해 보자. Compass 앱이란?여행 일정을 만들고 예약할 수 있는 샘플 앱HTTP 서버 통신, 개발/운영 환경, 브랜드 스타일, 높은 테스트 커버리지 등 실제 앱처럼 구성됨MVVM 패턴 적용 이 사례에서 배우는 것들:MVVM 구조에서 repository와 service 사용법Command 패턴으로 안전하게 UI 업데이트하기ChangeNotifier / Listenable을 통한 상태 관리provider 패키지로 의존성 주입(DI) 구현테스트를 설정하는 방법대규모 플러터 앱에 적합한 효과적인 패키지 구조 패키지 구조구조 목적여러 개발자가 함께 작업할 때 충돌 최소화, 이해도 향상잘 정의된 아키텍처와 맞물려 코드 품질 향상 코드 구성 방식기능별 구..

목적이 가이드는 확장성, 유지보수성, 테스트 용이성을 높이기 위한 Flutter 앱 아키텍처의 모범 사례를 소개함.규칙이 아닌 가이드라인이므로, 필요에 따라 유연하게 적용해야 함. 프로젝트 구조 개요Flutter 앱은 크게 두 개의 계층으로 구성된다:UI 계층: 화면 구성 및 사용자 입력 처리데이터 계층: 데이터 처리 및 저장( 로직 계층은 선택사항으로 복잡한 앱에서 추가할 수 있음. 뒤에서 자세히 설명되어 있음 ) 계층 구성 요소각 계층은 다음과 같은 구성 요소로 나뉘어 관리된다:View: 실제 UI 화면ViewModel: UI 로직 담당Repository: 데이터의 단일 진실 공급원 (SSOT)Service: 외부 API나 플랫폼과의 연동 담당 MVVM 패턴 적용MVVM은 앱 기능을 세 부분으로 분..

플러터 앱 아키텍처 가이드아키텍처란?소프트웨어 시스템의 구조와 설계 원칙을 의미함소프트웨어를 어떻게 구성하고, 각 구성 요소가 어떻게 상호작용할지에 대한 큰 그림 아키텍처의 구성 요소계층 구조컴포넌트 간의 책임 분리 (예: 컨트롤러는 요청 처리, 모델은 데이터 처리)데이트 흐름 (어디서 데이터가 생성되고, 어떻게 전달되는지)모듈 간의 관계 및 의존성설계 원칙 (예: SOLID 원칙, 의존성 역전 등)왜 사용하는가?유지보수 용이성 : 기능 추가 / 변경 / 수정이 수워짐재사용성 증가 : 잘 나눈 모듈은 다른 프로젝트에서도 재사용할 수 있음협업 효율 증가 : 역할이 명확해서 여러 명이 동시에 작업해도 충돌이 적음테스트 용이성 : 각 구성 요소를 개별적으로 테스트하기 쉬움확장성 확보 : 서비스 규모가 커져도 ..
은행이자보다 더 벌어보자는 생각으로 비트코인 자동매매 프로그램을 만들었다.매매 전략을 제외한 나머지 부분들을 모두 공유한 상태이다. 혹시 자동매매 프로그램을 만들고 싶은 분들에게 도움이 될까해서 공유했으니 참고하길 바란다. 프로젝트 시작https://m.blog.naver.com/1986hz/223708545741 개발 환경 구성하기https://m.blog.naver.com/1986hz/223708551909 해야 할 일https://m.blog.naver.com/1986hz/223708563030 업비트 API로 보유 자산 얻기https://m.blog.naver.com/1986hz/223708752902 업비트 API로 지정가 매수하기https://m.blog.naver.com/1986hz/223..
라즈베리파이에서 pandas를 설치하고 실행하니 다음과 같은 에러가 발생했다.%Run main.pyTraceback (most recent call last): File "main.py", line 7, in from util import get_candles_dataframe, get_ma File "util.py", line 2, in import pandas as pd File "/lib/python3.9/site-packages/pandas/__init__.py", line 19, in raise ImportError(ImportError: Unable to import required dependencies:numpy: Error importing numpy: you ..
파이썬으로 슬랙 메시지를 보내는 방법을 알아보자. 슬랙에 메시지를 보내는 방법은 2가지가 있다. WebClinet(Slack Web API) 사용Incoming Webhooks 사용WebClient는 모든 슬랙 API 기능을 사용하는 것이 특징이고, Incoming Webhooks는 메시지만 전송하는 기능만 사용할 수 있다. # 슬랙 설정하기나는 먼저 간단하게 메시지를 전송하는 Incoming Webhooks를 사용하려고 한다. 자세한 설정법은 다음 사이트를 참고하였다. [python] 슬랙 메시지 보내기파이썬으로 슬랙(Slack) 메시지 보내기 저는 주로 자동 프로그램을 작동시키거나 모니터링할 때, 설정해둔 특정 상황이나 오류가 발생하면 슬랙 메신저로 알림을 받아봅니다. 파이썬으로 슬랙 메dev-n..
2차원 배열을 함수의 매개변수로 전달하는 예제는 여러 가지 방법으로 구현할 수 있다. 여기서는 일반적인 2차원 배열을 함수로 전달하는 몇 가지 방법을 알아보자. 1. 열 크기를 명시하여 전달2차원 배열을 함수로 전달할 때, 함수 매개변수에서 배열의 열 크기를 명시해야 한다. 예를 들어, 3x4 배열을 전달하는 경우는 다음과 같이 작성할 수 있다.#include // 함수 정의: 열의 크기를 명시void printArray(int rows, int cols, int arr[rows][cols]) { for (int i = 0; i 위 예제에서는 printArray 함수가 arr 배열의 크기를 알기 위해 rows와 cols를 매개변수로 받는다. 2. 배열 포인터 사용배열 포인터를 사용하여 2차..