가랑비 (211.♡.194.209)
2024년 5월 24일 PM 08:56 · 수정됨(05. 25. 09:53)
배경
Verilog, SystemVerilog 를 다루고,
C/C++ 로 MCU 나 PC 용 로-레벨 프로그래밍을 주로 하였습니다.
최근에 개인 유틸을 python 으로 작성하며 놀고 있습니다.
이전에 google 과 stackoverflow, stackexchange 의 도움으로 코드를 만든게 있었는데,
이번에는 ChatGPT 와 함께 업그레이드하였습니다.
초반의 비효율적인 접근법
필요한 기능을 거의 다 만들어서 사용하던 습관이 있어서, ChatGPT 에 묻는 내용은 특정 기능을 어떻게 구현할 지, 어떤 함수를 사용할 지 위주로 물었습니다.
예를 들면, (네... 저는 python 극초보입니당. )
bytes 를 string 으로 만들려면 어떻게 해야 하는가,
list 를 이용해서 for loop 돌려면 어떻게 해야 하는가,
오히려 C에서는 형변환이 간단한데, 다양한 type 을 가지는 python 의 형변환에서 에러를 많이 만났습니다. 이런 저런 질문으로 겨우겨우 프로그램을 짜다보니, 흐름이 이상하고 눈에 잘 들어오지도 않네요.
좀 세게 질문을 던지기 시작
한 두 시간 ChatGPT 와 하였더니, 조금씩 대담해 집니다. 함수를 만들어 달라고 요청하기 시작했습니다. ChatGPT 가 함수를 만들어주면, 저는 argument 와 return 쪽에 손을 대면서 수정을 해보았습니다. 이전보다 훨씬 간단하고 코드 만드는게 빨라지네요.
개인용 유틸이고 특별한 예외상황이 없기에, 만들어진 함수 내부는 대강 훑어보는 정도. 한 줄 한 줄 해석하지는 않습니다.
'위임' 체제
네 시간 정도 넘어갔습니다. 피곤하기도 하고, ChatGPT 에게 일 시키는 것이 슬슬 익숙해졌네요. 이제 다음과 같은 스타일로 '요청'을 하였습니다.
(예.) (초보입니다)
function convert_string ( instr_A, instr_B, op )
input : instr_A, uncode string
input : instr_B, 32bit-value hex-formatted unicode string
input : op, unicode string
operation :
if op=='+' cal = A + B
else if op=='-' cal = A - B
return : cal, hex-formatted unicode string
이런 식으로 입출력과 동작을 기술해 보았는데, 신세계를 맛보았습니다.
이게…. 되네요….
'아하'
AI 를 이용하기 위하여, prompt 작성하는 연습이 필요하다고 들었습니다. 직접 해보니, 사용 방법에 따라 reference 책 처럼 사용할 수도 있고, 간단한 일을 요청할 비서처럼 이용할 수도 있고, 저보다 프로그램 잘하는 동료처럼 사용할 수도 있네요. 많이 사용하면서 잘 사용할 방법을 찾아야겠습니다.
함수를 구현할 방법을 고민하는 것보다, 함수의 명세서 작성에 훨씬 시간을 많이 투자해야 할 것 같습니다.
* python 극초보의, 취미 코딩 후기입니다.
댓글 (4)
-
뿌뿌앵
24.05.24 · 118.♡.12.218
-
가가랑비
→ 뿌앵 작성자
24.05.24 · 211.♡.194.209
프롬프트 작성해 보니, '사양' ?? 이나 큰 그림에 좀 더 신경을 써야 하는 것 같습니다.
코딩 생활 중, 최대 변화 포인트에 온 것 같아요.. -
KKyleDev
24.05.25 · 112.♡.76.76
수도코드(의사코드)라고 하죠. -
가가랑비
→ KyleDev 작성자
24.05.25 · 106.♡.11.109
학교에서 수도코드 배울때는 이런 스타일을 왜 배우나 싶었는데, 생각보다 많이 쓰게 되더라고
다른 사람한테 코드 설명하거나, 주석달때도 많이사용하고.. 이제는 ai와 대화?? 할때도 쓰게 되네요.
다양한 목적에 맞는 여러 스타일의 수도 코드작성법을 배우는 것도 중요할듯요
댓글을 작성하려면 이 필요합니다.
주석 해석해서 코파일럿이 대신 좌라락..