내가 읽은 책들...

<개발자를 위한 챗GPT 활용법> 을 읽고... (feat. 챗GPT 써본 짤막 후기)

홍구리당당 2024. 1. 6. 19:58

  • 책 정보: 개발자를 위한 챗 GPT 활용법 / 오현석 지음 / 2023년 신간 / 200p 정도의 얇은 책.

  • 개인적인 평가: ⭐⭐⭐ 3 / 5

  • 짤막 후기: 개발자를 위한 책이라기엔 내용이 적어 아쉽고, 일반인을 위한 책이라기엔 내용이 어려워 아쉽고...

책을 읽게 된 이유...

도서관 뒤적이다가 우연히 발견해서 집어왔다. 이때껏 한 번도 챗 GPT는 써본 적 없었는데... 명색이 개발자인데 한 번쯤은 건드려봐야지 싶어 책을 빌렸다. (본인은 궁금한 게 생기면 인터넷보단 책을 먼저 찾아보는 스타일이다. 참 개발자와 동떨어진 스타일;)

책 읽고 배운 점...

책은 챗 GPT가 무엇인지, 어떤 원리로 작동하는지 짧게 소개해준 후 개발자가 어떻게 gpt를 활용하면 좋을지 예시를 들어주었다.

chat gpt란?

- 그냥 언어 모델 방대한 데이터를 학습한

chat gpt 쓰는 법?

- chat gpt 사이트 들어가서 회원가입하면 끝.

gpt로 프로그래밍 공부하는 법?

1. 개념 물어보기. 포인터 배열과 배열 포인터의 차이를 알려줘 포인터 배열과 배열 포인터의 차이를 함수 인자를 넘기는 예시로 설명해줘
2. 알고리즘 물어보기. 이 문제를 풀 수 있는 알고리즘을 자세히 설명해줘.
3. 아래 코드를 완성해줘

    ```tsx
    function aaa(data, value){
        // value가 data에 있는지 확인하는 코드를 재귀적인 방법으로 작성해줘.
    }
    ```

4. 이 코드의 문제점을 찾아줘
5. 이 코드를 시간 복잡도 관점에서 개선해줘.,.
6. 이 코드에서 ~~ 문제가 발생하는데 코드를 개선해줘.
7. 이 코드의 시간 복잡도를 측정해줘..

개발 코드 문서화 작업에 gpt 활용하는 법?

- 예를 들어 gpt에게 내 코드에 docstring을 넣어달라고 부탁할 수도 있다!

딱 이 정도의 내용이었다.
이 외에도, 챗 GPT는 사실 언어 모델의 일종이며 여기에 쓰인 알고리즘이 어떤 건지 간략하게 설명이 나와있긴 한데 이해하기 좀 어려운 느낌이었다. 나야 예전에 자연어처리를 공부하면서 배운 게 있으니 이해는 되지만, 일반 개발자가 이를 꼭 알아둬야 하는 건가? 싶었다...

다만 처음 챗 gpt를 접하는 나로선 얼마나 활용도가 무궁무진한지 와닿게 됐다.

아래는 내가 직접 챗 GPT에게 개발자적인(?) 질문을 해본 대화 스레드이다.

나: javascript에는 docstring 기능이 있나?

GPT: 없다 대신 jsdoc 같은 외부 룰을 지켜서 써야 함.
tsx /** * This is a function that adds two numbers. * * @param {number} a - The first number. * @param {number} b - The second number. * @returns {number} The sum of the two numbers. */ function addNumbers(a, b) { return a + b; }
이렇게 룰이 있긴하다.

나: 왜 js에선 docstring 지원 안해?

GPT: 동적 타이핑 언어인 js는 일부 정적 타이핑 언어인 python과 달리 docstring을 지원 안함. 정적 언어는 타입이 선언돼있어서 문서 자동 생성이 쉽지만, js는 유연해서 코드에서 직접 타입 추론이 어렵고 애초에 js는 원래 이벤트 처리에 중점을 둔 웹 브라우저 맥락 언어라서 제공 안함 대신, 특수 형식 주석을 사용하는 js documentation 규칙을 채택함. 언어 자체에서 제공하는 기능은 아님…

나: 파이썬이 정적 언어야?

GPT: 파이썬은 동적 언어이다

나: 니가 파이썬 정적 언어랬잖아

GPT: ㅈㅅ 다시 말함. 파이썬은 동적 언어임.

나: 그럼 왜 파이썬에 반해 js는 docstring 제공 안하는지 다시 말해봐

GPT: js와 python의 디자인 철학과 기본적인 언어 생성 기원에 따라 문서화에 대한 접근 방식이 달라서 그럼. python은 기본적으로 읽기 쉽고 자체 문서화 가능한 코드를 강조하기 때문에 docstring을 제공함. 이 기능은 python 의 가독성이 중요하다는 원칙과 일치.
반면 js는 웹 스크립팅 언어로 시작됐고 다른 언어와 동일 수준의 형식으로 설계되지 않았음. 현재는 발전해서 여러 환경에서 쓰이지만, 여전히 유연하고 동적 특성을 가짐. js에서는 문서화할 땐 jsDoc 주석을 쓰는데, docstring과 유사 구문을 사용함.

나: 그럼 타입스크립트엔 기능 있어?

GPT: ㄴ 없음

나: jsdoc 알아보고 싶은데 관련 웹사이트 줘봐

GPT: 여기 공식 사이트가보셈 글고 vscode에선 자동 주석 확장프로그램도 좀 있음

나: vs 코드에서 제공하는 확장프로그램 뭐있는디?

GPT: jsDoc 코멘트 기반해서 문서화 생성하는 확장 프로그램에는 Document This, JSDocs Generator, TypeDoc Comments 등이 있고 이거 설치하려면 쏼라쏼라…

역시 아직은 멍청한 GPT... 그래도 진짜 획기적이고 빠르고 편하다.

결론...

너무 간단하게 GPT를 소개하느라 내용이 적어 아쉬웠다. 그래도 덕분에 어떻게 GPT를 활용할지 감은 잡았다!