[{"data":1,"prerenderedAt":265},["ShallowReactive",2],{"\u002Fblog\u002Ftui-cognitive-bandwidth\u002F:ko":3,"\u002Fblog\u002Ftui-cognitive-bandwidth\u002F-surround:ko":160,"blog-all-posts:ko":161},{"id":4,"title":5,"author":6,"body":10,"date":142,"description":143,"extension":144,"image":145,"locale":146,"meta":147,"minRead":148,"navigation":149,"original":150,"path":151,"pinned":150,"seo":152,"source":153,"sourceUrl":23,"stem":154,"tags":155,"updated":145,"__hash__":159},"blog\u002Fblog\u002Ftui-cognitive-bandwidth.ko.md","TUI는 당신의 인지 대역폭을 죽이고 있다: AI Coding의 '긱 필터'는 깨질 때가 됐다",{"name":7,"avatar":8},"Chen Dahuang",{"src":9,"alt":7},"\u002Favatar.jpg",{"type":11,"value":12,"toc":133},"minimark",[13,28,31,34,37,42,45,52,58,64,67,71,74,81,84,88,94,97,100,104,107,110,113,117,120,123,130],[14,15,16],"blockquote",{},[17,18,19,20,27],"p",{},"핵심 주장은 먼저 ",[21,22,26],"a",{"href":23,"rel":24},"https:\u002F\u002Fx.com\u002Frealchendahuang\u002Fstatus\u002F2087949416808518106",[25],"nofollow","X","에 게시했다. 이 글은 그 완전판이다.",[17,29,30],{},"요즘 AI Coding Agent가 하나같이 TUI를 올린다. 이 풍조에는 Claude Code가 할 몫이 크다. 터미널에서 AI와 대화하며 코드를 쓰는 일을 극한까지 끌어올린 건 사실이지만, 동시에 하나의 미의식과 경로 의존도 함께 만들어냈다. 마치 진짜 고급 Coding Agent는 기본이 터미널 UI여야 한다는 분위기가 됐고, Web 쪽은 오히려 부속물이거나 심지어 '프로그래머답지 않다'고 조롱받는다.",[17,32,33],{},"결과는? 복잡한 TUI부터 만든다. 갖가지 색상, 상태 바, 단축키, 모드 전환. 그리고 나서 '몰입형', '효율적', '프로그래머 존중'이라고 미화한다.",[17,35,36],{},"정말일까?",[38,39,41],"h2",{"id":40},"대화하는-줄-알았는데-사실은-난투극이다","대화하는 줄 알았는데, 사실은 난투극이다",[17,43,44],{},"하루 종일 터미널에 파 묻는 소수에게는 TUI가 확실히 시원하다. 하지만 더 많은 사람에게는 인위적으로 만든 허들이다. TUI로 Agent와 협업하면 당신은 사실 세 가지 일을 계속 하고 있다:",[17,46,47,51],{},[48,49,50],"strong",{},"단축키와 모드를 기억해내기."," 도구마다 키맵 습관이 제각각이다. 신입은 멍해지고, 고참도 도구를 바꾸면 다시 적응해야 한다.",[17,53,54,57],{},[48,55,56],{},"스크롤되는 글자의 흐름 속에서 정보를 찾기."," 상태는 펼쳐서 보여주는 게 아니라 타임라인에 파묻혀 있다. 스크롤과 검색으로 '고고학 발굴'을 해야 한다.",[17,59,60,63],{},[48,61,62],{},"이상한 상태에 빠지지 않았기를 기도하기."," 모드 전환은 눈에 보이지 않는다. 문제가 터질 때까지 자신이 지금 어떤 모드에 있는지 모르는 경우가 많다.",[17,65,66],{},"이제 인터랙션이 아니다. 인터페이스와의 난투극이다.",[38,68,70],{"id":69},"정보-밀도는-정보-효율이-아니다","정보 밀도는 정보 효율이 아니다",[17,72,73],{},"TUI 옹호자들이 가장 좋아하는 단어가 '정보 밀도'다. 하지만 정보 밀도를 극한까지 쌓은 대가는 가독성과 복원력이 최저점까지 짓밟히는 것이다.",[17,75,76,77,80],{},"진짜 효율적인 인터페이스는 ",[48,78,79],{},"상태를 펼쳐서 보여주는"," 인터페이스다. 어떤 작업이 도는지, 어떤 세션이 입력을 기다리는지, 어떤 파일이 바뀌었는지 한 번 훑으면 안다. 모든 걸 단기 기억에 우겨 넣고 머릿속에 '현재 시스템 상태'라는 보이지 않는 지도를 유지하라고 강요하는 게 아니라, 눈과 공간감으로 이해하게 해야 한다.",[17,82,83],{},"사람의 작업 기억은 4~7개 슬롯뿐이다. TUI의 인터랙션 모델은 본질적으로 가장 소중한 인지 자원을 '문제 생각하기'가 아니라 '인터페이스 상태 기억하기'에 쓰게 만든다.",[38,85,87],{"id":86},"게다가-나쁜-습관까지-기르고-있다","게다가 나쁜 습관까지 기르고 있다",[17,89,90,91],{},"더 심한 것은, TUI 생태계가 아주 나쁜 가치 판단을 기르고 있다는 점이다: ",[48,92,93],{},"어떤 도구의 키맵을 다룰 줄 아는지를 능력 그 자체로 보는 것.",[17,95,96],{},"그 결과 사람은 문제를 생각하는 대신 인터페이스에 적응하는 데 막대한 에너지를 쏟는다. 프로그래머의 척도는 '이 단축키를 암송할 수 있는가'가 됐고, '문제를 제대로 분해할 수 있는가'가 아니다.",[17,98,99],{},"좋은 도구는 생각 비용을 낮춰야지, 생각 비용을 '이 인터페이스를 어떻게 조작하는가'로 전가하면 안 된다.",[38,101,103],{"id":102},"web-ui는-빠르고-깔끔할-수-있다","Web UI는 빠르고 깔끔할 수 있다",[17,105,106],{},"Web은 느리고 '네이티브'하지 않다고들 한다. 2026년이다. 그 논거는 진작에 죽었다.",[17,108,109],{},"Web UI는 충분히 빠르고 깔끔할 수 있다: PWA로 설치하면 데스크톱 클라이언트와 거의 차이가 없고, 업데이트도 더 편하다 — 사용자가 수동으로 업그레이드할 필요 없이 새로고침 한 번이면 최신 버전이 된다. 긴 세션, 병렬 멀티태스킹, 작업 상태 시각화. 이것들은 바로 브라우저 DOM의 강점이지 글자 스트림의 강점이 아니다.",[17,111,112],{},"내 메인 셋업은 OpenChamber 같은 Web 인터페이스 + OpenCode 커널이고, 오래 고강도로 썼는데 흔들림이 없다. 굳이 흠을 잡자면 Web 쪽 가끔 있는 자잘한 버그는 장기 사용에 전혀 지장이 없다. 오히려 일부 TUI의 모드 전환에게 몇 번이나 당했다.",[38,114,116],{"id":115},"도구는-사람을-위해-있는-것이지-누가-더-긱인지-증명하려고-있는-게-아니다","도구는 사람을 위해 있는 것이지, 누가 더 '긱'인지 증명하려고 있는 게 아니다",[17,118,119],{},"Claude Code 자체는 강하다. 그건 문제없다. 하지만 'TUI가 정통'이라는 미의식과 경로 의존을 퍼뜨린 건 사실이고, 뒤따라 나온 무리는 더 심하다 — 인터랙션 디자인하기도 귀찮아서 '터미널에 산다'는 것 자체를 고급의 증명으로 치부한다.",[17,121,122],{},"반인간적인 인터랙션을 고급으로 포장한다니, 정말 우습기 짝이 없는 일이다.",[17,124,125,126,129],{},"도구는 사람을 위해 있다. 판단 기준은 언제나 이거 하나여야 한다: ",[48,127,128],{},"작업을 끝내는 총비용을 낮췌는가?"," 인터페이스와 난투극을 벌이느라 에너지를 빼앗긴다면, 아무리 '긱'해도 부채다.",[17,131,132],{},"다음에 Coding Agent를 고를 때는 이 필터부터 벗고 고르자.",{"title":134,"searchDepth":135,"depth":135,"links":136},"",2,[137,138,139,140,141],{"id":40,"depth":135,"text":41},{"id":69,"depth":135,"text":70},{"id":86,"depth":135,"text":87},{"id":102,"depth":135,"text":103},{"id":115,"depth":135,"text":116},"2026-09-09","AI Coding Agent가 앞다투어 TUI를 올리면서 인터랙션을 80년대 터미널 패러다임으로 되밀어 놓고는 '몰입형', '프로그래머 존중'이라고 미화한다. 이 글은 TUI가 인지 대역폭을 체계적으로 떨어뜨리는 세 가지 메커니즘과, Web UI가 왜 정답인지를 해부한다.","md",null,"ko",{},7,true,false,"\u002Fblog\u002Ftui-cognitive-bandwidth",{"title":5,"description":143},"x","blog\u002Ftui-cognitive-bandwidth.ko",[156,157,158],"AI 코딩","인터랙션 디자인","에세이","YzDs61DT614K3QXlnCV99N5MyuEBQteJYjy3jU80VJk",[145,145],[162,171,180,189,195,203,209,216,224,230,237,246,248,256],{"path":163,"title":164,"description":165,"date":166,"minRead":167,"tags":168},"\u002Fblog\u002Fagent-harness-selection","Pi Agent, OMP, Codex, ZCode를 이리저리 만져본 끝에, 내가 마지막으로 OpenCode + OpenChamber를 고른 이유","Agent Harness 선택 회고: GUI 경험, 벤더 종속, 2차 개발 자유도라는 세 가지 기준으로 Pi Agent, OMP, Codex, ZCode를 탈락시키고, 마지막으로 OpenCode 코어 + OpenChamber 인터페이스를 선택했다.","2026-08-06",6,[169,170],"AI Agent","도구 선택",{"path":172,"title":173,"description":174,"date":175,"minRead":167,"tags":176},"\u002Fblog\u002Fcloudflare-broke-stack","2026 인디 개발 베스트 프랙티스: Cloudflare 가난뱅이 올인원 스택","인디 개발자를 위한 무료 기술 스택: 코드는 Codex, 버전 관리는 GitHub, 결제는 Stripe, 프런트엔드는 TanStack Start, 백엔드는 Hono + Workers, 데이터베이스는 D1, 스토리지는 R2, 캐시는 KV — 전부 Cloudflare 위에서 돌아간다.","2026-06-15",[177,178,179],"Cloudflare","인디 개발","기술 스택",{"path":181,"title":182,"description":183,"date":184,"minRead":167,"tags":185},"\u002Fblog\u002Fdeepseek-api-web-search","DeepSeek API에 내장된 웹 검색 — Responses API로 공식 검색을 공짜로 쓰자","DeepSeek가 API 안에 웹 검색을 내장했다: Responses 인터페이스로 deepseek-v4-flash를 호출하고 web_search 도구만 선언하면 된다. 타사 검색 엔진 연동도, 검색 API 키도 필요 없다.","2026-08-05",[186,187,188],"DeepSeek","API","AI 도구",{"path":190,"title":191,"description":192,"date":184,"minRead":148,"tags":193},"\u002Fblog\u002Fdeepseek-v4-flash-review","DeepSeek V4 Flash 정식 버전 핸즈온: 싸고, 빠르고, 1M 컨텍스트, 내장 검색","DeepSeek V4 Flash 정식 버전을 며칠간 깊게 써본 결과: 공격적으로 싸고, 번개처럼 빠르고, 1M 컨텍스트, 공식 내장 웹 검색, 완전 오픈소스. 유일한 약점은 멀티모달 — 하지만 다른 모델을 조합하면 메울 수 있다.",[186,194,188],"모델 리뷰",{"path":196,"title":197,"description":198,"date":175,"minRead":199,"tags":200},"\u002Fblog\u002Ffree-cloudflare","무료 사용자가 Cloudflare를 끝까지 짜먹는 법 — 무료 플랜이 실제로 어디까지 되나?","Cloudflare 무료 플랜이 개인 인터넷 인프라 전체를 지탱할 수 있다: DNS, CDN, Pages, Workers, KV, D1, R2, 이메일, Tunnel, AI Gateway 등.",8,[177,201,202],"무료 플랜","배포",{"path":204,"title":205,"description":206,"date":142,"minRead":199,"tags":207},"\u002Fblog\u002Fmodel-harness-decoupling","순정 Harness가 곧 버전 정답은 아니다: 오픈 모델 시대에는 모델과 Harness를 따로 골라라","Claude 쓰면 Claude Code? 오픈 모델 시대에는 이 직관을 업그레이드할 때다. 순정의 강점은 진짜지만, 좋은 모델을 만드는 일과 좋은 Harness를 만드는 일은 별개의 공학이다 — 이 글은 모델과 Harness를 분리해서 선택할 수 있게 된 이유와 다섯 가지 Harness의 포지셔닝 맵을 정리한다.",[169,208,170],"Harness",{"path":210,"title":211,"description":212,"date":142,"minRead":199,"tags":213},"\u002Fblog\u002Fopencode-productive-stack","안정, 빠름, 고생산성, 저렴함: 내 AI Coding 스택 완전 기록","OpenCode + OpenChamber + DeepSeek V4 Flash 구독 두 장으로 15개 프로젝트를 동시에 돌려도 쿼터는 거의 안 줄었다. 이 글은 Context 프루닝, 계층 메모리, 데스크톱 자동화, 그리고 '역시 원래 조합'이라는 선택의 교훈까지, 내 전체 설정을 모두 까보는 글이다.",[214,156,215],"OpenCode","설정",{"path":217,"title":218,"description":219,"date":220,"minRead":221,"tags":222},"\u002Fblog\u002Fproduct-faxin-principle","발심의 원리: 인디 개발자는 왜 버리는 법을 배워야 하나","왜 출발하는가? 누구를 위해 출발하는가? 도대체 어떤 문제를 풀고 싶은가? 제품의 날카로움은 감히 버리는 것에서 나온다.","2026-06-20",10,[223,178],"제품 사고",{"path":225,"title":226,"description":227,"date":220,"minRead":199,"tags":228},"\u002Fblog\u002Fproduct-pain-vs-itch","사용자가 '대박'이라 해도 들뜨지 마라: 통증 포인트와 가려움 포인트","입으로 하는 좋아함은 한 푼 가치도 없다. 수요를 판단하는 기준은 딱 하나다: 사용자가 무엇을 지불할 의향이 있는가.",[223,229],"수요 판단",{"path":231,"title":232,"description":233,"date":166,"minRead":234,"tags":235},"\u002Fblog\u002Fqwen-vision-for-deepseek","DeepSeek에 멀티모달 더하기: Qwen-3.7-Flash 비전 접근법","DeepSeek V4 Flash에는 멀티모달이 없다 — 이미지 이해는 어떻게 할까? 시장을 조사해 보니 현재 가장 가성비 좋은 방법은 Qwen-3.7-Flash다: 이미지 한 장을 인식하는 비용이 거의 들지 않고, V4 Flash와 조합하면 빈틈이 메워진다.",5,[186,236,194],"멀티모달",{"path":238,"title":239,"description":240,"date":241,"minRead":242,"tags":243},"\u002Fblog\u002Fsub-store-cloudflare","프록시 구독 통합을 Cloudflare로 옮겼다","여러 프록시 서비스와 자체 노드를 하나의 구독으로 합치고, 라우팅 규칙을 서버 쪽에서 설정 — 클라이언트는 그냥 구독만 하면 된다.","2026-06-28",4,[177,244,245],"우회","오픈소스 프로젝트",{"path":151,"title":5,"description":143,"date":142,"minRead":148,"tags":247},[156,157,158],{"path":249,"title":250,"description":251,"date":252,"minRead":167,"tags":253},"\u002Fblog\u002Fvalue-not-external","가치가 있는지 논하는 것 자체가 가치가 없다","우리의 가치는 누구도 정의하지 않는다. AI 시대에 인간은 도대체 어떻게 자신을 이해해야 하는가?","2026-06-18",[254,255],"AI 사고","인문 에세이",{"path":257,"title":258,"description":259,"date":260,"minRead":261,"tags":262},"\u002Fblog\u002Fx-growth-1000-followers","하루 조금 넘게 팔로워 1000+ 달성 — 내가 한 일","6월에 X 계정을 진지하게 운영해 하루 조금 넘게 팔로워 1000+를 달성했다. 이 글은 내가 한 일과 받은 피드백을 기록한다.","2026-06-16",12,[263,264],"X 운영","콘텐츠 성장",1789752317628]