들어가며

8월에 600억 토큰을 사용했다는 회고 글을 남겼던것 같은데 어느새 1100억 토큰을 사용했네요.
600억 토큰을 쓰면서 Claude Code와 Codex 세션을 최적화한 방법들
올 한 해 600억 가까이 되는 토큰을 사용하면서, (많이 사용한 편은 아닌 것 같지만 ㅋㅋ) 내 사용 경험과 여러 레퍼런스들을 참고하여 작업 세션을 최적화 한 방법에 대해 조금 남겨놓으려고 한
mag1c.tistory.com
특정 사용 방식에 정착해서 사용하다가 때로는 전체 하네스 세팅을 초기화 해보기도하고, 외부에 좋은 레퍼런스들이 있으면 내가 사용하는 방식에 들여올 수 있는지도 검토해보고 직접 사용해보기도 하면서 지냈어요.
오늘 쓰고자하는 글은 더 AI를 잘 다루기 위해서 어떻게 프롬프팅을 하는지, 하네스 세팅이 어떤지, 토큰 최적화를 어떻게 하는지 등을 얘기하지는 않아요. 세션을 많이 다루면서 저는 계속 발산만 하고 있었는데 그러느라 놓친 게 무엇인지, 발산하면서도 수렴하며 성장하려면 저에게 어떤 가드레일을 세워야 할지를 정리하는 글이 될 것 같아요.
낭만이 사라진 시대
10을 하고 10을 이해하던 시절
개발자라면 코드를 짜는 시간보다 설계에 시간을 더 들여야 한다는 말을 많이들 들어 보셨을 거예요. 직접 문제를 정의해서 가설을 세우든 R&R이 명확해서 요구사항이 내려오든, 아키텍트처럼 생각하고 견고하게 설계하려고 했죠.
내 설계에 문제가 없는지 구글링하고 스택오버플로우를 뒤졌고, 설계한 대로 짠 코드가 잘 도는지 검증하다 보면 그 코드가 구조째로 머리에 쏙 들어왔어요. 그 과정에서 자연스럽게 공부가 됐고 엔지니어로서 한 단계 올라선 것 같은 기분도 들었어요.
저는 2022년에 개발을 시작해서 그 시절이 길지는 않아요. 그래도 이렇게 반복하면 계속 성장할 줄 알았고, 개발자는 변화에 빨리 적응하고 새 도구를 언제든 받아들여야 한다는 말도 그때는 그냥 그런 줄 알았어요.
100, 어쩌면 200을 하는 시대
AI 시대에 적응을 못 했냐, 도태됐냐고 묻는다면 아니라고 답하겠습니다. 개인으로도 조직으로도 프론티어는 아니어도 LTS 정도는 되려고 늘 노력해 왔고 지금도 그래요.
달라보이는건 양인 것 같습니다. 예전에는 10을 하면 그 10을 전부 이해하려고 따로 시간을 내서 깊게 공부했는데 지금은 AI 덕분에 더 많이 많이, 200을 하는 시대인지라 하나를 깊게 파야하는데 더 많이 더 빨리 하다보면 놓칠 때가 간혹 있더라구요.

