오래된 프로그래머의 요즘 이야기

그리고 소소한 일상들...

허니의 소소한 일상들이 켜켜이 쌓여가고......

Tech

more

[ Flutter / Python ] 좌표 (위도, 경도) 값으로 국내/해외 판단

요즘 위치정보 관련한 나만의 프로젝트를 진행하고 있는데 POI, Geocoding, Reverse Geo, 경로찾기 등 지도 위에서 할수 있는 많은 기능들이 필요한 상황이다. 그중 국내 POI정보는 우리나라 지도제공업체가 너무도 좋은데 결정적으로 무료 조회건수를 넘어가면 유료로 사용해야 하는 기능들이다. (현재 Naver, Kakao, SK, V-World 이렇게 사용해 봤는데 개인적으로 V-World API 가 가장 좋은 것 같다. 정부에서 제공하는 API 서비스이며 내게 필요한 서비스들은 거의 무료로 이용이 가능하다.) 다국어 버전을 지원하려고 하다보니, 국내 지도에서 필요한 POI검색, Geocoding, Reverse Geo 부분은 V-World API를 사용하고 우리나라를 제외한 모든 국가에서는..

Tech Story 2024.01.22 0

[ SQLiTE ] Local DB Update process (2)

이전글 : [ SQLiTE ] Local DB Update process (1) 현재까지 Flutter 로 만든 앱들의 동작 환경을 살펴보면 휴대폰 내부에서는 SQLiTE 를 사용하고, 서버는 주로 Docker 로 구축한 MariaDB (또는 MySQL)로 되어있다. 서버와의 통신은 Python 으로 만든 RestAPI 호출로 운영하고 있으며 SSL 적용한 WEB Server 도 컨테이너로 돌아가고 있다. (참고 : [Environment] 개발 환경에 대해... ) 처음에는 Database Update를 위해 효율 보다는 빠른 구축이 먼저였기에 서버의 API를 통해 버전번호를 체크/비교하면서 변경된 데이터를 조회해 온 후 휴대폰 내부의 SQLiTE에 Insert 와 Update 쿼리를 사용해 업데이트를..

Tech Story 2023.12.22 0

[ SQLiTE ] Local DB Update process (1)

일전에 지자체에서 운영하는 Android 와 iOS 앱을 개발해준 적이 있다. 지자체 서버에서 제공하는 API를 호출하고 그 결과를 앱에 표현해 주는 앱인데 API호출 회수를 최소화 하기 위해 대부분의 데이터는 휴대폰의 SQLiTE 에 저장하고 사용했다. 또한 서버와의 동기화(Synchronization)를 위해 Update가 필요한 테이블별 Version No를 Check하여 Local 과 Server 의 DB 동기화를 진행해 왔다. 고도화 작업까지 완료된 꽤 긴 기간동안 작업했던 앱이었기에, 초기의 앱과 비교해 보면 디자인부터 기능까지 무척이나 많은 변화를 간직하고 있는 앱이다. 오늘은 수많은 변화 중 Database 의 Table data Update 관련한 몇가지를 얘기하고자 한다. 우선 서버는 ..

Tech Story 2023.12.22 0

[ Flutter ] Class, List, Map 등의 복사 (깊은복사, 얕은복사)

옛날에 한참 C, C++ 코딩할때는 포인터를 사용하는 Call by reference, Call by value 요렇게 2가지 타입 중 적절한 방법으로 자료처리를 해던 기억이 있다. 그때 당시는 주소참조방식 과 값참조방식 뭐 이렇게 이해하고 있었는데, 요즘은 이를 지칭하는 표현(단어)도 많이 바뀌어 있는 듯 하다( 내가 옛날사람이긴 한가 봐. ㅠㅠ). 플러터나 자바쪽에서는 깊은복사 와 얕은복사라는 표현을 주로 사용하고 있던데 개인적으로는 직관적이지 않아 아직도 헷갈리는 단어다. 그래서 요 부분에 대한 개인적인 정리 차원에서 블로그에 남겨두고자 한다. Flutter(DART)에서 class, list, map 같은 객체(Object)를 다루다가 값이 이상하다는 생각이 들 때가 있다. 필자의 경우 코딩하면서..

Tech Story 2023.12.17 0

[ Environment ] 개발 환경에 대해...

