본문 바로가기
  • 포르쉐타고싶다

인포테인먼트 - development82

[flutter] Row긴한데 기본적인 정렬이 들어가야할 때 : Stack + Align 1. 배경 Flutter에서는 정말 많은 위젯들을 제공하고 그 사용법 또한 간단하기 때문에 알기만 훨씬 효과적으로 ui를 짤 수 있어 아는것이 힘인 프레임워크라고 할 수 있다. 하지만 위젯이 많은 만큼 그 많은 위젯을 모두 외우기 힘들고 특정한 상황에서 어떤 위젯이 가장 어울리는지 결정하는것 또한 하나의 일이될 수 있다. 특정 상황에 걸맞는 위젯이 존재하는데도 그 당시에는 알지못하여 다른 위젯들을 사용하여 겨우겨우 구현해냈다가 걸맞는 위젯을 나중에서야 알게되어 '아..진작이 이 위젯을 알았다면..'하고 현자가 되는 경우가 다반사이다. (물론 필자같이 입문한지 얼마 안 된 개발자에 한해!) 아까말한대로 Flutter는 수많은 위젯들을 제공하지만 필자가 의외로(?) 고생한 부분이 '레이아웃'부분이다. Flu.. 2020. 6. 19.
[flutter] Flexible Flexible의 fit 속성 - FlexFit.tight: 아래 child의 높이가 뭐든 상관없이 다른 Flexible과 같은 비율을 차지하게 된다 import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; class MyWidget extends StatelessWidget { @override Widget build(BuildContext context) { return Column( children: [ Flexible( flex: 1, fit: FlexFit.tight, //아래 child의 높이가 뭐든 상관없이 다른 Flexible과 같은 비율을 차지하게 된.. 2020. 6. 18.
[flutter] Future, 그리고 async await Flutter를 시작한 지 얼마되지 않은 개발자분들 중 필자같이 Future와 async await의 관계 혹은 차이에 대해 헷갈리는 분들이 있을 수 있다. 그 관계, 그리고 차이에 대해 예제와 함께 알아보겠다. 핵심은 다음과 같다 1. Future함수, async함수들을 모두 await하지 않았을 때 2. Future함수를 await! 3. async함수를 await! 4. Future함수를 갖고있는 변수의 Type결정(Future형 vs T형) 기본적으로 사용하는 예제는 다음과 같다 void main() { print('Main program: Starts'); printFileContent(); print('Main program: Ends'); } printFileContent() { Future.. 2020. 6. 18.
[flutter] Stack 에서 center horizontal 구현 1. 배경 이미지 위에서 텍스트들을 구현해야 할 일이 생겨 Stack을 사용하였는데 맨 위 중간(center_horizontal)에 제목을 구현해야했다. Stack의 children 안에서 어떤 Widget을 사용해야 Stack 안에서 center-horizontal을 구현할 수 있을까 2. 개념 Align: https://www.youtube.com/watch?v=g2E7yl3MwMk 3. 해결 Stack( . . ., Align( alignment: Alignment.topcenter, child: Container( margin: ..., child: [위젯] ) ) ) 이렇게 Stack안에서의 center_horizontal를 구현할 수 있다. 2020. 6. 16.
[flutter] CupertinoButton 사이즈 조정하기 1. 배경 CupertinoButton의 사이즈를 조정하려면 어떻게 해야할까. 2. 개념 CupertinoButton은 defualt로 설정되어있는 최소 사이즈(minSize)와 패딩값(padding)이 상당해서 처음 사용하는 사람들은 그 사이드를 조정하는데 애를 먹는다. 2. 해결 CupertinoButton 사이즈를 육안으로 설정하기 위해서는 1) 최소사이즈를 최대한 줄여주고(최대한 작게 0으로 설정하면 좋다) 2) 버튼 그 모습 자체 갖고있는 공간 외에 버튼이 차지하고 있는 공간 => padding값을 없애주어야 한다. 예시: CupertinoButton( minSize: 0.0, padding: EdgeInsets.all(0), child: Icon(...), onPressed: () {...},.. 2020. 6. 16.
[flutter-error] 에러 [SEVERE] Conflicting outputs were detected and the build is unable to prompt ... 해결 1. 배경 flutter에서 통신에서 가져오는 데이터의 모델에 대해 json 모델의 자동 직렬화를 위해 @JsonSerializable 를 사용하는데 factory [Model].fromJson(Map json) => ...); 에서 수동으로 일일이 매칭하는 것이 아닌 build_runner에게 맡기고 factory [Model].fromJson(Map json) => _$SearchFromJson(json); 이렇게 _$SearchFromJson을 넣고 flutter pub run build_runner build 명령어를 입력하면 build되면서 json파일의 직렬화 과정의 코드가 자동으로 생성된다. 이 과정에서 [INFO] Found 1 declared outputs which already exi.. 2020. 6. 14.
[javascript] 문자열 Byte단위로 자르기 1. 배경 어플리케이션의 ui를 고도화 하다보면 거쳐야 하는 자잘한 관문들이 굉장히 많다. 그 중 하나가 바로 텍스트의 줄바꿈이다. ui에서 제한된 텍스트 상자 안에 임의의 길이의 텍스트가 들어가기 때문에 적절한 크기로 줄바꿈을 해주지 않으면 보기에 상당히 불-편해 보일 수 있다. 개행(줄바꿈)도 단순히 음절의 개수(subString)으로 자르면 안된다. 영어와 한글은 낱말 하나의 Byte크기가 다르기 때문에 같은 개수의 subString으로 자를 시 영어는 같은 낱말갯수의 한글 길이의 반 정도 되는 위치에서 줄바꿈이 되는 현상을 초래한다. 결국 낱말의 개수가 아닌 Byte의 크기를 단위로 잘라야 하는 것이다. 2. 문제 그렇다면 한 string값을 특정 Byte 크기만큼에서 자르려면 어떻게 해야할까 3.. 2020. 6. 9.
[flutter] 에러명: "No file or variants found for asset: ~" 해결 1. 배경 나의 플러터 프로젝트가 가끔 No file or variants found for asset: assets/ 라는 에러를 내뱉으면서 프로젝트의 assets의 파일들을 불러오지 못하는 경우가 있다. 여러 해결하는 경우의 수가 있지만 assets폴더 안에서 폴더링했을 때의 상황에 대해서 대표적인 해결책 하나를 살펴보자 2. 해결 pubspec.yaml안에서는 띄어쓰기도 조심해야 한다. 필자의 경우 이렇게 assets폴더를 폴더링 해놓은 상태에서 pubspec.yaml 파일을 보면 이렇게 설정을 해놓아야 한다. 포인트는 - assets/icons/ // 총 2번의 띄어쓰기(맨처음, 하이픈 뒤에)가 들어가며 마지막은 /로끝나야 한다 를 유념해야 한다 2020. 6. 3.
[Docker] 내 컴퓨터의 디렉토리 -> docker container에 복사 run의 -v 옵션 사용 docker container run -d -v [내 PC 디렉토리]:[container 디렉토리] [image명] 2020. 5. 31.
[Docker] container을 run, start 했을 때, 바로 꺼지는(Exitted) 이유 1. 배경 1) container를 run, start했을 때, 결과가 나오고 바로 Exitted되는 이유 도커의 이미지로 centos:7 배포판을 내려받고(pull) centos의 /bin/cal 의 캘린더를 실행시킨다고 해보자 centos:7 을 내려받고 apple@appleui-MacBookPro ~$ docker image pull centos:7 apple@appleui-MacBookPro ~$ docker image ls 7: Pulling from library/centos 524b0c1e57f8: Pull complete Digest: Status: Downloaded newer image for centos:7 docker.io/library/centos:7 apple@appleui-Ma.. 2020. 5. 30.
[Docker] Docker '이미지'와 '컨테이너' 차이 인프라 스트럭쳐 관점으로 본다면 보면 이미지는 실행파일, 컨테이너는 프로세스 1. 이미지 - 서비스 운영에 필요한 서버 프로그램, 소스코드, 컴파일된 실행파일을 묶은 형태. 즉, 프로그램(데몬)을 직접 구동시켜야 한다. - 저장소에 올리고 받는것은 이미지 : push and pull - 이미지를 실행한 상태. 2. 컨테이너 - 컨테이너는 이미지를 이미 실행한 형태 - 이미지(Docker에서는 베이스 컨테이너로 명명)로 여러개의 컨테이너를 만들 수 있다. - 베이스 컨테이너로 여러개의 애플리케이션 컨테이너를 만들 수 있다. 2020. 5. 29.
[etc] 카카오 "ip mismatched! callerIp=xxxxxxxx. check out registered ips." 에러 해결 1. 배경 역시 개발자는 구글링하기 전에 공식 문서를 먼저 뒤져야 한다. Node.js에서 카카오 연동 로그인 구현 중 "ip mismatched! callerIp=xxxxxxxx. check out registered ips." 의 에러가 발생하였다. 분명히 [내 애플리케이션] > [플랫폼] 에 내 퍼블릭 ip를 등록해서 저번달만 해도 됐던 기능이 갑자기 안되서 이유를 찾을 수 없었다. 2. 해결 카카오 개발환경이 업데이트되면서 방식이 바뀐 탓이었다. 접근하고자 하는 나의 ip 등록을 [내 애플리케이션] > [플랫폼] 뿐만 아니라 [내 애플리케이션] > [고급설정] > [허용 IP 주소] 에도 등록해줘야 한다. https://developers.kakao.com/docs/latest/ko/referen.. 2020. 5. 27.
[docker-error] is docker daemon running? 에러 해결 1. 배경 컨테이너를 껐다켰다 하는 과정에서 갑자기 모든 docker command들에 대해 is docker daemon running? 하는 에러를 받게 되었다. 2. 해결 위의 문제는 말 그대로 도커가 실행되고 있는지 확인하라는 문구이다. 백그라운드에서 실행되고 있었던 Docker Desktop이 튕길 수가 있다. 상태창에 도커아이콘이 사라졌다면 다시 도커 응용프로그램을 통해 재실행하면 정상적으로 작동한다. 2020. 5. 26.
[MySQL] RDS에 서버를 둔 MySQL의 Default Charset를 utf8로 설정하기 1. 배경 필자는 MySQL을 Workbench를 이용해서 관리한다. 관리를 하면서 procedure나 trigger를 사용할 때 utf-8의 문자가 들어가는 상황들이 생기면 한글대신 ?가 들어가는 등 여러 문제가 생겨 결국 일일이 ~~~charset utf8 를 뒤에 붙여줘야 한다. 물론 default charset으로 utf8로 설정하는 방법이 있다. My.ini 나 My.cnf를 찾아서 해당 프로퍼티를 추가해주는 방식이 있다. 그러나 이는 나에게 먹히지 않는다. 2. 개념 RDS로 MySQL 서버를 빌려서 운영하는 경우는 내 컴퓨터의 My.ini를 고친다고해서 설정되지 않는다. RDS안에서 해결방법을 찾아야한다!! 3. 해결 방법 RDS의 파라미터 그룹에서 해당하는 파라미터의 파라미터 편집으로 들어.. 2020. 5. 25.
[MySQL] Forward Engineering 하는 도중 에러 해결 1. 배경 데이터베이스 서버를 옮기려고 기존 데이터베이스의 erd를 따서 새로운 MySQL서버에 Forward Engineering 을 하는데 자꾸 Executing SQL script in server ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VISIBLE, CONSTRAINT `fk_Compras_Personas` FOREIGN KEY (`p 라고하는 에러가 생겨 진행을 못하고 있었다. 2. 개념 위의 ERROR: Error 1064: You have an error i.. 2020. 5. 25.