예전에는 누군가 물으면 바로 튀어나오던 것을 이제는 저도 AI에게 컨텍스트를 물어봐야 할 때가 있으니까요. 그래서인지 뭔가 공허한 요즘입니다.
채용
채용에도 변화가
종종 보는 판뚜님의 최근 유튜브 영상에서 이런 주제를 다루더라구요?
문제 정의부터 설계, 관련 지식까지 완벽하게 알고 있는데 코드 자체를 읽는 능력은 없는 사람을 기술 면접에서 합격시킬거냐?
(저는 안 뽑을 것 같아요....)
저희 조직도 성장에 속도를 붙이려고 채용을 하고 있고, 저는 20건 가까운 면접에 면접관으로 들어가고 있어요.
JD와 인재상도 Software Engineer에서 Product Engineer로 바뀌어 가는 게 느껴지고, 엔지니어링 역량 자체보다 고객의 문제를 푸는 데 집착하는 사람을 찾고 있어요.
이 변화를 보고 있으면 또 공허해지더군요... 제가 성장이라고 믿고 갈고닦아 온 기술의 깊이가 채용 기준에서 한 칸 뒤로 밀려나는 것처럼 보였거든요... 이런..
이력서와 면접 사이의 간극
채용때문에 최근에 이력서들을 많이 보게 되는데요, 여전히 기술 내용이 대부분이에요. 본인이 정의한 문제도, 성과도 기술 이슈에서 시작해서 기술 지표로 끝나는 경우가 많습니다. 기술적인 부분이 흥미로운 이력서라 면접에 모셔 오면 막상 어떻게를 AI에게 맡기고 검토하지 않은 분들이 종종 보여요. 기술 질문을 하기 위해 화두를 던지면 AI가 이렇게 하라던데요? 로 말문을 막아버리시는 분들도 종종 계시구요.
기억에 남는 분은, 정말 화려한 기술을 많이 다뤄오셨고 이력서 상에서 너무 멋져보였어요. 비슷한 연차인데 정말 많이 다양하게 하셨구나. 과정에서 어떤 과실을 얻으셨을까? 정말 엄청난 엔지니어겠구나! 하는 기대를 갖고, 도리어 제 질문에 실망하지 않게 하기 위해 정말 준비를 많이 했어요. 새벽 3시까지 준비했던 것 같아요. 하지만 면접장에 들어선 제 이상향 같은 분은 막상 여쭤보니 본인이 했다기보다 AI가 한 일을 옮겨 적은 느낌이라 더 깊이 물어볼 수도 없었어요. 그럼 문제를 풀려고 무엇을 정의했는지라도 보자고 질문을 바꿔 봐도 거기서도 답이 나오지 않는 분이 생각보다 많았어요.
그럼에도 성장해야하지 않을까요
나는 이 시대에 어떻게 맞설 것인가
물론 저도 아직 주니어고, 제가 들어간 면접이 다 좋은 결과로 이어진 것도 아니에요. 그래도 개발자는 꾸준히 성장해야 한다는, 어쩌면 가스라이팅 같던 그 말의 기준이 기술의 깊이에서 고객의 문제를 푸는 쪽으로 옮겨간 걸까 하는 생각이 들어요.
그치만 이 문제 정의는 소프트웨어 공학이 오래 다뤄온 원초적인 주제이자 어쩌면 엔지니어링의 핵심이지 않을까 싶어요. 예시로 프레드 브룩스가 1986년에 쓴 No Silver Bullet 논문의 내용을 가져와봤습니다.
The hardest single part of building a software system is deciding precisely what to build.
결국 무엇을 만들지 정하는 일은 항상 소프트웨어 공학 관점에서도 중요하게, 어쩌면 어려운 일로 다뤄져왔고 지금은 거기에 내 제품이, 조직이 성장하기 위한 임팩트 한 스푼이 가미됐을 뿐인거죠. 저도 어쩌면 이 거대한 AI 파동에 넘실거리며 파도를 타는 한 마리의 생선에 지나지 않았을지도...(?)
마치며
엔지니어의 역량 안에 고객의 문제를 정의하고 해결하는 일이 들어 있고, 그걸 기술로 푸는 사람이 결국 엔지니어입니다. 어떻게의 영역(수단)이 엔지니어링이라면 그 깊이는 계속 채워 나가는 게 맞지 않을까요? AI가 코드 영역은 이미 대체했다고들 하지만 적어도 내가 설계하고 AI를 시켜 짠 코드는 필요하면 직접 읽고 이해하고 고칠 수 있어야 해요. 직접 코드를 짜던 때처럼 관련 지식도 깊이 알고 있어야 하고요.
AI로 워크플로우가 바뀌기 전에도 지금도 여전히 유효한 얘기이고 강력히 주장합니다. 어쩌면 이건 엔지니어로서의 성장이나 소양보다 책임감의 영역일 수도 있어요. 운영 중인 서비스에 장애가 났을 때 Claude도 Codex도 같이 장애일 수 있다는 경각심은 늘 품고 있어야 하니까요. 설계할 때 트레이드오프와 사이드 이펙트를 늘 따지듯이 말이에요.






