MS-DOS때 부터 프로그래머의 길을 걷기 시작해 오늘날까지, 주로 접해왔던 언어는 C, Delphi(Object pascal), Visual Basic, Shell, SQL, Python, JAVA 찔끔, PHP랑 ASP도 찔끔, 최근에는 Flutter(dart) 를 주로 사용한다. Delphi는 Ver1.0때 부터 꽤 오랜기간 사용했었고, 지금까지도 그래왔지만 DB를 사용하지 않는 프로젝트는 거의 없다고 봐야 하니 SQL은 꾸준히 손 놓을 수 없는 언어이다. 과거에는 C/S 환경의 3Tier 환경이 대세였기에 규모가 좀 되는 프로젝트는 Unix 와 Oracle(Pro-C)은 필수였기에 자연스레 손에 익혔던 것 같다. 옛날얘기는 이쯤에서 접고...... 요즘 내가 활용하는 개발환경에 대해 잠깐 얘기해 ..

Tech Story 2023.12.15 0

Life

more

어린 시절 소중한 벗들과 송년 모임

연말이면 항상 지나온 1년을 돌이켜 보면서 다가올 1년을 준비하는 때여서 그런가? 저녁마다 모임도 많고 정신없이 바쁠때이다. 많은 모임들 가운데 가장 기다려지고 반가운 모임은 역시 꼬꼬마 어린 시절 중딩때 부터 의 추억을 공유하고 있는 동네 친구들이 아닐까 싶다. 지금은 다들 대학에서, 기업에서, 자영업에서 각자가 선택하고 준비한 인생을 최선을 다해 살고 있다. 연말 요맘때 즈음 이렇게 만나면 각자의 마음속에 간직하고 있던 추억의 단편들을 하나씩 하나씩 꺼내어 서로 나누고 공유하게 된다. 이렇게 소중한 친구들과 함께하는 저녁 시간은, 다시 다가오는 한해를 헤쳐나갈 자신감이 되기도 하고 힘든 기억이 있었다면 그에 대한 위로가 되기도 한다. 나는 또 이렇게 소중한 추억을 만들고 기억속에 담아 본다.

Life Story 2023.12.22 0

나의 대학시절 문화와 추억의 요모조모

컴퓨터 그중에서도 소프트웨어쪽을 전공했으니 대학때부터 시작해볼까? MS-DOS, 프롬프트, z80, 8088, 80286/386..., 모노크롬, 허큘리스, 5.25inch, 3.5inch, 플로피디스켓, 01410, ATDT, PC통신, 하이텔, 천리안, 나우누리, 베네치아, 모뎀, 사운드블라스터, 옥소리, 도깨비한글, 조합형/완성형한글, 오토마타, 램상주프로그램, 이야기, 하늘소, 핑퐁바이러스, 크리스마스바이러스, 양파바이러스, 백신, 어셈블리, Turbo-C, MASM, Inline-Assembly, Pascal, COBOL, FORTRAN, GW-Basic, DBase+, CLIPPER, CRT, 흑백/컬러모니터, 도트프린터(80,136), 아래한글, 하나워드(군대에서 사용), 용산전자상가(내가 ..

Life Story 2023.12.19 0

나는 Boss 인가? 아니면 Leader 인가?

오래전 직장생활 시작 초기의 나에게, 보스 와 리더의 구분 기준은 내게 잘해주는 상사와 그렇지 않은 상사. 이렇게 두 부류로 나누었던 것 같다. 이후로 세월의 강을 따라 흘러오다 문득 뒤돌아 봤더니, 어느덧 희끗해져가는 모습과 함께 누군가의 보스 또는 리더가 되어 있었다. 나는 과연 Boss인가 아니면 Leader 인가? 조직의 규모와 팀원들의 정서, 그리고 그들의 능력치, 본인의 책임감, 때론 과감하면서도 섣부르지 않은 행동에 기인한 신중함 그리고 결단력 등등... 많은 부분을 헤아려 고민해봐야 할 문제가 아닐 수 없다. 흠.... 내가 생각하는 나는... . . . . . Boss(30%) Leader(50%) 정도? 그럼 나머지 20% 는....... 상황에 따라 Boss 가 되거나 Leader가 ..

Life Story 2023.12.12 0