전체 글(300)
-
daum_postcode_search 1.0.0 업데이트
서론daum_postcode_search는 Daum 우편번호 서비스를 Flutter 애플리케이션에 쉽게 통합할 수 있는 패키지입니다. 그동안 패키지는 특정 WebView 라이브러리에 의존하는 형태로 개발되어 왔습니다. 이번 1.0.0 버전에서는 완전히 새로운 아키텍처로 재설계되었으며, 더 이상 특정 WebView 패키지에 의존하지 않는 zero-dependency 패키지로 탈바꿈했습니다.이 글에서는 1.0.0 버전에서 무엇이 변경되었는지, 왜 이런 변경을 결정했는지, 그리고 기존 사용자들이 어떻게 마이그레이션할 수 있는지 자세히 살펴보겠습니다.주요 변경사항1. Zero-Dependency 아키텍처가장 중요한 변경사항은 패키지에서 모든 WebView 의존성을 제거했다는 점입니다.이전 (0.0.3):flut..
2025.10.16 -
macOS Tahoe 26 업데이트 후 SSH 접속이 안되는 경우
[문제 상황]macOS를 Tahoe 26으로 업데이트 한 이후에 ssh로 접속을 하려하니, 다음과 같은 에러가 발생했다. 이번에 OS가 업데이트되면서 open-ssh 버전이 업데이트 된 듯 한데 기존에 사용하던 ssh-config 설정 파일은 자동으로 변경되지 않아서 발생하는 문제인 것 같다. /etc/ssh/ssh_config line 56: Bad key types 'ssh-dss,ssh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519'./etc/ssh/ssh_config: terminating, 1 bad configuration options ssh-rsa는 SHA1 서명 방식이라 기본적으로 비활성화됐고, 클라이언트 공개키 알고리즘(..
2025.09.17 -
앱 초기 부팅 시 Isolate 초기화 실패와 리렌더링
1. 사건의 발단 때는 바야흐로 필요한 앱의 기능 대부분을 만들어가는 시점, 최적화 관련된 문제가 말이 많았다. 정확한 원인은 발견하지 못했지만 초기 부팅시 렌더링 관련해서 리소스를 많이 잡아먹고 있었고, 어디서 렌더링 관련된 문제가 발생하는지 정확히 파악하지 못하고 있었다. 어찌됐건 앱은 출시해야했고 다른 동료분이 앱 초기 부팅 시점에 HTTP 요청을 과도하게 요청해서 문제가 발생한다면, HTTP 요청을 다른 스레드에서 하도록 만들면 되지 않냐는 얘기를 했다. 어찌됐건 당시에는 별달리 뾰족한 방법도 없었기에, 정말 HTTP 요청하는 모듈을 별도 Isolate로 분리했다. 아무튼 Flutter/Dart의 특징에 대해 잘 알고 있는 분도 아니었는데 왜 그런 얘기를 수용했는지 모르겠다. 아마 절박해서 그런..
2025.08.02 -
Fish shell에서 클로드 코드를 실행했을 때 입력이 이상해지는 현상
https://github.com/anthropics/claude-code/issues/35 Bash command timeouts due to shell hangs · Issue #35 · anthropics/claude-codeBug Description Bash commands always timeout with code 143. I use MacOS with fish, tmux, & alacritty. I get the same problem in the default MacOS terminal with bash (without tmux). Environment Info...github.com 클로드 코드를 실행했을 때 레이아웃이 깨지는 건 기본이고, 아무런 입력도 안되고 멈춰있는 증상이 발생..
2025.07.24 -
[Flutter] ListView.builder에서 가변 크기 요소들의 무한 스크롤 구현하기
문제 상황ListView.builder를 사용해서 무한 스크롤을 구현하려고 하는데, 문제는 리스트 내부에 표현해야하는 요소들의 값이 가변적인 높이를 가지고 있다는 점이었다. 별 생각없이 높이로 하드코딩된 값을 지정하고 구현했을 때야 동작이야 하긴 하지만, 태블릿처럼 화면이 커지거나 레이아웃이 변경될 경우에는 하드코딩된 값을 지정하기 어렵다는 문제도 있었다. 이번에는 이런 경우를 대비해서 ListView.builder에 GlobalKey를 할당하고, ListView의 자식 요소의 높이값을 직접 계산하는 방법을 살펴본다.ListView.builder의 자식 요소의 높이가 가변적으로 달라지는 예시로는 다음과 같은 상황이 있다.텍스트의 길이에 따라 카드 높이가 달라지는 경우이미지 비율에 따라 높이가 변하는 경우..
2025.07.10 -
GestureDetector와 InteractiveViewer를 중첩하여 제어하기
이전에 GestureDetector()을 사용해서 제스쳐를 통해 Widget을 제어하는 기능을 구현했었다. 간단하게 PseudoCode를 작성하면 다음과 같은 형식이다.GestureDetector( onHorizontalDragStart: (DragStartDetails details) { viewModel .updateDragStartPoint(details.globalPosition.dx); }, onHorizontalDragEnd: (DragEndDetails details) { viewModel.initializeDragStartPoint(); }, onHorizontalDragUpdate: (DragUpdateDeta..
2025.07.07