본문 바로가기

개발 Note

(157)
[Flutter] enum을 이용한 ui resouce 관리(3. TextStyle) [1.이미지(Image)] [2.컬러(Color)] [3.텍스트스타일(TextStyle] 3. 텍스트 스타일(TextStyle)을 enum으로 관리하는 방법 Text("hello", style: ResTextStyle.t1.bold()) TextStyle은 flutter ui에서 상당히 많이 사용됩니다. 당연히도 화면에 글지로 표시하여 사용자에게 정보나 의미를 전달해야 되기 때문이죠.(당연한 말이죠? ㅎㅎ) 제가 flutter를 사용하면서 TextStyle을 매번 지정하는 것은 상당히 번거로운 일이었습니다. 코드의 라인수도 늘어날 뿐 아니라 보기도 다른 코드들과 섞이면 흔히 말하는 시인성(코드의 리더빌리티, Readability) 가 떨어지게 되서 불편합니다. 또 코딩하다 text style을 지정할때 ..
[flutter] enum을 이용한 ui resource 관리(2.Color) [1.이미지(Image)] 이미지 관리 [2.컬러(Color)] 색상 관리 [3.텍스트스타일(TextStyle] 텍스트 스타일 관리 2편 컬러 사용법입니다. 이 글을 쓸때 고민이 되었던 부분중 하나가 enum을 사용하여 관리하는 것이 좋을지 기존에 플루터에서 이미 사용하고 있는 방식으로 하는 것이 좋을지 무척 고민이 되었습니다. 이유는 color 부분은 딱히 enum으로 변경한다고 해서 큰 장점이 생긴다고 생각되지 않아서 였는데요. 그래서 간략히 flutter에서 Color 제공하고 있는 방식만 소개하고 넘어갈까 합니다. Color color = ResColors.buttonBlue; 이런 방식은 이미 flutter에서도 이렇게 제공하고 있는 부분이 있죠? 이런 방식을 동일하게 사용하는 것입니다. 아래와..
[Flutter] enum을 이용한 ui resouce 관리(1. image) 플루터(Flutter)는 Dart 로 UI를 개발하기에 무척 편리한 프래임워크이죠. 실제로 플루터가 나오기 전까지 Dart 언어에 대해서 평가가 그리 좋지 않았지만, 플루터 이후에 평가가 완전히 뒤바뀌었죠. 제가 플루터로 어플리케이션을 개발하면서 쌓은 노하우중 하나가 어플리케이션 리소스를 enum으로 관리하는 것인데요. 어떤것인지 소개 드리겠습니다. 플루터로 UI를 꾸밀때, 기본적으로 필요한 요소들이 있는데요. 이미지, 컬러, 텍스트스타일, 레이아웃 등이 있죠. 이런것들을 관리하기 위해서 개발자 분들은 다양한 방법을 사용하고 있을텐데요. 저는 enum을 활용하는 방법을 소개하고자 합니다. 어떻게 enum으로 리소스를 관리하지? 라고 궁금증이 생기신 분들이 있을텐데요. 먼저 제가 왜 enum을 선호하는지 ..
[Flutter] Flutter Widget Tip RoundedContainer 모서리가 둥근 container 는 종종 필요합니다. Container( width: 100.0, height: 150.0, decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(8.0)), color: Colors.redAccent, ), child: [your widget] ) RoundedCorners clipping tip. Rounded container를 만들고 나서 padding 을 없게 꽉 채우게 되는 경우에 corner가 clipping이 안됩니다. 그럴때 ClipRRect를 사용해서 clipping 합니다. ClipRRect( borderRadius: BorderRadius.ci..
[NginX+Fast API] 2. REST API 설계 Fast API 사용을 위한 서버 구축을 완료 했다면, 이제 서비스 구현을 해 나가야 겠죠? 가장 필요한것은 API들을 만들어 나가는 것인데요. Web에서 현재 거의 표준이다시피 한 것이 REST API 일 것입니다. REST API 를 Restfull 하게 설계 하기 위해서는 몇가지 알아 두어야 할 사항이 있습니다. REST API 설계 레시피 1. CRUD - POST/GET/PUT/DELETE 에 맞춰서 설계한다. 2. RESOURE 정의 데이타 중심으로 한다. - api에 동사 사용하지 않는다 : http://server.com/get-items => GET http://server.com/items - 소문자만 사용한다 : GET http://server.com/Items => GET http:..
[NginX+Fast API] 1. Nginx + gunicorn + fast api 설정하기 어플리케이션 개발을 진행하다보면, 서비스 또는 서버가 있으면 더 멋진 프로젝트로 만들 수 있을것 같은 그런 아이디어들이 생길때가 있습니다. 하지만 항상 어떻게 만들지 고민들을 하게 되는데, 다행히도 요즘은 여러 블로그와 유투브들에서 다양한 기술들과 방법들을 가이드 하고 있습니다. 저는 Ubuntu 18.04 에서 Nginx 와 FastAPI 로 셋업을 했습니다. 셋업을 위해 필요한 패키지(package)들는 다음과 같습니다. python 3.7 nginx fastapi uvicorn gunicorn NginX 설정 하기 nginx 를 설치를 먼저 합니다. $ sudo apt-get install nginx NginX가 잘 동작하는지 실행해봅니다. 그다음, 이제 nginx 와 app을 연결하는 과정이 필요..
[Windows Tip] appwiz.cpl 종종 window 11 이나 회사, 학교, 기관에서 사용하는 PC에 추가기능 관련된 기능이 숨겨져 있는 경우가 있습니다. 이때 추가 기능 설치를 해야 하는경우 난감한데요. appwiz.cpl 을 이용하여 추가 기능을 설치 할 수 있습니다. Cmd, Shell, 또는 명령창을 실행합니다. Window Key + R 을 눌러서 cmd.exe 를 실행하면 됩니다. (관리자 권한으로 실행해야 하는 경우도 있음) > appwiz.cpl 이렇게 실행하면, 제어판\모든제어판 항목\프로그램 및 기능 이 실행 됩니다. Windows 기능 켜기/끄기 항목을 선택 그리고 나서, 필요한 기능을 찾아서 설치 하면 됩니다.
[Flutter] sorting 하기 코딩을 하다보면, 사용자 형식의 데이타 구조를 소팅해서 사용해야 하는 경우가 있습니다. dart 의 List나 map 같은 자료구조에 보면, sort라는 함수가 있는데요. 이를 활용하면 쉽게 구할 수 있습니다. 가장 기본적인 형태는 다음과 같겠죠. Data라는 class가 있는데 이를 timestamp 기준으로 sorting이 필요하다고 가정하여 sample code를 작성해봤습니다. class Data{ int timestamp; // timestamp 로 String s; Data(this.timestamp,this.s); toString(){ return "$timestamp:$s"; } } List datas=[ Data(1,"heee"), Data(4,"yyy"), Data(2,"kkk"), D..