앱을 만들며 남긴 작업 노트입니다. 대부분은 문서와 다르게 동작하는 프로토콜에 대한 것이고, host 나 현장 장비가 실제로 무엇을 돌려주었는지를 측정한 기록입니다.
최신 글이 위에 옵니다.
증명사진·신분증 규격 비율로 사진을 직접 자르고, 온라인 제출용 413×531 파일이나 4×6 인화 배치로 저장하는 증명사진 앱. 신분증 용도는 원본 배경을 그대로 둡니다.
한국어·영어 명함을 기기 안에서 읽고 이름·회사·직함·전화번호를 칸별로 확인한 뒤, 연락처 앱에 추가하거나 vCard로 공유하는 명함 스캐너.
한국어·영어 영수증을 기기 안에서 읽고, 상호·날짜·금액·통화를 직접 확인한 뒤 확정하는 영수증 스캐너. 합계는 통화별로 따로 내고, 확정 기록은 CSV로 공유합니다.
증명사진은 서버에 올리지 않고 폰에서 규격에 맞게 자를 수 있지만, 앱이 하는 것은 얼굴이 한 명인지 확인하고 가로세로 비율을 유지하며 해상도와 파일 크기를 검사하는 것뿐이고 머리 길이·자세·배경 규정은 사용자가 확인합니다. 공식 규격, 크롭 방식, 저장 결과, v1의 제약을 정리했습니다.
인식한 값을 모두 확인할 추정값으로 다루면 서버도 연락처 권한도 없이 명함 사진을 Android 연락처까지 옮길 수 있습니다. 연락처 QR이 인쇄 내용과 다를 때 검토 화면이 보여 주는 것, 연락처 앱에 실제로 넘어가는 값, 범위 밖의 것을 정리했습니다.
영수증 인식은 폰 안에서 끝낼 수 있지만 "기기 안에서"는 인식 단계에만 해당합니다. 촬영부터 확정 기록까지의 흐름, 이미지와 대조해 확인할 값, 월 합계와 CSV 에 들어가는 것, v1 의 제약을 정리했습니다.
휴지통과 디스크 정리로는 안 잡히는 큰 파일을, WinDirStat 의 트리맵에서 면적으로 한눈에 찾는 방법입니다.
증여세 면제한도 5천만원은 돈을 주는 사람 한 명당이 아니라 부모와 조부모를 합친 금액이고, 기간은 돈을 받은 날부터 거꾸로 센 10년입니다. 결혼이나 출산이 있으면 1억원을 따로 공제받아 최대 1억 5천만원까지 세금이 없습니다.
보호한도 1억원은 금융회사별로 정해져 있지만 그 위에 조합할 여지가 남아 있습니다. 같은 은행 안에서도 퇴직연금·연금저축은 별도로 1억이고, 농협은행과 지역 농협은 보호 주체가 다른 기관이며, 우체국은 한도가 없습니다. 대신 1억은 원금이 아니라 원금과 이자를 합한 금액입니다.
가상자산 과세는 2027년 1월 1일 이후 파는 것부터 시작합니다. 이미 가진 코인은 2026년 12월 31일 시가와 실제 매입가 중 큰 금액을 산 값으로 보므로, 올해 말까지 오른 부분은 세금과 상관이 없습니다. 연 250만원을 공제하고 남은 금액에 20%가 적용됩니다.
윈도우에도 apt 같은 설치 도구가 있습니다. 기본 내장된 winget 을 축으로 Chocolatey·Scoop 을 언제 쓰는지 정리했습니다.
목돈을 몇 달만 굴릴 때는 1년 만기로 넣고 깨는 대신 처음부터 그 기간으로 가입기간을 잡아야 합니다. 중도해지는 수수료를 떼는 것이 아니라 이자율 자체가 바뀌는 것이고, 은행 앱은 12개월을 먼저 보여줍니다.
2027년 공무원 보수 3.9% 인상은 봉급표의 본봉에만 적용되는 공통인상률입니다. 호봉별 증가액을 계산하고, 9급 초임 300만원이 왜 이 인상률만으로는 부족한지 검산했습니다.
톤틴연금의 늘어난 연금액은 먼저 계약을 떠난 사람의 적립금에서 나옵니다. 구조와 수령액 비교, 그 대가로 포기하는 것을 정리했습니다.
Makefile 에 빌드와 무관한 명령을 넣어 폴더별 명령 목록으로 씁니다. target 이 그대로 도움말이 되는 패턴과 윈도우 함정 세 개.
탐색기와 터미널은 잘하는 일이 다릅니다. 어느 쪽을 고를지가 아니라, 오가는 비용을 없애는 다리 세 개를 만드는 이야기.
챗봇 창과 터미널 에이전트의 갈림길은 결과가 대화로 남는지 파일로 남는지입니다. 터미널 쪽을 고르면 만들어 둔 명령이 그대로 쓰입니다.
alias 가 왜 유용한지부터, if 문과 폴더 이동에서 막히는 지점까지. 함수와 스크립트 파일로 옮겨야 할 때를 가르는 기준.
파킹통장 금리를 직접 조회하는 공식 창구 두 곳과, 최고금리 숫자에 가려진 한도·우대조건·세후 실수령을 읽는 기준을 정리했습니다.
IRP 계좌 개설 전에 알아야 할 900만원 합산 한도의 구조와 55세 이전 해지 시 환급액보다 더 내야 하는 세금, 연금저축과 나눠 넣는 이유를 정리했습니다.
조기재취업수당은 재취업 전날 기준으로 소정급여일수를 절반 이상 남겨야 받습니다. 판정 기준과 금액 계산, 절반을 남기고도 탈락하는 여섯 가지 경우를 정리했습니다.
미국 증시 개장 시간은 한국 시간으로 22시 30분과 23시 30분 두 가지뿐이며, 2026년 전환일과 휴장일, 12월 6일 예정인 야간 세션까지 정리했습니다.
ln -s 가 링크 대신 복사본을 만드는 이유와, Git Bash 에서 진짜 심볼릭 링크를 쓰기 위한 네 단계 설정.
빌드를 걸어 둔 채 창을 닫아도 작업이 계속 돌고, 나눠 놓은 화면 구성 그대로 다시 불러오는 설정.
리더 단축키가 스무 개를 넘으면 설정과 기억이 어긋납니다. 키 정의를 표 하나에 모아 도움말까지 같이 만드는 방법.
퇴직금은 마지막 월급이 아니라 퇴직 직전 3개월 평균임금으로 계산합니다. 직접 검산하는 순서와 지급 기한·지연이자의 법적 근거를 정리했습니다.
AI 가 잘하는 것은 판단이고 프로그램이 잘하는 것은 반복입니다. 둘을 가르는 기준 하나와, 프로그램 쪽 일을 AI 로 도구화하는 방법.
설정 파일 하나로 한글 폭 문제와 화면 분할과 셸 전환을 정리한, 제가 실제로 쓰는 WezTerm 설정 전체.
worktree 를 병렬 작업 슬롯으로 쓰고, 끝에 스크립트 한 줄로 전부 일렬 병합하는 설계.
브랜치 전환마다 stash 하고 빌드를 다시 돌리는 낭비를, worktree 명령 세 개로 없애는 방법.
CLAUDE.md 와 AGENTS.md 를 복제하지 않고, 원본 하나를 가리키게 배치한 뒤 한 파일 안에서 에이전트별로 갈라 쓰는 방법.
Bluetooth 키보드는 Unicode 문자열이 아니라 키를 보냅니다. 음절을 두벌식 자모 키로 분해하고 상대 기기의 한글 IME가 다시 조합하는 원리를 설명합니다.
PC 프로그램 없이 발표를 조작하는 표준 키 다섯 가지와 focus·절전·단방향 HID 때문에 명령이 빗나가는 경우를 정리합니다.
폰 트랙패드가 상대 포인터 이동, 마우스 3버튼, wheel과 가로 스크롤용 Shift+wheel report가 되는 Bluetooth HID 동작 원리입니다.
TCP·mDNS·SSDP·WSD·NetBIOS·제조사 단서를 결합하되 약한 근거 하나를 장비 identity로, 무응답을 장비 부재로 오해하지 않는 방법입니다.
로컬 /24에서 선택한 포트를 찾고, 발견 링크에서 자격증명을 분리하고, 최초·변경 호스트키를 인증 전에 확인하는 과정입니다.
SSDP 발견, 사용자가 승인한 SSAP 페어링, 별도 포인터 socket과 TV가 깊은 대기에 들어가기 전에 저장한 MAC으로 수행하는 Wake-on-LAN을 설명합니다.
UDP 2007 브로드캐스트 한 번이면 같은 대역의 LS PLC 가 자기 주소를 알려줍니다. 대역 전수 스캔이 필요 없습니다. 무엇을 보내고, 아무것도 응답하지 않을 때 무엇을 확인해야 하는지.
포트 102·502·44818·9600·5007·48898 이 뜻하는 것, 포트 번호가 왜 답이 아니라 후보인지, 그리고 발견 도구가 어디서 멈춰야 하는지.
세 가지입니다. 앱이 실제로 부딪히는 것이 그 셋이기 때문입니다.
폰이 키보드·마우스로 광고될 때 host 에 실제로 무엇이 찍히는가 — report descriptor, 눌린 키 상태, 그리고 한글을 완성 음절이 아니라 자모 keystroke 로 분해해 보내야 하는 이유.
낯선 대역에서 무엇이 응답하는지 식별하는 방법: 어떤 포트가 어떤 프로토콜을 뜻하는지, 산업 장비가 발견 요청에 어떻게 답하는지, 그리고 스캔을 능력이 아니라 안전 때문에 어디서 멈춰야 하는지.
장비가 계획에 동의하지 않아 기획을 접은 자리들. 실패한 시도도 함께 적습니다 — 기능이 아니라 측정이 요점이기 때문입니다.