목록분류 전체보기 (136)
drexqq
Flutter에서 자주 사용되는 대표적인 디자인 패턴이다. BLoC Pattern - Bussiness Logic Component의 줄임말이다. - 상태관리, UI, 비즈니스 로직을 분리해준다. - stream을 통해 상태를 업데이트하고 이것을 통해 stateful,stateless나 setState()가 필요 없어진다. (stream에 대한 설명) - 하나의 UI에서 여러가지의 BLoC이 존재할 수 있다. (재사용하기가 좋다) - 단순한 로직을 짜려해도 최소 4개의 클래스가 필요하다. (ex: model, provider, repository, bloc) Provider Pattern - BLoC패턴과 사용이유는 같지만 데이터의 공유나 로직의 분리 등을 조금 더 간단하게 할 수 있다.
플러터에는 final과 const가 존재한다. 둘 다 변경할 수 없는 값을 의미하지만 final은 실행 중에 값이 결정되고 const는 컴파일 중에 값이 결정된다. 실행이 되면서 값이 정해지는 상수는 final을 사용하고, 정말 변하면 안되는 상수는 const를 사용하자
플러터에서 ListView를 구성하는 방법은 총 4가지가 있습니다. 1. The default constructor takes an explicit List of children. - 기본 생성자인 ListView를 호출하고 children으로 전달하는 방법. - 적은 양의 데이터를 보는데에 적합합니다. ListView( padding: const EdgeInsets.all(8), children: [ Container( height: 50, color: Colors.amber[600], child: const Center(child: Text('Entry A')), ), Container( height: 50, color: Colors.amber[500], child: const Center(child..
InkWell과 GestureDetector 위젯은 사용자의 동작을 감지할 수 있는 위젯입니다. onTap, onDoubleTap 등 여러가지 동작들을 감지해서 유저와 상호작용이 가능합니다. 더 많은 액션들은 공식 홈페이지에 나와있습니다. [InkWell] https://api.flutter.dev/flutter/material/InkWell-class.html InkWell class - material library - Dart API A rectangular area of a Material that responds to touch. For a variant of this widget that does not clip splashes, see InkResponse. The following diag..
primarySwatch를 통해서 appbar의 색을 변경하려는 도중 에러가 발생하였다. 내가 바꾸려는 Colors.white가 MaterialColor의 타입이 아니라서 그렇다고 한다. Colors.white는 Color타입이고 primarySwatch의 기본값인 Colors.blue는 MaterialColor타입이다. 그렇기 때문에 primarySwatch에서는 MaterialColor타입으로 되어 있는 색만 사용을 할 수 있다. 색을 바꾸는 다른 방법은 ThemeData내부에 appBarTheme으로 바꾸면 바뀌게 된다. ※ primaryColor는 2.5버전부터 deprecated 되었다고 합니다.
Stateless Widget state가 없는 위젯이다. state를 변경할 필요가 없고 이벤트에 의해서 값이 바뀌지 않는다. static한 데이터를 넣은 위젯을 만들때 StatelessWidget으로 만들면 된다.lifecycle - Constructor -> Build Statefull Widget state가 있는 위젯이다. state를 변경하거나 상호작용에 의해서 값이 바뀐다. 데이터가 변경되는 위젯을 만들때 StatefulWidget으로 만들면 된다. lifecycle - Constructor -> createState -> initState -> didChangeDependencies -> Build Stateful Widget이 Stateless Widget에 비해 성능이 떨어지는 부분..
다니는 회사에서 사용할 일이 생겨 플러터를 설치하는 과정부터 포스팅을 해보려합니다 ! 1. 아래 주소에서 자신의 개발 환경에 맞는 Flutter SDK를 다운로드 해줍니다. https://docs.flutter.dev/get-started/install Install Install Flutter and get started. Downloads available for Windows, macOS, Linux, and Chrome OS operating systems. docs.flutter.dev 저는 맥북 에어 m2를 사용하고 있기 때문에 Appli Silicon 을 다운받았습니다. 압축을 해제한 후에 환경변수를 등록해줍니다. export PATH="$PATH:`pwd`/flutter/bin" 영구적으로..
PWA로 간단한 토이프로젝트를 하나 진행하는 과정에서 AWS의 amplify를 사용해보았습니다. 제가 AWS amplify를 선택한 이유는 CI/CD가 기본적으로 적용 되어있다. 풀스택 애플리케이션을 구축할 수 있다. SSL인증서 적용과 Domain설정이 간편하다 크게 위 세가지의 이유입니다. 기존에는 ec2 인스턴스를 이용하여 서버에 직접 호스팅하는 방법을 사용해왔습니다. 그렇기 때문에 인스턴스를 만들고 세팅하고 배포 과정을 자동화시키는 과정이 조금 번거로웠는데 amplify는 그러한 과정을 간단히 줄여줄 수 있다는 것이 큰 매력으로 다가왔습니다. 아래부터는 amplify로 프론트엔드 애플리케이션을 배포하는 과정에서 일어난 일들에 대해 일자별로 트러블 슈팅한 내용을 작성해 두겠습니다. 2022-09-1..
진행중인 프로젝트에 오토스케일링을 적용해보았다. 사용이유는 특정 상황, 특정 시간에 갑자기 많은 트래픽이 몰리고 서버에 부하가 걸리는 일이 많이 있어서 해당 부분을 해소하기위해 서버의 스펙을 올리는 scale up보다는 오토스케일링을 적용시켜 scale out으로 해결하기 위해서이다. scale up을 선택하지 않고 scale out을 선택한 이유는 sclae up을 한다면 지속적으로 많은 비용이 나가지만 scale out을 적용하면 필요할때만 늘리고 줄이는 방식으로 유연하게 트래픽에 대한 대처가 가능하기 때문이다. 이제 방법을 보자면 크게 총 5가지로 나뉘는 것 같다. AMI 생성 -> 시작템플릿(TG) 생성 -> 대상그룹(TG) 생성 -> 로드밸런서(LB) 생성 -> 오토스케일링그룹(ASG) 생성 (..
https://drexpp.tistory.com/entry/Python-Flask-Gunicorn-Nginx%EB%A1%9C-EC2%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0 [Python] Flask, Gunicorn, Nginx로 EC2배포하기[1] 업무중에 새롭게 서버를 만들어야할 일이 있어서 기존에 사용하던 apahce를 버리고 Nginx를 사용하기로 했다. 지금까지의 구성은 EC2(ubuntu 20.04), nginx(1.18.0), python3(3.8.10)를 서버에 올려서 사용하였고 drexpp.tistory.com 이 전글에서 쓴것처럼 route53과 elb를 사용해서 호스팅과 ssl인증을 했던 방법을 작성해보겠다. 일단 route53에서 호스팅하기위해서는 도메인이 ..