우리 회사는 개발자들에게 AI개발 도구인 커서 팀 버전을 지원합니다.

 

IDE는 개발자들이 매일 만나는 도구입니다. 그런데 도구별로 아주 많이 다르진 않다보니 한번 사용법을 익히고 나면 다른 IDE의 사용법을 따로 익히지 않습니다. (호랑이 담배 피던 시절에는  비주얼스튜디오 사용법에 관한 책도 출간되었었죠. 누가 번역했더라; 책 뒷날개를 보니 최근 영진에서 비주얼스튜디오 코드 가이드도 냈었네요.)  특히 최근 나온 IDE 도구들이 VSC를 기반으로 확장되다 보니 어느 순간부터 비슷한 느낌으로 대충 사용하게 됩니다.(저는 VSC가 IDE가 아닌 코드 에디터로 봅니다.) VSC기반인 커서도 마찬가지입니다.

 

하지만 AI가 코딩에 대해 새로운 관점을 열었기 때문에 관련 도구도 제대로 사용해봐야겠다는 생각에 커서 관련 책을 읽게 되었습니다.

AI 에디터 커서 완벽 가이드/키노시타 유이치로/영진닷컴

 

<AI 에디터 커서 완벽가이드> 책은 일본에서 나온 입문서입니다. 실용성을 강조하는 일서만의 느낌이 있습니다. 대략 300쪽 남짓의 분량이지만, 개발을 해오셨던 분이라면 쉽게 읽을 수 있습니다. 책은 크게 3부분으로 나눌 수 있습니다. 처음 1장부터 3장까지는 기본적인 커서의 사용법을 설명합니다. 4장에서는 커서의 각종 설정을 다루고, 5장에서는 실전 예제를 다룹니다. 책에서는 파이썬과 자바스크립트, 모바일(스위프트로 만들고 플러터로 전환하는 방법)을 다루고 있습니다. 6장은 부록 느낌으로 전체적인 AI 코딩에 대한 생각을 저자 나름의 관점에서 정리하고 있습니다.

 

저는 4장이 괜찮았습니다. 기본적인 사용법을 알고있는 터라 3장까지의 내용은 술술 넘어갔습니다. 그냥 이렇게도 쓸 수 있겠군 하면서 다음 장으로 넘어갔습니다. 4장은 제대로 커서를 사용하기 위한 각종 설정 방법을 정리합니다. 물론 문서 사이트를 뒤져보면 설명이 나오겠지만,  현업에서 필요한 설정을 잘 정리했다는 생각이 들었습니다. 5장은 조금 아쉬운데, 예제들이 너무 단순하고 실용적이진 않았습니다. AI코딩의 기본 개념을 느낄 수 있을지는 몰라도, 이미 커서를 사용하시는 분들이라면 조금 식상하게 느껴질 수 있습니다.

 

처음 커서를 사용하시는 분들이라면 이 책을 읽으면서 전체적으로 이러한 도구의 동작원리를 이해하고 어떻게 사용해야 할 지에 대한 감을 익히는데 도움이 될 것 같습니다. 이미 커서를 사용하고 계신 분들이라면 3장과 4장 정도만 조금 집중해서 읽으시고, 다른 장들은 가볍게 읽으셔도 되겠네요. 4장을 중심으로 팀 표준을 만들어 보는 것도 유익할 것 같습니다.

 

 

전체적으로 깔끔한 커서 입문서였지만, 몇가지 아쉬운 점이 있습니다. 

 

5장 예제에서 문자 코드를 변경하는 원라인 커맨드를 만드는 과정을 다루는데요. SHIFTJIS 인코딩을 예제로 설명하였더라구요. (170쪽 근방) 이 부분은 EUC-KR 파일을 UTF-8으로 변환하는 식으로 번역하셨으면 더 좋았을 것 같습니다. 179쪽을 보면 정규표현식으로 '단기'를 '서기'로 바꾼 부분이 있어서 더 그런 생각이 들었습니다. 일본 자체 역법을 우리나라 상황에 맞게 풀어내신 것 같은데, 문자열 변환도 우리나라 상황에 맞게 바꿨으면 하는 바람이었습니다.

 

또 270쪽의 앤트로픽의 프롬프트 엔지니어링 문서는 한글판이 있으므로 한글판 URL을 소개해 주셨으면 금상첨화였지 않았을까 싶습니다.

 

읽다가 166쪽에서 오타를 발견했는데요. 프롬프트에서 4번 항목은 '각 생에서'가 아니고 '각 행에서'가 맞습니다. 167쪽 그림에도 잘못 입력되었는데, AI(LLM)이 이 정도 실수는 잘 이해하고 넘어가니 참 좋은 세상입니다!

 

여하튼 다들 한번씩 읽어보시면 커서라는 도구의 잠재력을 100% 활용하는데 도움이 되리라 생각합니다.

 

반응형

 

