brunch

You can make anything
by writing

C.S.Lewis

by 홍창수 Sep 02. 2024

[책소개] AI시대의 프로그래머

AI-Assisted Programming

AI시대의 프로그래머(AI-Assisted Programming)


챗GPT가 공개된 후 4개월 지난 시점인 2023년 3월에 AI를 활용한 코딩과 프로그래밍의 큰 매력에 빠져 책 한권을 저술했습니다. 저의 책(가장 빠르게 데이터분석 전문가가 되는 마법의 챗GPT활용법. 아래 참조)은 GPT를 활용한 데이터분석(AI-Assisted Data Analytics)에 관한 책이었지만 프로그래밍과 데이터분석이 코딩을 기초로 한다는 점에서 AI 어시턴트 프로그래밍의 능력은 데이터분석가와 더불어 개발자에게 이제 필수적인 존재가 되었습니다. 

https://brunch.co.kr/@gauss92tgrd/75


챗GPT가 소개될 당시에는 코드를 학습시키는 원천 기술인 OpenAI의 Codex에 대해 국내에 소개된 자료가 없어 논문과 웹을 찾아서 공부한 적이 있습니다. 최근에는 제가 다니는 회사의 계열사에서 망 분리의 문제로 사내에서 사용할 목적으로 챗GPT 수준의 코딩 챗봇을 만들어 활용한 기술인 오픈소스 Code Llama에도 관심이 많습니다.

https://ai.meta.com/blog/code-llama-large-language-model-coding/


이처럼 AI Assisted Programming 또는 AI Assisted Developer에 관심이 많은데 이에 관한 좋은 책이 ‘AI 시대의 프로그래머’라는 이름으로 한 권 나와 소개해 드립니다. 이 책은 AI의 발전이 프로그래밍 세계에 미친 영향을 상세히 설명하고 있으며, 프로그래머들이 이러한 변화를 어떻게 활용할 수 있을지에 대해 구체적인 조언을 제공하는 책입니다. 


특히, 챗GPT, 깃허브 코파일럿 등 현대적인 AI 도구들을 사용해 생산성을 높이는 방법을 자세히 다루고 있습니다. 아울러, 이 책을 통해 코드 품질을 향상시키고 개발 시간을 단축할 수 있는 실질적인 방법들을 배울 수 있다는 장점이 있습니다.


주요 내용은 ‘AI 어시스턴트’가 프로그래밍의 전 과정에서 어떻게 활용될 수 있는지를 제시하고 있습니다. AI 어시스턴트 작동원리, 프롬프트 엔지니어링, 다른 AI어시스턴트 코딩도구 뿐만 아니라 개발자가 개발을 하면서 진행하는 요구사항 정의, 설계, 코딩, 디버깅, 테스트, 문서화 등 모든 프로그래밍 단계에서 AI가 실질적인 도움을 줄 수 있음을 보여주고 있습니다.


"2027년까지 개발자 70%가 생성형 AI기반 코딩 도구를 생산성 목적으로 사용할 것"이라는 조사가 있습니다. ‘AI시대의 프로그래머’는 이처럼 AI와 프로그래밍의 미래를 준비하는 개발자에게 도움이 되는 참고서가 될 것으로 생각됩니다. 


기술의 발전 속도가 빠른 만큼, 이 책이 제공하는 내용은 프로그래머들이 최신 기술을 따라잡고, AI를 활용하여 자신의 역량과 생산성을 최대한 발휘할 수 있도록 돕는 데 큰 도움을 줄 수 있다고 생각됩니다. 생성형 AI기반 코딩 도구를 마스터해 개발 능력을 한 단계 높이고자 하는 프로그래머들에게 추천해주고 싶은 책입니다. 



참고사항


이 책을 먼저 읽고 이 책과 유사한 책인 Manning출판사의 'AI Powered Developer' 라는 책(샘플챕터 제공)-아마도 이 책은 번역 계약된 출판사가 있고, 번역을 준비 중이라 생각됩니다-도 보시면 도움이 되리라 생각됩니다. 사실 유사한 책이라 AI시대의 프로그래머 한 권만 봐도 되지 않을까 합니다.

https://www.manning.com/books/ai-powered-developer






저자 : 톰 타울리(Tom Taulli)


벤처 지원 생성형 AI 스타트업인 Aisera를 비롯한 다양한 기업의 컨설턴트로 활동하고 있습니다. ChatGPT, GPT-4 및 기타 거대 언어 모델을 다루는 다양한 도서를 집필했으며 O'Reilly, UCLA, Pluralsight에서 파이썬을 사용한 딥러닝 및 머신러닝 모델을 만드는 방법과 자연어 처리 등 인공지능에 대한 다양한 강의를 진행했습니다.


