AI를 활용해 코드를 완성하는 방법

영리한 프롬프트를 작성하려 애쓰지 마세요. 컨텍스트(Context)를 설계하기 시작하세요.

대부분의 사람들은 AI를 잘못된 방식으로 사용합니다. 한 문장으로 기능을 요청하곤 하죠. 그러면 AI는 잘못된 라이브러리를 사용하거나, 명명 규칙을 깨뜨리고, 기존의 버그를 다시 불러오는 코드를 반환합니다. 결국 여러분은 오후 내내 그 난장판을 수습하는 데 시간을 허비하게 됩니다.

컨텍스트가 없는 AI는 여러분의 코드베이스를 한 번도 읽어본 적 없는 주니어 개발자와 같습니다. 어제의 모든 것을 잊어버리죠. 신입 사원에게 단 한 줄짜리 티켓을 던져주고 완벽한 코드를 기대하지는 않을 것입니다. 대신 온보딩 문서를 줄 것입니다.

저는 저장소에 '프로젝트 메모리 파일'을 사용합니다. 이 파일은 AI가 매번 읽는 온보딩 문서 역할을 합니다. 여기에는 외부인은 알 수 없는 프로젝트 특화 규칙들이 포함됩니다.

• 필수 준수 사항: URL의 형태와 슬러그(slug)가 프로덕션 환경과 일치해야 하는 방식. • 로직 규칙: 숫자를 하드코딩하는 대신 설정(config)에서 값을 도출하는 방식. • 엣지 케이스: 조용한 오류(silent breaks)를 방지하기 위한 특정 CDN 설정이나 파일 경로.

제가 저지르는 모든 실수는 이 파일의 한 줄이 됩니다. 이로 인해 파일은 시간이 갈수록 가치가 쌓이는 자산이 됩니다. 같은 말을 반복할 필요가 없어지기 때문에 AI 출력물의 품질은 시간이 지날수록 향상됩니다.

저의 워크플로우는 다음과 같습니다:

  • 컨텍스트 부트스트랩: AI에게 코드로부터 메모리 파일 초안을 작성하도록 요청한 뒤, 직접 수정합니다.
  • 작업 재확인: AI에게 코드를 작성하기 전에 목표를 요약해 달라고 요청합니다. 이를 통해 오류를 조기에 발견할 수 있습니다.
  • 프롬프트 개선: 요청 내용 중 모호한 부분이 무엇인지 AI에게 물어봅니다.

AI를 다음 작업에 활용하세요:

  • 보일러플레이트(boilerplate) 및 스캐폴딩(scaffolding) 작성.
  • 패턴을 따르는 리팩토링.
  • 생소한 코드 설명.
  • 저장소 전체에 대한 기계적인 점검.
  • 테스트 및 픽스처(fixtures) 작성.

AI 사용을 피해야 할 작업:

  • 새로운 아키텍처 결정.
  • 취향이나 제품 관련 의사 결정.
  • 잘못되었을 때 비용이 많이 발생하는 모든 작업.
  • 보안이 중요한 설계.
  • 배포 전 최종 검토.

원칙은 간단합니다:

  • 작업 범위를 작게 잡으세요. "이 기능을 만들어줘"라고 하지 말고, "이 특정 변경 사항을 수행해줘"라고 말하세요.
  • 컨텍스트를 미리 제공하세요.
  • 모든 출력물을 검증하세요. 빌드를 실행하고 diff를 확인하세요.
  • 주니어 개발자의 PR을 검토하듯 확인하세요. 사람이 읽지 않은 코드는 절대 커밋하지 마세요.
  • 배운 점을 컨텍스트 파일에 다시 반영하세요.

레버리지는 프롬프트에 있는 것이 아닙니다. 레버리지는 여러분이 유지 관리하는 컨텍스트에 있습니다.

Source: https://dev.to/faizahmedfarooqui/how-i-actually-use-ai-to-ship-code-context-engineering-over-clever-prompts-il8

Optional learning community: https://t.me/GyaanSetuAi