Flutter 앱 아키텍처(2) - 앱 아키텍처
·
Mobile
이번 포스팅은 Flutter 애플리케이션을 어떻게 설계할 수 있을지에 대한 개요를 작성한다. 애플리케이션의 계층과 각 계층내에 존재하는 클래스에 대해 알아보고 이후에는 구체적인 코드 샘플을 통해 권장 사항을 구현한 Flutter 애플리케이션을 살펴보자.프로젝트 구조Flutter 앱을 설계할 때 가장 중요한 원칙은 관심사 분리이다. Flutter 앱은 UI 계층과 Data 계층 두 가지 넓은 계층으로 나누어져야 한다.각 계층은 서로 다른 구성 요소로 더 나뉘며, 각 구성 요소는 고유한 책임, 잘 정의된 인터페이스, 경계 및 종속성을 가진다. 애플리케이션은 다음의 구조를 따르는 것을 권장한다.View - ViewModel - Repository - ServiceMVVMModel-View-ViewModel(M..
Flutter 앱 아키텍처(1) - 아키텍처 개념
·
Mobile
Architecture는 유지 관리 기능을 하고 탄력적이며 확장 가능한 Flutter 앱을 구축하는 데 중요한 부분이다. 이번 시간부터는 Flutter 앱을 구축하기 위한 앱 아키텍처 원칙과 모범 사례에 대해 여러 차례 포스팅 할 예정이다.일반적인 아키텍처 개념애플리케이션 디자인에서 일반적인 아키텍쳐 개념에 대해 알아보고 이를 Flutter에 어떻게 적용하는지를 알아보자.---관심사 분리(Separation of Concerns)관심사 분리는 애플리케이션의 기능을 독립적이고 self-contained한 단위로 나누어 모듈화와 유지보수성을 촉진하는 앱 개발의 핵심 원칙이다. 이는 UI 로직과 비즈니스 로직을 분리하는 것을 의미한다.이들은 계층(Layer) 구조로 설명되며, 각 계층 내에서 애플리케이션을 기..
Dart에서 비동기 처리 방식 알아보기
·
Mobile
이번 시간에는 Dart언어의 비동기 처리 방식에 대해 알아본다.Flutter를 사용하여 개발한 모바일 앱은 네트워크 통신, 데이터베이스 조회, 파일 읽기/쓰기 등 시간이 오래 걸리는 작업을 자주 수행한다. 만약 이러한 작업들을 동기 방식으로 처리한다면 화면이 멈추거나 앱이 응답하지 않는 현상이 발생할 수도 있다.Dart의 비동기 처리 방식을 활용하면 시간이 소요되는 작업을 백그라운드에서 수행하는 동안 **사용자 인터페이스(UI)**는 계속 동작할 수 있어 더욱 부드럽고 쾌적한 **사용자 경험(UX)**를 제공할 수 있다.따라서 비동기 프로그래밍은 성능 좋고 안정적인 앱 개발을 위한 필수 기술이다.비동기 처리란?비동기(Asynchronous) 란 언제 끝날지 모르는 작업을 기다리지 않고 다음 작업을 처리하..
플러터 개발 준비
·
Mobile
이번 시간에는 플러터의 장점과 특징을 알아보고, 안드로이드 스튜디오를 이용하여 앱 개발 환경을 준비한다. 플러터를 올바르게 이해하고 개발환경을 준비해보자. 01-1 플러터에 주목하는 이유플러터를 상징하는 3가지 특징이라면 높은 개발 효율, 역동적이고 유연한 사용자 인터페이스, 네이티브 앱 만큼 빠른 속도를 들 수 있다.구글이 개발한 오픈 소스 크로스 플랫폼 프레임워크인 플러터(Flutter)는 하나의 코드로 안드로이드와 iOS 모두를 보기 좋고 빠르게 개발할 수 있다. 추가로 웹, 데스크톱, 임베디드까지 지원한다. 즉, 하나의 코드로 안드로이드, iOS, 윈도우, 맥OS, 리눅스, 웹 애플리케이션 모두를 개발할 수 있다.다음은 사람들이 플러터로 개발하는 이유 3가지이다.높은 개발 효율플러터를 이용해 코드..
[SQL] SQL 알고리즘 기본 문법 정리
·
Algorithm
-- {}는 필수, []는 선택, |는 가능한 문법 중 하나 선택 --SELECT [ALL | DISTINCT] [컬럼1], [컬럼2], ...FROM 테이블명WHERE [조건식]GROUP BY [컬럼명]HAVING [조건식]ORDER BY [컬럼명]-- {}는 필수, []는 선택, |는 가능한 문법 중 하나 선택 --SELECT [ALL | DISTINCT] [테이블명.]{ * | 컬럼명 [[AS] 컬럼이름별칭]}FROM { 테이블명 [AS 테이블명별칭] } [[INNER] JOIN | LEFT [OUTER] JOIN | RIGHT [OUTER] JOIN { 테이블명 [ON 검색조건] } | FULL [OUTER] JOIN { 테이블명 }][WHERE 검색조건(들)][GROUP BY { 컬럼명1, 컬럼..
[알고리즘] 에라토스테네스의 체 (Sieve of Eratosthenes)
·
Algorithm
에라토스테네스의 체 알고리즘이란?에라토스테네스의 체 알고리즘은 소수(prime number)을 판별하는 알고리즘이다.소수 : 1과 자기 자신을 약수로 가지는 수 자연수 N에 대해 에라토스테네스의 체 알고리즘을 수행하면 O(1)의 시간만에 소수 판별이 가능하다. 약수의 성질어떤 자연수 N이 있을 때, N의 약수 A, B에 대해서 $N = A \times B$ 형태로 나타낼 수 있다.ex) n = 8일 때, 약수는 [1, 2, 4, 8] 이므로 n(8) = 1 x 8 또는 n(8) = 2 x 4 으로 표현 가능 그렇다면, $N = A \times B$ 에서 $min(A, B)$가 최대가 되는 상황은 언제일까?ex) n = 16 일 때, 약수는 [1, 2, 4, 8 ,16] n(16) = 1 x 16 : mi..