책의 주요 내용

AI 기반 개발 도구의 핵심 역량

GitHub Copilot, Amazon CodeWhisperer와 같은 인기 시스템의 장단점과 사례

코딩을 위해 ChatGPT, Gemini, Claude, 기타 일반 LLM을 사용하는 방법

요구 사항, 계획, 코딩, 디버깅 및 테스트를 포함한 소프트웨어 개발 라이프사이클에 AI 개발 도구 사용

개발을 위한 프롬프트 엔지니어링

정규 표현식, 객체 지향 프로그래밍 클래스 및 GitHub Actions 생성과 같은 지루한 작업에 AI 지원 프로그래밍 사용

전문적인 UI를 만드는 것과 같은 AI 기반 로우코드 및 노코드 도구를 사용하는 방법


목차


CHAPTER 1 개발자에게 열린 새로운 세상

_1.1 진화와 혁신

_1.2 생성형 AI

_1.3 활용 사례

_1.4 한계점

_1.5 개발자의 새로운 접근 방식

_1.6 결론


CHAPTER 2 AI 어시스턴트의 작동 원리

_2.1 주요 기능

_2.2 지능형 코드 완성과의 비교

_2.3 컴파일러와의 비교

_2.4 역량 수준

_2.5 생성형 AI 및 거대 언어 모델(LLM)

_2.6 LLM 성능 평가

_2.7 오픈소스 LLM

_2.8 AI 어시스턴트 프로그래밍 도구 평가

_2.9 결론


CHAPTER 3 프롬프트 엔지니어링

_3.1 예술과 과학

_3.2 도전 과제

_3.3 프롬프트

_3.4 컨텍스트

_3.5 지시

_3.6 입력 데이터

_3.7 출력 형식

_3.8 모범 사례

_3.9 환각 감소

_3.10 보안 및 개인정보 보호

_3.11 자율 AI 에이전트

_3.12 결론


CHAPTER 4 깃허브 코파일럿

_4.1 깃허브 코파일럿

_4.2 시작하기

_4.3 코파일럿 파트너 프로그램

_4.4 결론


CHAPTER 5 기타 AI 어시스턴트 프로그래밍 도구

_5.1 아마존 Q 디벨로퍼

_5.2 제미나이 코드 어시스트

_5.3 탭나인

_5.4 리플릿

_5.5 코드GPT

_5.6 코디

_5.7 코드WP

_5.8 워프

_5.9 비토 AI

_5.10 커서

_5.11 코드 라마

_5.12 기타 오픈소스 모델

_5.13 결론


CHAPTER 6 챗GPT 및 기타 범용 LLM

_6.1 챗GPT

_6.2 GPT 모델의 코드 생성 능력

_6.3 챗GPT 탐색하기

_6.4 웹 브라우징

_6.5 반복적인 작업

_6.6 크로스 브라우저 호환성

_6.7 배시 명령

_6.8 깃허브 액션

_6.9 GPTs

_6.10 제미나이

_6.11 클로드

_6.12 결론


CHAPTER 7 기획

_7.1 브레인스토밍

_7.2 시장 조사

_7.3 경쟁 분석

_7.4 요구사항 작성

_7.5 프로젝트 관리

_7.6 결론



CHAPTER 8 코딩

_8.1 코드 리뷰

_8.2 판단 호출

_8.3 학습

_8.4 주석

_8.5 모듈식 프로그래밍

_8.6 프로젝트 시작하기

_8.7 자동 완성

_8.8 리팩터링

_8.9 함수

_8.10 객체 지향 프로그래밍

_8.11 프레임워크 및 라이브러리

_8.12 데이터

_8.13 프런트엔드 개발

_8.14 API

_8.15 결론


CHAPTER 9 디버깅, 테스트, 배포

_9.1 디버깅

_9.2 문서

_9.3 코드 리뷰

_9.4 배포

_9.5 결론


CHAPTER 10 AI 시대의 개발자를 위한 팁

_10.1 AI가 바꾼 프로그래밍 방식

_10.2 AI 어시스턴트의 이점

_10.3 AI 어시스턴트의 유의점

_10.4 프롬프트 엔지니어링의 특성

_10.5 프로그래밍 이상의 작업

_10.6 프로그래머의 역할

_10.7 결론


APPENDIX A 클로드 3.5

_A.1 클로드 아티팩트

_A.2 클로드 프로젝트





                    

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari