지난 7월 26일, Google I/O Extended Incheon 2025 이 열리는 인하대로 갔다. 이런 이벤트는 예전에 2022년도에 건국대에서 열린 Flutter I/O Extended Korea 이후로 처음이었다. 당시엔 Flutter 개발자로서 Flutter에 집중된 행사를 참석했는데, 지금은 웹, 백엔드, 모바일 가리지 않고 모두 하기 때문에 더욱 흥미로운 행사였다.
주제는 크게 A.I., General, Mobile, Tech, Hands-on 있었고 Hands-on을 제외하면 각 주제마다 6개의 세션이 있었다. Hands-on은 아무래도 실습이다 보니 3개의 세션으로 구성되어 있었다.
내가 선택한 세션은 다음과 같다.
A.I.
General
Mobile
Tech
다른 세션들도 재미있어 보이는 것들이 많았지만 다 들을 수가 없어서 아쉬웠다. 들어본 6개의 세션 모두 흥미로웠지만, 그 중에서 [1인 개발 서비스를 위한 Gemini CLI 사용기]가 머리에 가장 깊게 남았다. 그래서 Gemini CLI에 대한 얘기만 집중적으로 해보려고 한다.
생성형 A.I.를 이용해 개발을 하는게 어느새 당연한 시대가 되었다. 기업에서도 처음엔 반대하다가 하나 둘씩 시범적으로 A.I.를 도입하기 시작했다. 나도 처음에는 이해하지도 못하는 코드를 만드는게 과연 무슨 의미가 있단 말인가 생각하고 A.I.에 대한 불신이 강했지만, 이제는 코드의 분석이나 오류 코드에 대한 해석을 할 때 A.I.를 잘만 사용하고 있다.
발표자분은 지난 6월 발표된 Gemini CLI를 이용해 스팸 필터링 서비스를 만드는 과정을 설명했다. Gemini CLI 를 이용해서 스팸 필터링을 위해 작업해야하는 수많은 것들을 어떻게 처리했는지에 대한 내용이었다. 기존의 Cursor와 비교해봤을 때, Cursor는 단일 파일을 수정하는 것은 쉽지만 전체적인 구조를 변경하는데엔 약점이 있는데 반해, Gemini CLI는 전체적인 구조를 수정하면서 작업하는 것이 용이하다고 한다.
Gemini CLI를 사용할 때 필요한 팁에 대해서 배운 것도 유용했다. 프로젝트마다 GEMINI.md 파일을 만들어서 그 안에 해당 프로젝트에 관한 정보를 넣어두면 Gemini CLI가 GEMINI.md 파일을 참조해서 작업을 해주는 것이었다. 발표자분은 GEMINI.md 파일 안에 Build & Fix Bugs를 반드시 넣어두고, 기능들을 추가하면서 하나씩 체크박스로 관리하라고 했다. 이런 것들도 Gemini CLI가 읽어서 작업할 때 참고하는 듯 했다.
아, 그리고 작업 단위도 하나의 세션에 몰아서 하는게 아니라, 여러개의 세션에 나눠서 하는게 좋다고 했다. A라는 작업을 끝내고 나면 세션을 종료하고, B라는 작업을 할 때 다시 새 세션을 열어서 작업 하는 식으로. 그렇지 않으면 Gemini가 기존 작업물을 쓸데없이 참조하거나, 변경을 가하는 것 같다.
Gemini CLI를 이용해 하나의 앱 서비스를 제대로 만들었다는 점에서 이제는 A.I.가 개발 보조 툴로서 역할을 어느 정도 갖추게 되었다고 생각했다. 물론 그것 또한 사용자가 A.I. 툴에 얼마나 정교한 명령을 내릴 수 있느냐에 따라 다르겠지만.
예전에 한 개발자 커뮤니티에 올라온 글을 본 적이 있다. A.I.를 하나의 도구보다는 조수 같은 것으로 생각해야한다고. 각도기나 자처럼 언제 어떻게 사용해도 항상 같은 결과를 보여주는 도구가 아니라, 특정 업무를 요청하면 그것에 대해서 조사해서 찾아오는 신입사원처럼 봐야한다고. 우리가 신입사원의 결과물을 맹신해서 그대로 쓰는게 아니라 검토하고 반영하는 것처럼, A.I. 결과물도 그렇게 처리해야한다는 것이다.
이제는 Gemini CLI 라는 괜찮은 조수도 생겼겠다. 좋은 팁도 얻은 만큼, 이 조수를 이용해서 개인 프로젝트를 좀 더 발전시키고 내 코딩 역량도 강화시켜볼까 한다.