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

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

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

Flutter 7

[GITHUB / VSCode] 개발 중간에 github 에 올리기

급하게 시작하다 보면 꼭 중간에 git 등록 하지 않았던게 영 찜찜 할때가 있다. 중간에라도 등록할라 치면 이미지처럼 복잡하기만 하고...겁먹지 말고 원격지 백업은 항상 신경쓰고, 반드시 백업해주자.왼쪽의 변경 사항은 거의 대부분이 Flutter framework (외부패키지) 관련 커밋들이다.VSCode에서 프로젝트 루트가 아닌, Flutter SDK나 workspace 전체를 저장소로 인식할 때 이런 현상이 자주 발생하고,외부 의존성 (ex: .pub-cache, .dart_tool 등)이 git 관리 대상에 포함되어 있을 경우 위와 같이 git 추적 목록이 과도하게 많아질 수 있다.일단, 정리를 하려면 다음과 같이 진행해 보기 바란다.- 올바른 프로젝트 폴더에서 git init 수행 : Flut..

Tech Story 2025.06.05

[Flutter / SQLiTE]SQLiTE의 장단점 및 Flutter와 함께 사용 시 주의사항

SQLite란 무엇인가?SQLite는 별도의 서버 프로세스 없이 작동하는 서버리스(Serverless), 자기 완결형(Self-Contained), 트랜잭션 안전(Transactional) SQL 데이터베이스 엔진입니다. SQLite 데이터베이스는 하나의 파일로 구성되어 관리가 용이하며, 임베디드 시스템, 모바일 애플리케이션, 소규모 데스크톱 애플리케이션 등 다양한 환경에서 널리 사용됩니다.SQLite의 역사SQLite는 2000년에 D. Richard Hipp에 의해 개발되었습니다. 원래는 미 해군의 함선에 탑재될 소프트웨어에 사용하기 위해 개발되었으며, 상업적 및 개인적 용도로 자유롭게 사용할 수 있는 퍼블릭 도메인 소프트웨어입니다. 시간이 지나면서 SQLite는 단순함, 이식성, 안정성 덕분에 많은..

Tech Story 2025.06.01

[ 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

[ 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

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

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

Tech Story 2023.12.17

[ 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

[FLUTTER] Background 처리

프로그램 개발 시 백그라운드 처리가 필요한 경우가 무척이나 많다.실시간 위치정보나 Notification, FCM 같은 경우가 특히 그러하다.그런데 Debugging Mode에서는 문제가 없었는데 스토어와 마켓에 올리기 위해 Release Mode로 빌드했더니, Release Mode에서는 백그라운드 처리가 정상적으로 되지 않았던 것이다. 개발환경의 Version 문제 등 놓친 부분이 있기도 하겠으나 양 진영의 플랫폼은 배터리 관리에 무척이나 신경쓰고 있었던 것 같다.개발 중에는 Debugging Mode로 내 컴퓨터와 폰을 USB로 연결해서 테스트(Logger 확인을 해야 하므로…)하기 때문에, 화면이 꺼질일이 없었고 테스트 목적으로 화면을 끄더라도 USB연결로 인해 배터리가 충전 중 이었으니, 백그라..

Tech Story 2023.08.04