플러터에서 위치정보 사용하는 법, How to use location in flutter

이 글은 로케이션, Location 패키지를 통해서 사용자의 위치정보를 사용하는 법을 다룬 글입니다. 많은 어플리케이션의 기획에서는 위치정보를 필요합니다. 예를 들어, 근처에 있는 ATM기의 위치나, 음식점의 정보를 알기 위해서는 내 위치를 알아야하죠. 사용자가 본인의 위치정보를 사용할 수 있게 하려면 어떻게 해야할까요? Location 사용자가 본인의 좌표를 얻기 위해서 사용하는 패키지가 바로 로케이션, location입니다. pubspec.yaml에서 디펜던시를 추가한 다음 설치를 진행합니다. dependencies: location: ^4.2.0 권한 요청 먼저 디바이스의 위치 정보를 얻기 위해서는 권한, Permission을 받아야합니다. Android project_dir/android/app/..

Flutter 2021.08.25 0

Service Locator Pattern, 서비스 로케이터 패턴

이 글은 서비스 로케이터 패턴에 대해서 다루는 글입니다. 이 글에서 다루고자 하는 내용은 세 가지로 첫 번째는 서비스 로케이터에 대한 소개와 예제코드를 이용한 설명이고, 두 번째는 의존성 주입을 예제 코드를 통해서 설명한 후 서비스 로케이터와 비교하는 것이고, 세 번째는 제가 서비스 로케이터를 사용하는 방법을 소개하는 것입니다. 서비스 로케이터 패턴(Service Locator Pattern)이란? Service Locator 패턴은 마틴 파울러가 블로그 글에서 제시한 패턴입니다. 이 패턴의 목표는 모듈화 수준을 높이는 것입니다. 클라이언트와 인터페이스사이의 의존성을 제거하는 방식으로 모듈화 수준을 높이는데요. 우리는 유연한 코드를 짜기 위해서 인터페이스를 자주 사용합니다. 그렇지만 인터페이스를 사용하다..

Computer Science 2021.08.23 0

Nginx 로드밸런싱 설정

이 글은 Nginx 로드밸런싱 방법을 적은 글입니다. 이 글에서 다루고자 하는 내용은 크게 두 가지로 첫 번째는 로드밸런서의 정체와 사용하는 이유이고, 두 번째는 Nginx를 로드밸런서로 운용하는 방법입니다. 로드밸런서의 정체 로드밸런서는 번역하면 부하 분산기입니다. 말 그대로 부하 분산을 위한 프로그램 혹은 하드웨어입니다. 로드밸런서의 역할은 가상의 주소를 향한 요청을 여러 서버에 분배하는 것입니다. 로드밸런서를 사용하는 이유 로드밸런서가 사용되는 이유를 크게 분류하면 두 가지가 있습니다. 첫 번째는 부하를 분산하여 하나의 서버의 부하를 조절할 수 있다는 점, 두 번째는 고가용성으로 두 개 이상의 서버를 운영하여 한쪽 서버가 장애가 생길 시 다른 쪽에서 해당 서비스를 운영할 수 있는 구성을 통해 운영 ..

Nginx 시리즈 2020.04.14 1

ElasticSearch 인덱스 필드 길이 제한 늘리기

안녕하세요. 정우현입니다. 오늘은 위의 에러를 해결하는 방법을 적은 글을 씁니다. 원인 로그스태시를 통해서 서버 로그를 엘라스틱서치에 꾸준히 넣는데, 로그의 길이가 긴 경우의 로그가 정상적으로 저장이 안되고 있는 듯해서 문제를 찾아봤더니 필드의 길이제한을 넘어가는 경우 저장을 할 수 없었습니다. 해법 그래서 이 문제를 해결하기 위해서 방법을 찾아봤습니다. 첫 번째 방법은 인덱스 하나에 대하여 설정을 변경하여 하나의 인덱스에만 필드의 길이제한을 변경하는 것이고, 두 번째 방법은 템플릿을 적용하여 특정 조건의 인덱스에 대해서 필드의 길이제한을 변경하는 방법입니다. 첫 번째 방법은 PUT /_settings { "index.mapping.total_fields.limit": 2000 } 이라는 명령을 키바나의..

ELK 2020.02.28 0

다트 자료형, Dart Built-in Types

안녕하세요 오늘은 다트 자료형에 대해서 다뤄보겠습니다. 자료형이란 자료의 형식입니다. 자료의 형태는 많은 종류가 있는데 아래 코드에서 먼저 보고 지나가도록 하겠습니다. int number = 1; // 정수 double detailKg = 87.3; // 실수 String myName = 'mayleaf'; // 스트링 bool amIMayleaf = false; // 진리값 List numbers = [1, 2, 3, 3, 5]; // 정수를 담은 리스트 Set avatarset = {1, 6, 3, 4}; // 정수를 담은 집합 Map json = {'black': 'out', 'get the job': 'done'}; // 맵 이렇게 수많은 자료형들이 존재합니다. 숫자 , numbers 먼저 숫자들..

Dart 2021.08.29 0