이게 강좌에 맞을지 사용기에 맞을지 좀 혼동이 되는데... 크게 강좌랄 것은 없어서 사용기에 올립니다. -> 강좌까지는 아니어도 팁은 될 거 같아서 다시 팁게로 변경해서 올립니다. 쓰고 보니 사용기는 또 아닌거 같네요.

-----------------------------------

요즘 Cursor나 Codex 익스텐션, Antigravity, 더 나아가 오픈클로 까지 사용자들이 많이 늘어나고 있는 것 같네요.

제 경우 지금 필요한 앱 개발을 위해서 Chat GPT Pro 요금제 (이번 카카오톡 대란 탑승.._) 로 VS Code에 Codex 익스텐션을 사용중인데, 여기에 제가 쓰는 방법을 몇가지를 간단하게 공유하고자 합니다. 목적은 터미널 커맨드 자동수행, 일련의 커맨드 숏컷 수행, 챗 기록 남기기 입니다.

참고로 이 방법들은 제가 진짜 개발자가 아니라서 (한 줄도 코드를 짜 본 적은 없습니다. 10살 때 1달 동안 BASIC 배운 것 빼고요..;;) 임의로 쓰는 방법 들이에요. 아마 저처럼 실제 개발을 배워보지 않았는데 개발을 해보고 싶은 분들에게 도움이 될 수도 있을 거 같습니다. 개별적인 내용 (git이 라든가, 도커 라든가..)은 AI에게 물어보시면 친절히? 알려줄거에요.

1. 기본 커맨드 셋 만들기 (프롬프트 숏컷)
기본적으로 자주 수행하는 것들은 따로 커맨드셋을 문서화해서 실행하게 합니다. 예를 들어 “저장” 이라고만 하면 리팩토링한 코드들에 헤더 업데이트, 관련한 문서들 업데이트, 그리고 git에 리팩토링한 내용을 바탕으로 코멘트를 붙여서 커밋 및 푸시를 하는거에요.

이런 식으로 패턴화 되어서 자주 수행하는 일들을 몇가지 커맨드로 해두면 일하기 편합니다.

2. 챗 기록 남기기
먼저, 이 방법은 문서화와 개발 체계가 잘 잡히신 분들은 크게 필요하지는 않을 것 같습니다.

저같은 비전공자 분들도 개발을 조금 해보시면 문서 관리와 SSOT (단일 진실 소스) 원칙 수립이 중요하다는 것은 곧 아시게 될 텐데요. 제 경우는 이것을 아무리 관리를 해도 실제 챗 상에서 나눈 대화가 무엇이었는지 복기하거나 관리를 할 필요를 많이 느낍니다. 특히 저는 그냥 생각나는 것을 중구난방으로 마구 해보는 스타일이라 더 그런 것 같습니다. 하지만 실제 대화창은 일정 부분 늘어나면 보기가 매우 힘들죠.

그래서 제 경우 chat_~~~_YY:MM:DD.md 문서를 자동으로 생성하게 하면서 여기를 통해서 명령을 합니다. “챗”이라고만 실제 대화방에서 치면 codex는 이파일을 읽어서 명령을 수행합니다. 그리고 자신이 수행한 내용을 (물론 대화방에도 남기지만) 이 파일에 기록하도록 해요. 그래서

사용자(n): 블라 블라~

Codex(n): 블라 블라~

사용자(n): <- 이부분은 n턴에 대해서 자동생성. 제가 여기에 다음 명령을 쓰고 저장 후 “챗” 합니다.

이런식으로 씁니다. 매 챗 커맨드 실행시 날자 확인하고 변경 되었으면 당일 날자로 md 문서 신규 생성 후 저의 전일 마지막 커맨드를 신규 문서에 (1) 턴으로 복사해서 이어가게 합니다. 이러면 챗 내용은 거의 전부 관리가 되요.

여기서 문제 2가지는 컨텍스트가 chat 파일과 실제 대화창에 두 군데 남는 것과, chat 파일 읽기에 따른 토큰 낭비인데, 일단 후자를 피하기 위해서 읽을 때는 tail을 써서 마지막에서 일정 라인 까지만 읽게 합니다. 그리고 그렇기 때문에 오히려 전자는 두군데 컨텍스트가 다 있는게 필요합니다. 즉 실제 에이전트가 반영하는 컨텍스트는 대화창의 컨텍스트이고, 문서는 기록용에 가깝죠. 다만 복기가 필요하면 에이전트에게 필요한 만큼 다 읽으라고 하면 됩니다.

