Ask HN: How do you get into a flow state when using AI to code?

개요

AI를 활용한 코딩에서 '플로우(flow)' 상태에 도달하는 것은 어렵다는 인식이 지배적이며, 이는 AI 모델의 응답 대기 시간, 예측 불가능한 결과, 그리고 현재의 챗 인터페이스 기반 상호작용 방식 때문인 것으로 분석됩니다.

주요 내용

- AI 활용과 플로우 상태의 불일치: AI 모델의 응답을 기다리는 '프롬프트, 대기, 확인' 과정은 개발자를 통제권을 잃게 만들어 깊은 집중 상태인 플로우에 진입하기 어렵게 합니다. 특히, 더 빠른 모델이 더 멍청한 경향이 있어 오류 수정 시 플로우를 더욱 방해합니다.
- LLM 기반 자동 완성의 한계: LLM 기반 자동 완성 기능은 너무 단순하거나 느려서 유용성이 떨어지며, 집중을 방해하는 요소로 작용할 수 있습니다.
- 이상적인 AI 페어 프로그래머의 모습: 개발자는 코딩 중에 실시간으로 대화하며 제안을 제공하는 멀티모달 모델이나, 백그라운드에서 코드를 검토하고 제안하는 비간섭적인 도구를 이상적인 페어 프로그래머의 형태로 기대합니다.
- UI/UX 문제와 도메인 특화 인터페이스의 중요성: 현재 AI 코딩 도구들이 '챗 기반'에 머물러 있는 것은 UI/UX의 문제입니다. 달 착륙, 자동차 운전, 체스 플레이 등이 챗 모드로 이루어지지 않는 것처럼, 프로그래밍 또한 도메인 특화 인터페이스가 필요하다는 의견이 있습니다.
- 'llm-buddy'와 같은 대안: Emacs 패키지인 'llm-buddy'는 버퍼 편집 내용을 실시간으로 LLM이 검토하고 인라인 노트나 팝업 메시지로 피드백을 제공하여 가벼운 피드백을 제공하는 방식으로 개발자의 플로우를 방해하지 않으면서 도움을 줄 수 있습니다.
- AI 활용 방식에 따른 플로우 경험 변화:
* 저수준 AI 활용 (댓글 기반 개발): 수동으로 스켈레톤을 작성하고 주석으로 코드를 작성한 후 AI가 코드를 채우게 하는 방식은 플로우를 유지하기 더 쉽습니다.
* 고수준 AI 활용: 전체적인 사양 기반 개발 등은 더 피곤하고 플로우를 방해하는 경향이 있습니다.
* 계획 및 연구 중심 활용: AI에게 작업을 맡기고 그동안 다른 문제에 대해 생각하거나 연구하는 방식은 깊은 사고와 학습을 유도하며 보람을 느끼게 하지만, 이를 플로우 상태라고 보기는 어렵습니다.
- 병렬 작업과 컨텍스트 스위칭: 여러 에이전트를 동시에 실행하여 병렬적으로 작업을 진행하고, 한 작업이 진행되는 동안 다른 작업을 탐색하거나 아이디어를 발전시키는 방식은 여러 짧은 플로우 상태를 경험하게 하거나, 인지 부하를 높여 집중력을 유지하는 데 도움을 줄 수 있습니다.
- 비동기적 작업 관리: AI의 응답을 기다리는 동안 다른 프롬프트를 작성하거나, 이미 실행 중인 다른 에이전트의 작업 내용을 검토하는 등 비동기적인 작업 관리가 플로우를 유지하는 데 중요합니다.
- AI 코딩의 본질적 변화: AI는 개발자가 수동적인 구현 작업 대신 아키텍처, 디자인 등 고수준의 문제에 집중하도록 전환시키며, 이는 새로운 것을 더 자주 학습하는 즐거움으로 이어질 수 있습니다.
- 플로우 상태에 대한 다양한 관점:
* 정보의 지속적 유입: 일부에서는 플로우 상태가 주의를 완벽하게 유지하는 지속적인 정보 유입에 기반한다고 보며, AI 응답 대기 시간은 이를 방해한다고 주장합니다.
* 내면의 사고 과정: 다른 한편에서는 외부 정보 유입이 없더라도 내면의 깊은 사고 과정 자체가 플로우 상태를 구성할 수 있다고 봅니다.
* 명상적 접근: 생각하는 마음을 멈추고 전체적인 인식을 확장하는 명상적 기법을 통해 플로우 상태와 유사한 경험에 도달할 수 있다는 의견도 있습니다.
- AI와 관련된 직무 만족도 저하 및 대체 우려: AI 사용이 업무 만족도를 저하시키거나, 자신의 대체자를 훈련시키는 듯한 느낌을 받는다는 의견도 존재합니다.
- AI 코딩의 새로운 패러다임: AI를 활용한 코딩은 기존의 깊고 긴 플로우 상태보다는, 여러 에이전트와 병렬적으로 상호작용하며 짧고 빈번한 집중 상태를 경험하는 새로운 방식으로 변화하고 있음을 시사합니다.
- AI 코딩 작업의 최적화:
* 작고 결정적인 단계: AI 모델이 예측 가능하고 결정적인 단계를 수행하도록 유도하는 것이 중요합니다.
* 반복적인 설계 및 검토: AI는 실행을 담당하고, 개발자는 설계를 집중적으로 수행하며, AI의 실행 결과를 지속적으로 검토하는 방식이 효과적입니다.
* 병렬 작업 및 멀티태스킹: 여러 에이전트 세션을 동시에 관리하며 작업 전환 속도를 높이는 것이 플로우를 유지하는 방법이 될 수 있습니다.
* 빠르고 저렴한 모델 활용: DeepSeek Flash V4와 같이 빠르고 비용 효율적인 모델을 활용하면서, AI가 작업하는 동안 다음 프롬프트를 작성하는 것이 플로우 유지에 도움이 됩니다.

시사점

AI 코딩 환경에서 개발자는 기존의 플로우 상태 개념을 재정의하거나, AI와의 상호작용 방식을 최적화하여 새로운 형태의 몰입 경험을 추구해야 하며, 이는 UI/UX 개선과 도메인 특화 인터페이스 개발의 중요성을 강조합니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions