티스토리 뷰

월간공부

Monthly-Study) 2021년 12월

Henry95 2022. 1. 2. 08:12
반응형

https://parade.com/1291304/kelseypelzer/new-year-wishes/

새로운 해가 밝았습니다. ㅜ 또 한해가 지나 나이가 들었어요 30살을 향해 너무 성실하게 달려가고있네요 좀 게을러도 될거같은데,,!

크리스마스다 연말이다 이벤트가 많았던 달이어서 또 포스팅을 성실하게 못한거같아요.. 올리고싶은건 상당히 많은데 왜이렇게 시간이 안나는지 모르겠네요

그러고보니 요즘 플러터의 인기가 올라간건지 작년 연초에 올렸던 플러터 관련 포스팅의 조회수가 갑자기 늘어났어요 추측으로는 어딘가에 공유가 된거같은데 ㅎㅎ 크리스마스 이브에 139명이나 저글을 보다니 ,,!

 

아무튼 이번달에 공부한 내용들이자 언.젠.간 포스팅 할 내용들을 적어보자면 아래와 같습니다.

 

1. Flutter Marker Clustering

마커 클러스터링이란 기술은 지도위에 단순하게 마커를 찍는 기술과는 다르다.

zoom in 상태에서 zoom out시 특정 영역의 여러개의 마커가 하나로 합쳐지며 child의 갯수와 데이터를 고스란히 가지고 불러올 수 있어야 한다. 이러한 기술은 이미 여러곳에서 사용되고 지원하며, 네이버 지도에도 JavaScript, Android, IOS 등 SDK가 존재해 손쉽게 사용할 수 있다. 하지만 우리의 Flutter는 아직 국내에는 제대로 지원하는 라이브러리가 없다는것,, 그래서 조사해본 결과 쓸만하게 Google Map 기반을 지원하는 클러스터링 패키지가 두가지가 확인됐다.

https://pub.dev/packages/fluster

 

fluster | Dart Package

A geospatial point clustering library for Dart to help provide spacing between markers in mapping solutions.

pub.dev

https://pub.dev/packages/google_maps_cluster_manager

 

google_maps_cluster_manager | Flutter Package

Simple Flutter clustering library for Google Maps based on Geohash.

pub.dev

위 두가지 패키지를 모두 사용하고 테스트 해본 결과 각자의 장단점이 있었다.

우선 Fluster의 경우 child를 불러옴에있어 정말 '자식' 밖에 불러오지 않았다.. 손자 노드를 불러오지 못한다는것,,

따라서 손자 혹은 그 이하의 노드를 불러오기 위해서는 이진트리 혹은 DFS 방식으로 불러와 사용해야했다. 이건 로직이 좀 번거로울 뿐 큰 단점이 되진 않았다.

google_maps_cluster_manager의 경우 자식 노드는 물론 손자 이하의 노드까지도 손쉽게 불러오는 기능이 있었다. 하지만 위 패키지에 비해 좀 크게 다가온 단점은 cluster의 범위가 너무 넓다는것,, 이부분을 컨트롤할 방법을 찾아봤으나 Git issue에 답변중에 범위를 컨트롤할 수 없다는 뉘앙스의 답변이 달려있는것을 발견해 포기했다.

marker clustering은 여행 어플이라던지 분포도가 필요한 어플에는 상당히 매력있게 다가가는 기술인거같다.

//학부생 시절 외부 스터디를 할때 이 기술을 사용해 sns 어플을 만들었던 팀원들이 생각이 난다. 홍보를 안하다시피해 서버는 내려버렸지만 아이템은참 좋았는데 아쉽긴 하다. ㅎㅎ

 

2. OCR을 위한 이미지 컨트롤

OCR이라고 하면 개발자들 중에서도 생소한 사람들이 있을것이다. 이 기술은 특정 이미지에서 정보를 추출해내는 기술을 의미하는데 사진에서 사람의 얼굴을 인식하기도 하고 아래 사진과 같이 신분증을 인식해 이름, 주민등록번호 등의 정보를 추출해 정보를 자동으로 입력하기도 한다.

 

하지만 위 사진과 같은 기능에는 단순히 OCR기술 외에도 쉽지않은 기술들이 필요하다.

우선 첫번째로는 사각형을 인식해 자동으로 촬영하는 기술이다. 이 기술은 보통 OpenCV라는 기술을 통해 사각형을 인식하는데 이에대한 포스팅은 리멤버라는 회사의 기술블로그에 나름 상세히 나와있었다.(하단링크)

https://blog.dramancompany.com/2019/03/opencv%EB%A1%9C-%EC%8B%A4%EC%8B%9C%EA%B0%84-%EB%AA%85%ED%95%A8-%EC%9D%B8%EC%8B%9D%ED%95%98%EA%B8%B0/

 

리멤버는 어떻게 명함을 정확히 인식할까? : OpenCV 이미지 프로세싱 - DRAMA&COMPANY

리멤버 모바일 애플리케이션의 핵심 기능은 단연 카메라일 것입니다. 명함으로 연결되는 세상을 꿈꾸는 리멤버에게 카메라는 오프라인의 명함을 온라인상의 내 인맥으로 만드는 출발점이기 때

blog.dramancompany.com

두번째로는 이미지의 좌표값을 이용해 네모를 정확히 크롭해서 사용자에게 보여주는 기술이다. 필자는 플러터에서 위와같은 OpenCV 기술을 도입하지 못했기때문에 다른 방식으로 좌표를 인식하고 사각형을 크롭해 가져왔다. 

세번째로는 사용자의 중요한 정보를 가려주는 마스킹 기능이다. 이 기능은 OCR을 구현하다보면 이미지상에서 어떤 정보가 어느 위치에 있는지 좌표로 알려주기 때문에 구현하기가 어렵지는 않았다.

 

만약 이 글을 보는 사람중에서 사각형을 자동으로 크롭하는 기술을 사용해보고 싶은 사람은 아래 패키지를 사용해 보는것을 추천한다. 자료조사중 발견했으나 필자의 기획과는 조금 차이가 있어 도입하지 못했다. 

https://pub.dev/packages/edge_detection

 

edge_detection | Flutter Package

A flutter plugin to detect edges of objects, scan paper, detect corner, detect rectangle. It allows cropping of the detected object image and returns the path of the cropped image.

pub.dev

 

 

3. 기타 

플러터 관련 말고도 공부를 하고싶은게 참 많지만 그것은 2022년의 내가 잘 해줄것이라고 믿는다 ㅎㅎ

우선 지금 진행하고 있는 사이드 프로젝트가 진도가 좀 늦다고 생각이든다 ㅜㅜ 기획이 방대한 만큼 속도를 붙여서 작업하고싶지만 다들 직장인들이라 주말이나 평일 밤에 짬짬히 작업을 하고있어 더디게되는것이 사실이다. 현재 apk 파일을 두번 공유를 했는데 그렇게 큰 진척도가 보이진 않을거라 걱정이 많다. 새해 첫 포스팅은 여기까지 하고 이만 자러가야겠다..

반응형

'월간공부' 카테고리의 다른 글

Monthly-Study) 2021년 11월  (0) 2021.12.01
Monthly-Study) 2021년 10월  (0) 2021.11.01
Monthly-Study) 월간 공부 계획  (0) 2021.09.25
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함