특히 이 기능이 도움이 되는게 스마트폰 등으로 원격데톱 연결해서 개발하기 편합니다. PC에서 문서 폴더만 외부 접속가능하게 해두면 (제경우는 시놀로지에 동기화 되는데, webdav를 통해서 CX 탐색기로 열어 봅니다) 그냥 음성인식 키보드로 명령을 자세히 적고 원격데톱에서는 그냥 “챗”이라고만 칩니다.

3. 터미널 커맨드용 파이썬 코드 사용 (코딩 자동화)
Antigravity는 터미널 커맨드 완전 자동화 설정이 있는데, Codex는 없습니다. 그래서 매번 터미널 커맨드 실행시 물어보는데요. 이걸 아무리 다시 물어보지 않기를 선택해도 한계가 있습니다. 이게 터미널 커맨드를 구별하는 것이 커맨드 1개만 가지고 하는게 아니라 일정 파라미터 값을 포함해서 그런데요.

그래서 저는 터미널 커맨드를 실행할 파이썬 코드를 몇 개 분류해서 만들고, 에이전트는 모든 터미널 명령어는 이 코드를 통해서 실행시키도록 합니다. 파라미터들은 json 파일로 관리해서 매 실행시 json 파일을 업데이트해서 실행하고, 실행이 끝나면 json은 다시 더미 내용으로 복귀시키도록 합니다. 이러면 실제 터미널상 커맨드는 파이썬 파일명으로만 실행하기 때문에 거의 모든 명령어를 그냥 실행할 수 있습니다. json 파일의 기본 내용은 더미 명령어 (pip나 이런건 version 이런거요)로 해두고, 새 대화창 실행시 한 번씩 다 실행하게 합니다.

다만 이 부분은 혹시나 있을 불상사 (에이전트가 PC내의 아무 파일이나 마구 삭제 한다는가...) 를 대비해서 프로젝트 폴더의 격리와 git 관리, DB를 쓴다면 DB 백업이 필수인데, 처음에 좀 시간이 걸리더라도 도커 데스크톱 설치하고 dev_containers 익스텐션 까셔서 격리를 하시고 코딩을 시작하시면 큰 문제는 없을 겁니다. 초심자라고 해도 이부분은 처음에 꼭 조금 알아보시고 해보시는게 좋습니다. 사실 이것도 Chat GPT에게 물어보고 Codex에게 실행시키면 크게 어렵지 않습니다.

여튼 격리와 백업이 어느 정도 되면 이 방식을 이용해서 거의 모든 커맨드를 자동화해서 귀찮은 클릭 없이 처리할 수 있습니다. 아, 그리고 물론 커맨드 화이트 리스트와 블랙 리스트는 따로 관리하도록 합니다. 진짜 절대로 쓰면 안되는 커맨드는 블랙 리스트에 있어야 겠죠.

물론 이 방식으로도 안전상 완전 무결하다고는 생각하지 않는데, 에이전트를 좀 편하게 쓰려면 어느 정도 트레이드 오프 되는 것이라 생각합니다. 그리고 터미널 커맨드  자동화는 그냥 Codex 익스텐션 말고 Codex CLI를 통하면 좀 더 중앙화해서 쉽게 관리할 수 있다고 알고 있습니다. 그런데 Codex CLI는 api 과금 방식으로만 되는 걸로 알고 있어서, 제가 진짜 개발자도 아니고 해서 저는 사용하지 않고 있습니다. 월정액인 Chat GPT Plus 요금제나 구글 AI Pro 요금제 (둘 다 $20 요금제)나 그 이상 플랜 에서 쓸 수 있는 방식만 시도해 보고 있습니다.

사실 에이전트로 코딩을 시키면서 배운 건 이것저것 있는데, 일단 이 3가지가 초심자에게 쉽고 편하게 개발을 하는데 도움이 될까 싶어서 올려봅니다.

혹시 더 좋은 방법이 있거나 정정, 보완할 내용이 있으면 댓글에 남기셔서 다들 공유하면 좋겠습니다.