오늘 아침 면접을 보러 가는 도중 본 기사이다.
Gemini를 CLI 버전으로 공개한다고???
정말 대단한 회사다.
https://n.news.naver.com/mnews/article/009/0005514944
구글, AI코딩 에이전트 ‘제미나이 CLI’ 오픈소스로 공개
커맨드 라인에서 작동하는 AI 누구나 무료로 무제한 사용 가능 구글이 인공지능(AI) 어시스턴트 제미나이를 개발자 터미널에서 사용할 수 있는 AI코딩 에이전트인 ‘제미나이 CLI(Command Line Interfa
n.news.naver.com
다만 내가 주로 근무하는 분리망 형태의 네트워크에서는 사용하지 못할 것 같다.
흥분을 가라앉히고 기사 내용을 찬찬히 뜯어보니, 아무래도 CLI 형태로 제공하지만 백엔드는 구글 서버인 것 같다.
즉, 인터넷 망에 연결되지 않으면 사용할 수 없는 프로그램이다.
현재의 상황
면접본 회사는 SI 회사였는데, 개발진 분위기도 좋아 보이고, 모든 구성원이 한 목표를 향해 움직이는 것 같은 모습이 보기 좋았다.
면접을 진행해 주신 각 팀 팀장님들 역시 질문을 주고받을 수 있었고, 대답을 이끌어내 주셔서 몇 년 만에 보는 면접이었지만 하고 싶은 이야기는 다 하고 올 수 있었다.
일단 내가 많이 참고하던 OKKY 사이트에서 최근 몇 달간 AI와 관련된 격렬한 토론이 있었다.
ai를 사용하는 것과 ai에 대한 두려움, 그리고 ai에 의존하게 되는 모든 과정이 보였던 것 같다.
나 역시 회사에서, 개인프로젝트를 진행하며 chatGPT와 Gemini의 도움을 정말 많이 받고 있다.
설계하지 않고, 주어진 것만 개발하는 개발자들을 코더(Coder)라고 부른다. 사실 우리 중에 코더가 아닌 사람이 누가 있을까 싶지만...
어느 정도는 비하하는 어감이 섞여 있는 것은 사실이다.
컴퓨터 공학을 공부하면 좋은 품질의 프로그램을 개발하기 위해 분석 및 설계 단계의 비중을 가장 높게 잡는다.
요구사항에 분석이 정확하면 무엇을 시험해야 하는지가 나오고, 결국 테스트는 설계 단계에서 확정되는 것이기 때문이다.
무엇을 개발할지 다 설계하고, 테스트 계획까지 끝낸 다음에 개발자들이 투입된다.
설계단계에서 깊은 고민과 좋은 구조를 고민해서 설계가 잘 끝났다면, 개발이 수월하고, 당연히 테스트 역시 수월하다.
유지보수 기간에 갑작스레 튀어나오는 오류도 많이 줄일 수 있다.
이렇기 때문에 경력이 많고, 전체를 그릴 수 있는 개발자 중 선임들이 주로 설계를 담당하게 된다.
그런데 ai가 수없이 많은 시스템을 분석하고, 수없이 많은 코드들을 공부하고 우리 앞에 뚝하고 떨어졌다.
수십 년간 실무에서 구르고 구른 선임 개발자라도 이 llm만큼 많은 코드를 정확하게 기억할 수 없고, 더 많은 상황을 겪었을 수 없다.
llm이 수많은 프로젝트의 요구사항과 그 산출물들을 하루만 학습해도 인간 개발자가 수십 년을 봐야 하는 문서들을 검토할 수 있기 때문이다.
물론 이는 비단 개발자에게만 국한된 이야기는 아닐 것이다.
SI 개발 환경에서의 AI
내가 투입될 고객 사이트는 어디나 그렇지만 보안을 유지해야 하는 곳이다.
이곳에서 외부 네트워크가 연결되는 것은 불가능할 것 같지만, 내부에 내 개발 도구에 LLM을 설치해서 가져가도 되는지는 모르겠다.
아마 나올 때 포맷을 하고 나오는 대신 위해가 되는 프로그램이 아니라면 갖고 들어가는 것은 큰 문제가 없을 것 같긴 한데...
하여간 내가 개발하고 싶은 것은 간단하다.
프런트앤드면 프런트앤드, 백엔드면 백엔드, 기술문서들을 모아서 가벼운 ai 모델에 학습시켜서 미세조정된 모델을 개발자가 편하게 사용할 수 있는 인터페이스로 만들어두는 것이다.
어차피 외부 네트워크가 없어도 gemma3:1b 모델 수준은 충분히 잘 동작한다.
그러면서 내가 고민하는 것을 듣고 대안을 제시해 줄 수 있는 선임 역할도 수행할 수 있다.
영어만 잘하면
이 이야기에서 걱정되는 지점은 아까 위에서 언급한 내용이다.
내가 외부 프리랜서 개발을 시작하면서 가장 먼저 고민한 내용이 이거다.
외부 참조를 할 수 있는 방법이 있어야 하는데...
나도 ai가 활발하지 않던 시절부터 프로젝트를 직접 수행하며 많은 경험을 쌓은 개발자이다.
커리어 시작부터 요구사항 분석과 프로젝트 구조, 인터페이스 설계 등을 수행했고, 시스템의 생명주기를 모두 경험해 보았다.
근데 내부망에서 개발을 한다고 하니 벌써부터 두려움이 앞선다.
없어도 충분히 잘 개발할 텐데... 이미 AI 툴 없이는 살 수 없는 몸이 되어버렸다.
편리함 속에서 내가 잃어버린 것들
위에서 언급한 것 같이 나는 개발에 ai를 사용하는 것에 대단히 긍정적이다.
그러는 동시에 굉장히 부정적인 입장을 갖고 있다.
내가 사용하기는 편하지만, 여기에 익숙해져 버리면 내가 생각하는 능력을 잃게 되는 것 같다.
구글링이 ai에게 물어보는 것의 지위를 차지하고 있을 때는, 수많은 웹 문서들을 보고 무엇이 맞는 것인지 검토하는 것이 하루의 일과였다.
어떻게 하면 내 코드에 적용할 수 있을지 고민하고, 내 지식을 토대로 웹에 있는 코드를 해석하여 적용하는 것이 개발이었다.
지금은 이 과정을 전부 ai가 대신해 준다. 그러면서 내가 하는 사고의 폭이 1/10로 줄어버렸다.
이 문제를 가장 많이 느낀 것이 알고리즘 문제를 풀 때이다.
생각하는 게 귀찮아진 나머지 이런 문제들로 사람을 뽑는 회사들을 내가 욕하게 되더라....
내가 공부해야 하는 것
너무나도 당연한 이야기지만, ai는 만능이 아니다. 아직은 그렇다.
그리고 내 역량은 ai와는 별개의 이야기다. ai가 짜준 코드를 내 프로젝트에 이식하는 것 역시 나의 책임이다.
그리고 무엇보다도 내 코드는 ai가 열심히 작성해 준다 해도, 그 코드를 고객에게 설명하는 것은 나다.
내 역량이 병행하며 성장하지 않고서는 연차만 쌓인 초보 개발자 딱지를 절대 뗄 수 없을 것이다.
그렇다면 내가 공부해야 하는 것은 자명하다.
1. 나는 ai를 채찍질해서 내 과업을 완수할 수 있는 프롬프트 엔지니어링 능력을 길러야 한다.
사실상 사람과 소통하는 능력과 동일하다. 내 환경과 상황, 필요로 하는 것을 명확하게 설명했을 때 효과적인 코드를 ai로부터 받을 수 있다.
2. 나는 ai가 짜준 코드를 해석하고, 프로젝트에 이식할 수 있는 능력을 길러야 한다.
뭐 이건 당연하긴 하지만... 본인이 이해도 못하는 코드를 복사 붙여 넣기 하는 것은 절대로 지양해야 한다.
3. 내가 만든 기능은 작게는 팀에, 크게는 고객에게 설명할 수 있는 능력이 있어야 한다.
응?
위에서 한 이야기는 어디서 많이 본 구조 같다.
회사가 사람을 고용해서 고객의 문제를 해결해 주는 것. 여기에 필요한 능력과 동일하다.
노동력을 갖고, 적재적소에 배치한 뒤, 영업한다. 이거 아닌가?
성급하지만 감히 선언해 본다.
AI시대, 개발자는 'ai라는 유능한 직원을 둔' 1인 기업가로 거듭나야 한다.
물론 개발자들만 해당되는 것은 아닐 것이다.^^
---
반드시 보안담당자와 PM 등의 허가가 있을 때만 사용해야 한다!
'공부' 카테고리의 다른 글
[GCP] Firestore 사용하기 (5) | 2025.06.26 |
---|---|
[BE] Spring AsyncContext - 스프링의 비동기 메시지 인터페이스 (0) | 2025.06.22 |
[매크로] Java와 이미지 인식을 이용한 게임 매크로 만들어보기 (0) | 2025.06.20 |
[이미지변환] 도커를 이용한 이미지 변환 (HEIC To JPG) (1) | 2025.06.20 |
[CI/CD] Gitea + Act_Runner (실패 경험) (1) | 2025.06.13 |