후기/📗 개발 서적 읽기

<요즘 AI 페어 프로그래밍> - 서지연

무딘붓 2024. 10. 11. 19:12

 

📖 책 소개

 

페어 프로그래밍의 장점은 많이들 알고 있지만, 여러 제약으로 인해 실제로 페어 프로그래밍을 실천하기는 어려움이 많다. 그래서 이 책에서 제안하는 것이 바로 AI 페어 프로그래밍이다.

 

책에서는 Github Copilot을 이용한 페어 프로그래밍을 소개하고 있다. 다른 AI 도구와 달리, 내 코드베이스를 기반으로 작업할 수 있다는 큰 장점이 있기 때문이다. 책의 초반에서는 Github Copilot의 동작 원리와 기본 사용법을 설명하고, 프롬프트 엔지니어링 기초까지 다룬다 ChatGPT를 많이 사용해 봤지만, 프롬프트에 대해 깊이 있게 공부한 적이 없었기에 zero-shot COT나 Tree of thought 같은 프롬프팅 기법을 다루는 부분이 특히 흥미롭고 유익했다.

 

기초 설명 후에는 실제 코드로 AI 페어 프로그래밍을 실습할 수 있는 예제가 소개되어 있다. AI를 활용해 평소 쉽게 도전하기 어려운 디자인 패턴을 적용하거나 리팩토링하는 방법 뿐 아니라 AI로 코드 리뷰를 진행하는 방법도 다룬다. 그 외에도 번거로운 작업인 csv 데이터 생성, DB 쿼리 작성, 개발 문서 작성 등을 AI에게 맡기는 예제와 AI를 활용해 개발 공부를 하는 방법도 소개된다.

 

이미 AI를 자주 사용하고 있어서 새롭지 않은 내용도 많았지만, ‘AI를 이렇게도 사용할 수 있구나!’ 싶은 아이디어도 많아서 도움이 많이 되었다. 개발을 하는 데 있어 AI를 더 효율적으로 사용해 보고 싶은 개발자라면 가볍게 읽어볼 만한 책으로 추천한다.

 

✍️ 인상적인 내용 정리

 

개발자로서 우리는 ‘문제를 정의하고 해결하는 능력’을 가진 사람이 되어야 합니다.
-23p

 

 

  • AI 페어 프로그래밍의 장점
    • 컨텍스트 스위칭, 코드 이해, 디버깅 과정에서 시간을 절약할 수 있다.
    • 깃허브 코파일럿 사용자는 55% 더 빠르게 코딩한다는 결과가 있다.
    • 시간 절약 → 더 만족스러운 작업에 집중 → 코딩에 더 재미를 느끼는 데 도움

 

  • 프롬프트 : ‘지시한다’, ‘말을 전한다’라는 뜻
    • LLM에서의 프롬프트 : AI 모델에게 내리는 지시 사항
    • 프롬프트 엔지니어링 : 프롬프트를 설계하는 기술

 

  • 프롬프트 엔지니어링 4S 원칙
    1. Single : 하나의 질문 혹은 작업에 집중
    2. Specific : 명확하고 상세하게 지시
    3. Short : 간결하게 핵심을 지시
    4. Surround : 주변 컨텍스트를 제공해서 질문의 상황을 잘 전달

 

  • 프롬프팅 기법
    • zero-shot prompting
      • 별다른 정보나 컨텍스트 전달 없이 지시를 내리는 방법
      • 예) 간단한 번역, 지식 설명
    • one-shot prompting
      • 기대하는 결과물에 대한 예시 하나를 제시하는 방법
      • 예) 원하는 JSON 형식의 예시를 제공
    • few-shot prompting
      • 예시를 두 개 이상 전달하는 방법
      • 답변을 더 세밀하게 조정하고, 답변의 일관성을 올림
    • chain of thought (COT)
      • 추론 방법의 예시를 전달하는 방법
      • 예) 수학 문제 → 단계별로 문제를 푼 예시를 전달.
    • zero-shot COT
      • (예시 없이) 한 단계씩 생각하라고 지시하는 기법
    • Tree of thought (사고의 트리)
      • 문제 중심에서 시작, 연관된 여러 아이디어를 나무 가지처럼 확장해나가는 방법
      • AI 모델에게 가상의 전문가들을 세팅하고, 각 관점에서 문제를 풀고, 그 안에서 답을 채택하도록 하면 → 여러 접근으로 추론해나가게 된다.
    • ReAct
      • Reason과 Act, 즉 원인을 분석하고 행동하는 방법
      • 실행 계획을 유도하고 추적, 작업별로 실행할 액션을 선택하고 실행하는 방법
    • 더 많은 기법과 연구