이번달부터 회사 개발자 직군에게 코파일럿에 이어 커서도 지원하기로 결정했다. 이로써 우리 회사 개발자들은 Copilot, Cursor, Q Developer를 사용할 수 있다. 물론 나처럼 Cline + Gemini Pro 2.5/MS Azure OpenAI를 사용하는 경우도 있다.

 

이왕 지원하기로 했으니, 그동안의 경험을 바탕으로 나름 체득한 더 잘 사용할 방법을 정리해 보자.

 

다른 AI도구를 사용하여 명확하고 상세한 계획을 작성한다.

ChatGPT나 Claude를 사용하여 무엇을 만들고 싶은지에 대한 질의응답과정을 주고 받는다. 이 과정에서 명확한 지시문을 만드는 것이 좋다. 완성된 버전을 얻게 되면 이 내용을 마크다운 파일로 내려 받아서 코딩 지원 AI에게 전달한다. 한 번에 모든 문제를 해결하기 보다는 단계별 분업을 지시하는 것이 코딩 AI의 오류를 줄일 수 있다.

 

AI가 전체적으로 지켜야할 규칙을 설정한다.

예를 들어 “테스트 코드를 작성한 후 기능을 구현하고, 테스트가 통과할 때까지 반복한다. 나는 깔끔한 코드를 좋아한다” 등이 될 수 있다. 커서의 경우.cursorfules 파일에 명시한다. 다른 도구들을 사용할 경우 사용자 정의 프롬프트에 넣는다. 자신이 좋아하는 아키텍트나 기준이 있으면 명시적으로 지시한다. 다른 사람들이 만들어둔 규칙 파일도 잘 활용하자. https://github.com/PatrickJS/awesome-cursorrules 에 가면 많이 볼 수 있다.

 

명령이 아니라 생각의 흐름을 프롬프트에 담아 선언적으로 기술한다.

프롬프트도 일종의 코드이다. 다만 AI 코딩 보조 도구를 사용할 때 명령형이 아닌 선언형으로 인식하고 프롬프트를 작성해야 한다.

개발자로서 나의 의도와 생각의 흐름을 AI에게 설명해 줘야 한다. 

AI가 코드를 잘 작성하든 그렇지 않든, 그냥 똘똘한 주니어 사회 초년생에게 지시한다고 생각하고 작성하자.

자주 사용하는 프롬프트는 계속 저장/유지보수해 나가자.

시스템 프롬프트로  공통 요구사항(명확하고 간결한 답변 제시, 대안을 항상 제시, 불필요한 설명 방지(요금 줄이기), 기술적 디테일 우선시) 등을 적용한다.

다른 사람이 작성한 코드도 잘 읽어보자. 이를 정리한 사이트인 https://context7.com/ https://cursor.directory/ 도 참고하자.

 

 

깃으로 코드를 관리하면서 조금씩 점진적으로 코드를 작성한다.

AI가 어디로 튈지 모른다. 튀는 걸 막는 것이 문제라기 보다는 튀기 전의 상태로 복귀시키기가 어려운 것이 문제다.

깃으로 조금씩 변경하고, 항상 테스트 코드를 작성한다. 에이전트일 경우 무조건 이 테스트를 통과하도록 작성하라고 지시한다. 그러면 실패했을 경우 AI가 원인을 분석한 다음 수정한다. 

일단 동작하는 코드를 얻었다면 항상 AI가 작성한 코드를 검토한 다음 커밋한다.

AI가 튀었다면 이전 대화기록을 요약해서 다시 대화를 시작하는게 낫다.

 

이가 없으면 잇몸으로라도....수동 A2A를 이용하자.

A2A가 있지만 아직은 우리가 사용하는 에이전트들끼리 상호 작용을 하지 못한다. 그럼 어떡할 것인가. 수동으로라도 해줘야지.

문제가 발생하면 여러 도구를 사용하자. 문제 원인과 코드를 ChatGPT나 Claude에게 물어보자. 어떻게 고쳐야 하니 물어보면 답해주는 경우가 많다. 물어보는 것도 귀찮으니 커서에게 문제와 관련된 파일 목록, 기능, 문제점을 하나의 보고서로 요약하게 만들자. 이 파일을 다른 AI에게 던져주고 답을 얻는다.

 

알짜정보만 AI에게 제공하자.

맥락 정보가 길면 길수록 AI가 작업을 잘 이해한다. 파일을 참조할 때에는 @를 사용하고, 쓸데없는 중간 파일은 .cursorignore 파일에 정의하여 제외시킨다. 맥락을 유지하면서 계속 일을 잘 할 수 있는게 중요하다. 이 부분에서는 AI로 만화를 그리는 분들은 어떻게 활용하는지 잘 살펴볼 필요가 있다. 일관되게 해당 작업을 개선하는 것은 AI가 의외로 잘하지 못한다.

 

 

결국 적고보니 한마디로 정리된다.

"개발 프로세스에서 코드 작성이라는 영역은 AI에게 맡기더라도 개발자들은 설계와 구조에 좀 더 집중해야 한다."

반응형

+ Recent posts