LLM을 활용한 코드 작성시 유의할 14가지

13 hours ago 1


1. 합리적인 기대치 설정 (Set reasonable expectations)

  • 주요 내용:
    LLM은 본질적으로 고급 자동완성 도구임을 인지해야 하며, 전적으로 의존할 경우 오류나 부정확한 결과가 발생할 수 있음.
  • 활용법:
    자신의 코딩 능력을 보완하는 보조 도구로 활용하며, 과도한 기대를 버리고 실수를 검증하는 태도가 필요함.

2. 학습 데이터의 종료 시점을 고려 (Account for training cut-off dates)

  • 주요 내용:
    모델이 학습한 데이터의 최신성이 제한될 수 있으므로, 최신 라이브러리나 기술 변화에 대해 주의해야 함.
  • 활용법:
    안정성과 보편성이 입증된 라이브러리 사용을 우선시하고, 최신 기술이 필요한 경우 직접 예시를 제공하여 보완함.

3. 문맥의 중요성 (Context is king)

  • 주요 내용:
    대화의 모든 히스토리(프롬프트와 응답)가 결과에 영향을 미치므로, 문맥 관리가 중요함.
  • 활용법:
    복잡한 작업 시에는 기존 코드를 대화에 포함시켜 모델이 참고할 수 있도록 하고, 필요 시 새 대화로 초기화함.

4. 다양한 옵션 제시 요청 (Ask them for options)

  • 주요 내용:
    초기 연구 단계에서 LLM에게 여러 구현 옵션과 예시를 요청하여 가능한 선택지를 탐색함.
  • 활용법:
    “어떤 옵션이 있는가?” 등의 질문으로 기술적 가능성을 확인하고, 이후 선택된 옵션을 기반으로 구체화함.

5. 구체적인 지시 제시 (Tell them exactly what to do)

  • 주요 내용:
    생산 코드 작성 시에는 상세하고 명확한 지시를 내려 원하는 기능을 정확히 구현하도록 유도함.
  • 활용법:
    함수 시그니처, 사용해야 할 라이브러리, 예외 처리 등 구체적인 사항을 지시하여 LLM이 해당 요구사항에 맞게 코드를 작성하도록 함.

6. 작성된 코드는 반드시 테스트 (You have to test what it writes!)

  • 주요 내용:
    LLM이 작성한 코드라도 실제 동작 여부를 반드시 확인해야 하며, 자동화된 테스트 및 수동 검증이 필요함.
  • 활용법:
    작성된 코드에 대해 pytest 등 테스트 프레임워크를 활용하여 정상 작동 여부를 검증함.

7. 대화형 상호작용 유지 (Remember it’s a conversation)

  • 주요 내용:
    LLM과의 상호작용은 단발성이 아닌 반복적 대화 과정을 통해 결과를 개선할 수 있음.
  • 활용법:
    초기 결과가 미흡할 경우 추가 지시나 피드백을 통해 코드를 리팩토링하고 개선함.

8. 코드를 실행할 수 있는 도구 활용 (Use tools that can run the code for you)

  • 주요 내용:
    실행 가능한 샌드박스 환경이나 통합 개발 도구를 활용하여 LLM이 작성한 코드를 실제로 실행해 볼 수 있음.
  • 활용법:
    ChatGPT Code Interpreter, Claude Artifacts 등 안전한 실행 환경을 제공하는 도구를 사용하여 실시간 검증함.

9. ‘바이브 코딩’으로 학습 (Vibe-coding is a great way to learn)

  • 주요 내용:
    반복적이고 자유로운 실험을 통해 LLM의 활용법을 익히고, 다양한 아이디어를 빠르게 구현해보는 방법임.
  • 활용법:
    간단한 기능부터 시작해 반복적 시도와 개선을 통해 LLM의 한계를 파악하고 자신의 코딩 감각을 향상시킴.

10. Claude Code를 활용한 상세 예제 (A detailed example using Claude Code)

  • 주요 내용:
    실제 프로젝트 예제를 통해 Claude Code가 어떻게 구체적인 요구사항을 반영하여 작업을 수행하는지 보여줌.
  • 활용법:
    단계별 프롬프트와 피드백을 통해 Python 스크립트와 HTML 페이지 생성 등 복합 작업을 수행하는 과정을 참고함.

11. 인간의 개입 필요성 (Be ready for the human to take over)

  • 주요 내용:
    LLM이 생성한 코드에도 오류나 부적합한 부분이 있을 수 있으므로, 최종 검토와 수정은 반드시 인간이 수행해야 함.
  • 활용법:
    LLM이 놓치는 세부사항이나 미묘한 오류를 직접 점검하고 보완하여 완성도 높은 결과물을 만듦.

12. 개발 속도의 극대화 (The biggest advantage is speed of development)

  • 주요 내용:
    LLM을 활용하면 프로토타입 제작과 반복적인 작업 속도를 획기적으로 향상시킬 수 있음.
  • 활용법:
    초기 아이디어 검증이나 간단한 코드 작성에 LLM을 적극 활용하여 개발 시간을 단축함.

13. 기존 전문 지식의 증폭 (LLMs amplify existing expertise)

  • 주요 내용:
    이미 숙련된 개발자라면 LLM을 활용하여 자신의 전문성을 더욱 강화하고 생산성을 높일 수 있음.
  • 활용법:
    자신의 경험과 지식을 바탕으로 LLM에게 명확한 지시를 내려 보다 정교한 결과물을 도출함.

14. 추가 기능: 코드베이스 관련 질문 응답 (Bonus: answering questions about codebases)

  • 주요 내용:
    LLM은 코드베이스에 대한 질문에 답변하거나 코드의 특정 부분을 설명하는 데에도 유용하게 활용될 수 있음.
  • 활용법:
    코드의 구조나 특정 기능에 대해 질문하고, 관련 설명이나 문서를 생성하는 데 도움을 받을 수 있음.

Read Entire Article