분위기에 몸을 맡기고, 기하급수적 발전을 받아들이며, 코드가 존재한다는 사실조차 잊어버리는 방식이죠. 이게 가능한 이유는 LLM(예: Cursor Composer와 Sonnet)이 너무 좋아지고 있기 때문입니다. 게다가 저는 SuperWhisper로 Composer와 대화하기 때문에 키보드를 거의 만질 필요도 없어요. 제가 너무 게을러서 코드를 찾기 싫을 때는 '사이드바의 패딩을 반으로 줄여줘'와 같은 가장 바보 같은 요청들을 합니다. 항상 '모두 수락'을 누르고, 더 이상 차이점을 읽지도 않아요. 오류 메시지가 나타나면 아무 설명 없이 그냥 복사해서 붙여넣기만 하는데, 보통 그러면 해결됩니다. 코드는 제가 일반적으로 이해할 수 있는 범위를 넘어 성장하기 때문에, 정말로 이해하려면 한참 동안 읽어봐야 할 거예요. 때로는 LLM이 버그를 수정하지 못해서 그냥 우회하거나 버그가 사라질 때까지 무작위 변경을 요청합니다. 주말에 한번 만들어보는 프로젝트에는 크게 나쁘지 않지만, 꽤 재미있기는 해요. 프로젝트나 웹앱을 만들고 있지만, 실제로 코딩이라고 할 수는 없어요 - 그냥 보고, 말하고, 실행하고, 복사-붙여넣기를 하니까 대체로 잘 작동하네요." ‒ Andrej Karpathy https://x.com/karpathy/status/1886192184808149383
분위기에 몸을 맡기고, 기하급수적 발전을 받아들이며, 코드가 존재한다는 사실조차 잊어버리는 방식이죠. 이게 가능한 이유는 LLM(예: Cursor Composer와 Sonnet)이 너무 좋아지고 있기 때문입니다. 게다가 저는 SuperWhisper로 Composer와 대화하기 때문에 키보드를 거의 만질 필요도 없어요. 제가 너무 게을러서 코드를 찾기 싫을 때는 '사이드바의 패딩을 반으로 줄여줘'와 같은 가장 바보 같은 요청들을 합니다. 항상 '모두 수락'을 누르고, 더 이상 차이점을 읽지도 않아요. 오류 메시지가 나타나면 아무 설명 없이 그냥 복사해서 붙여넣기만 하는데, 보통 그러면 해결됩니다. 코드는 제가 일반적으로 이해할 수 있는 범위를 넘어 성장하기 때문에, 정말로 이해하려면 한참 동안 읽어봐야 할 거예요. 때로는 LLM이 버그를 수정하지 못해서 그냥 우회하거나 버그가 사라질 때까지 무작위 변경을 요청합니다. 주말에 한번 만들어보는 프로젝트에는 크게 나쁘지 않지만, 꽤 재미있기는 해요. 프로젝트나 웹앱을 만들고 있지만, 실제로 코딩이라고 할 수는 없어요 - 그냥 보고, 말하고, 실행하고, 복사-붙여넣기를 하니까 대체로 잘 작동하네요." ‒ Andrej Karpathy https://x.com/karpathy/status/1886192184808149383
분위기에 몸을 맡기고, 기하급수적 발전을 받아들이며, 코드가 존재한다는 사실조차 잊어버리는 방식이죠. 이게 가능한 이유는 LLM(예: Cursor Composer와 Sonnet)이 너무 좋아지고 있기 때문입니다. 게다가 저는 SuperWhisper로 Composer와 대화하기 때문에 키보드를 거의 만질 필요도 없어요. 제가 너무 게을러서 코드를 찾기 싫을 때는 '사이드바의 패딩을 반으로 줄여줘'와 같은 가장 바보 같은 요청들을 합니다. 항상 '모두 수락'을 누르고, 더 이상 차이점을 읽지도 않아요. 오류 메시지가 나타나면 아무 설명 없이 그냥 복사해서 붙여넣기만 하는데, 보통 그러면 해결됩니다. 코드는 제가 일반적으로 이해할 수 있는 범위를 넘어 성장하기 때문에, 정말로 이해하려면 한참 동안 읽어봐야 할 거예요. 때로는 LLM이 버그를 수정하지 못해서 그냥 우회하거나 버그가 사라질 때까지 무작위 변경을 요청합니다. 주말에 한번 만들어보는 프로젝트에는 크게 나쁘지 않지만, 꽤 재미있기는 해요. 프로젝트나 웹앱을 만들고 있지만, 실제로 코딩이라고 할 수는 없어요 - 그냥 보고, 말하고, 실행하고, 복사-붙여넣기를 하니까 대체로 잘 작동하네요." ‒ Andrej Karpathy https://x.com/karpathy/status/1886192184808149383
업데이트하면서 관리하고 있어. 이러한 TranslationChunk의 상태를 종합적으로 판단해서 Fulltext 모델에서 텍스트에 속한 모든 Chunk의 번역 상태를 판단하는 메서드를 만들어줘. 특히 청크 없음, 번역중(청크중 하나라도 processing), 번역 완료(모든 청크 complete, 번역 실패 (청크중 하나라도 실패 상태인 경우)를 알 수 있어야해. 현재 Admin/Bookmarks#index에서도 번역 상태를 보여주는데, 이 새로운 메서드를 사용해서 번역 상태를 보여주는 방식으로 변경해줘. 특히 청크가 없거나 실패한 상태에서만 번역 버튼을 활성화해야해.
@/app/jobs/fetch_fulltext_job.rb 에서 업데이트하면서 관리하고 있어. 이러한 TranslationChunk의 상태를 종합적으로 판단해서 Fulltext 모델에서 텍스트에 속한 모든 Chunk의 번역 상태를 판단하는 메서드를 만들어줘. 특히 청크 없음, 번역중 (청크중 하나라도 processing), 번역 완료(모든 청크 complete, 번역 실패(청크중 하나라도 실패 상태인 경우)를 알 수 있어야해. 현재 Admin/Bookmarks#index에서도 번역 상태를 보여주는데, 이 새로운 메서드를 사용해서 번역 상태를 보여주는 방식으로 변경해줘. 특히 청크가 없거나 실패한 상태에서만 번역 버튼을 활성화해야해.
@/app/jobs/fetch_fulltext_job.rb 에서 업데이트하면서 관리하고 있어. 이러한 TranslationChunk의 상태를 종합적으로 판단해서 Fulltext 모델에서 텍스트에 속한 모든 Chunk의 번역 상태를 판단하는 메서드를 만들어줘. 특히 청크 없음, 번역중(청크중 하나라도 processing), 번역 완료(모든 청크 complete, 번역 실패 (청크중 하나라도 실패 상태인 경우)를 알 수 있어야해. 현재 Admin/Bookmarks#index에서도 번역 상태를 보여주는데, 이 새로운 메서드를 사용해서 번역 상태를 보여주는 방식으로 변경해줘. 특히 청크가 없거나 실패한 상태에서만 번역 버튼을 활성화해야해.
- .memory-bank/cheatsheet-test.md - 마지막 커밋 이후에 변경사항이 있는지 Git으로 확인할 것 - rspec을 실행해서 깨지는 테스트가 있는지 확인할 것 - 깨지는 테스트가 있으면 작업 중지. 강조 사항 - 작업에 대한 설명은 간결하게만 해줘. - 문제는 최대한 단순하게 접근하고, 최대한 쉽게 해결할 것 - 테스트 먼저 구현하고 코드 구현 - 코드 작성 이후 반드시 테스트 실행해서 문제 확인할 것 - 파일 읽기에 실패하면, 해당 파일을 만들지 말고 검색해볼 것. 그래도 없으면 중지. - 개발 서버 실행하지 말 것. 브라우저 도구는 명시적인 요청시에만 사용.
작성 ◦ 너무 추상적이지 않은, 적절한 작업 단위로 작성 ◦ 예상되는 부작용과 영향 범위에 대해서도 전달 • Goal과 Non Goal을 정의 • Snipetty 등 스니펫 앱이나 확장 사용 • 사용자 프롬프트로 작성할지 고민 필요 ◦ 강조 사항, 사전 작업 등 프롬프트 정리
- .memory-bank/cheatsheet-test.md - 마지막 커밋 이후에 변경사항이 있는지 Git으로 확인할 것 - rspec을 실행해서 깨지는 테스트가 있는지 확인할 것 - 깨지는 테스트가 있으면 작업 중지. 강조 사항 - 작업에 대한 설명은 간결하게만 해줘. - 문제는 최대한 단순하게 접근하고, 최대한 쉽게 해결할 것 - 테스트 먼저 구현하고 코드 구현 - 코드 작성 이후 반드시 테스트 실행해서 문제 확인할 것 - 파일 읽기에 실패하면, 만들지 말고 검색해볼 것. 그래도 없으면 중지. - 개발 서버 실행하지 말 것. 브라우저 도구는 명시적인 요청시에만 사용.
- .memory-bank/cheatsheet-test.md - 마지막 커밋 이후에 변경사항이 있는지 Git으로 확인할 것 - rspec을 실행해서 깨지는 테스트가 있는지 확인할 것 - 깨지는 테스트가 있으면 작업 중지. 강조 사항 - 작업에 대한 설명은 간결하게만 해줘. - 문제는 최대한 단순하게 접근하고, 최대한 쉽게 해결할 것 - 테스트 먼저 구현하고 코드 구현 - 코드 작성 이후 반드시 테스트 실행해서 문제 확인할 것 - 파일 읽기에 실패하면, 만들지 말고 검색해볼 것. 그래도 없으면 중지. - 개발 서버 실행하지 말 것. 브라우저 도구는 명시적인 요청시에만 사용.
- 디버깅 시에는 라우트나 Rails 설정 파일을 함부로 수정하지 말 것(좋은 디버깅 접근이 아님) - rspec/Rails 설정이 문제일 가능성은 크지 않음. 기존의 팩토리나 테스트를 확인 - 테스트 실행 중 모델 객체의 내용이 예상과 다르다면 모델의 콜백을 염두해두어야함. - 한 번에 하나씩 - 테스트 작성 후 직접 실행하고 실패하는 테스트는 하나씩 성공시키자. - 변경 사항과 에러메시지를 집중적으로 분석 후 테스트 실행 - 다수가 실패하는 경우엔 카테고리화하되, 한꺼번에 해결하지 말 것. - 하나 해결하고, 다시 테스트하는 방식으로.
기본 컨테스트 윈도우가 커짐, Input 토큰 소모 ◦ 규칙이 많아지면, 무시하는 경우도 많아짐 ◦ 꼭 필요한 최소한만 Active하게 유지(적용 범위, 규칙 수) • 모든 내용을 지키지는 않음 ◦ 파일 읽기나 규칙이 무시되는 경우가 많음 ◦ 모델에 따라서 동작이 일관적이지 않음
구축이 어려움 • 피드백 개선 전략 ◦ console.log나 네트워크 호출 로그를 터미널로 전달 ▪ Playwright를 사용해서 구현 가능 ◦ 테스트 실패한 스크린샷을 전달하는 방법 ▪ 에이전트 작업 중간에 이미지를 Input으로 넣기가 어려움 ▪ Claude Code에서는 MCP의 이미지 반환 결과를 사용 가능
실행 환경 • 개발 환경 ◦ Dev Container MCP • 도구 확장 에이전트 • 인터페이스 • 시스템 프롬프트 ◦ 도구 정의 • 컨텍스트 윈도우 관리 사용자 • 컨텍스트 윈도우 활용 • 피드백 루프 ◦ 개발 환경 ◦ 테스트 • 프롬프트 개선 • 컨텍스트 관리 ◦ 문서 ◦ .cursor/rules
실행 환경 • 개발 환경 ◦ Dev Container MCP • 도구 확장 에이전트 • 인터페이스 • 시스템 프롬프트 ◦ 도구 정의 • 컨텍스트 윈도우 관리 사용자 • 컨텍스트 윈도우 활용 • 피드백 루프 ◦ 개발 환경 ◦ 테스트 • 프롬프트 개선 • 컨텍스트 관리 ◦ 문서 ◦ .cursor/rules 두뇌 작업 환경
the meaning of “programming” will change to refer to the act of arranging ideas into executable programs. Mehran Sahami, the chair of Stanford’s CS department, put it simply: “Computer science is about systematic thinking, not writing code.” – Chip Huyen, the author of the new book AI Engineering https://www.oreilly.com/radar/the-end-of-programming-as-we-know-it/