(image 2.0의 충격적인 썸네일 어그로)
면접을 봤다.
순수 AI Native 빌더 면접이었고, 지원만해도 최소 2만 원, 합격하면 10만 원 상품권을 주는 초호화(?) 공고였다.
덜컥 1차에 합격했고 면접을 준비했다.
대기실에서 좀 기다리다가 들어갔고, 1차 3:1 대면면접이고 40분 정도 진행됐다.
공고 요구사항을 충족시키려 1.5일 만에 만든 두 프로젝트(Interface Hub, Cost Compass)를 만들어 들고 갔다.
준비하면서 코드 설계 결정을 간략하게 외웠는데,
막상 면접에서는 프로젝트와 설명이 절반이었고 로직 얘기는 소개 부분에서 끝났다.
나머지 절반은 "왜 로봇에서 이쪽으로 오려고 하세요? 잘하실 것 같지만 금융 도메인에 대해 재미를 느끼실지 모르겠네요.." 류의 질문이었다.
그 질문이 더 어려웠다.
아무튼 면접 자체는 면접관 분들이 많이 이해해주셔선지 편안하고 기분 좋은 분위기로 마쳤다.
어쨌든 일단 경험을 했으면 배우는 건 있어야 하니 정리해보려 한다.
다시 보면서 뭐라도 공부해서 가져가야지.


금융 도메인 지식이 거의 없다보니 통합 인터페이스와 관리회계 쪽으로 개발하기로 했다.
두 가지 이상 제출하면 가산점이 있다고 해서 이 두 주제로 정하게 되었다.
그렇게 정한 게 Interface Hub와 Cost Compass다.
Interface Hub는 5가지 프로토콜을 다룬다.
REST, SOAP, MQ, BATCH, SFTP... 다 다르다.
처음엔 그냥 if-else로 분기하는 게 떠올랐다.
if (REST) ...
else if (SOAP) ...
else if (MQ) ...
근데 이렇게 짜면 새 프로토콜 추가할 때마다 이 함수가 비대해진다.
gRPC 한 줄, GraphQL? 또 한 줄.
함수 하나가 모든 프로토콜의 책임을 짊어지는 구조다.
이건 결코 좋은 구조가 아니다.
AI에게 질의하며 고민한 결과(사실 고민은 AI가 거의 다 했지만)
공통 인터페이스를 두고, 각 프로토콜이 그걸 구현하는 방식으로 갔다.
실행 엔진은 "어떤 프로토콜인지" 모르고도 동작하고, 그냥 인터페이스만 호출한다.
새 프로토콜 추가할 땐 어댑터 파일 하나 + registry 한 줄만 추가하면 된다.
Claude의 말에 따르면 이는
"디자인 패턴 책에 다 나오는 얘기지만, 직접 안 짜보면 진짜 필요한지 잘 모르는 기법"
이라고 해서 이번에 그렇게 수행시켜봤다.

면접에서 패턴 이름만 말하지 말고,
왜 이게 필요했는지를 간략하게 외웠는데 다행히 잘 풀린 것 같다.
Cost Compass 데이터는 326건으로 선정했다.
5개 본부, 22개 프로젝트, 6개월치 원가 항목.
상식적으로 본부별 합계 같은 건 SQL GROUP BY로 짠다.
근데 Claude는 그걸 안 쓰고, JS에서 그냥 Map으로 집계했다.
이유는 단순하다.
console.log 한 줄로 디버깅이 끝난다규모가 작을 땐 단순한 게 빠르고, 디버깅도 쉽다.
물론 데이터가 100만 건쯤 되면 얘기가 달라진다.
면접에서 이에 대해 raw SQL로 바꿀 수 있게 데이터 집계 로직을 한 파일에 다 모아뒀다고 소개했다.
핵심은, "바꿀 수 있게 짜뒀다"는 점이다.
UI는 그 함수의 반환 타입만 보고 그린다.
함수 내부가 JS Map이든 raw SQL이든 UI는 알 바 아니다.
지금은 JS Map이지만, 나중에 SQL로 같은 자리에서 갈아끼우면 된다. UI는 한 줄도 안 바뀐다.

이걸 추상화 비용이라고 부른다고 한다.
처음엔 함수 하나 더 만들고, 반환 타입 명시하는 등 시간이 조금 더 든다.
근데 한 번 만들어두면 갈아끼우는 비용이 거의 0이 된다.
면접 마지막쯤에 이런 질문이 나왔다.
"로봇에 흥미를 느끼던 사람이, 같은 개발이라지만 다른 도메인에 흥미를 느낄 수 있을까요?
잘하실 것 같지만 금융 도메인에 대해 재미를 느끼실지 모르겠네요.."
답을 준비해두긴 했는데, 막상 들으니까 더 진지하게 들렸다.
저는 취미로 AI 페어 개발을 하고 있습니다.
지금 회사에서는 로봇팔 자동화 시스템을 다루지만,
퇴근 후나 주말에는 웹 풀스택 프로젝트를 제작합니다.
두 영역이 분리돼 있다는 게 오히려 제 패턴이에요.
직무 전환 후에도 로봇에 흥미가 남아있다면, 취미와 현업의 방향이 바뀌는 것뿐이겠죠.
제 진짜 흥미는 한 도메인이 아니라 AI를 활용한 빠른 성취 그 자체에 있습니다.
말하면서 깨달았는데, 이게 평소에 내가 정말로 생각하던 거였다.
로봇이 미래지향적이고 좋아서 로봇학부에 갔고 로봇 회사에 입사했지만,
정말 매일 쉬지 않고 들여다보게 되는 건 AI다.
바이브코딩이 가능해진 시점부터 더 그렇다.
물론 로봇이라는 도메인에 대한 흥미는 분명 있다. 그러나 도메인은 흥미의 대상이 될 수 있지만,
흥미의 본질은 도메인이 아니라 도구일 수 있다는 걸 면접에서 처음으로 정리해서 말했다.
면접 준비하면서 외운 건 딱 두 개였다.
근데 결국 면접에서 제일 길게 답한 건 직무 전환 얘기였다.
코드 설계는 외운 선에서 답했고, 모르는 건 모른다고 확실히 밝혔다.
직무 전환 얘기는 외운 게 아니라 평소에 생각하던 걸 풀었다.
오히려 그런 솔직함 덕분에 면접 분위기 자체는 더 좋게 가져갈 수 있던 것 같다.
(결과는 모르겠지만)

추가로 앞서 말했듯이 이번 프로젝트는 둘 다 바이브코딩으로 만들었다.
Adapter 패턴도 JS Map 집계도 추상화도, AI랑 같이 짜면서 결정한 것들이다.
근데 막상 면접장에서는 그게 온전히 내 입에서 나와야 했다.
AI가 짜준 코드라도 왜 이렇게 짰는지는 결국 내가 설명해야 한다.
이게 현시점 바이브코딩의 진짜 학습 곡선이자 바이브코더들의 병목구간인 것 같다.
2차 면접이 있다면, 그땐 더 잘 풀어내보자.
Interface Hub: https://interface-hub.vercel.app
Cost Compass: https://cost-compass-omega.vercel.app
코드는 GitHub(@dbwls99706)에 공개돼 있다.
글 잘 읽었습니다. 저는 임베디드 개발 및 SW 검증 직무로 취직 준비 중입니다. 글을 읽던 중 저보다 먼저 개발 공부 및 취직 준비를 먼저 시작한 친구와의 대화가 생각나 글을 남겨요. 그 친구는 본인이 코딩을 잘 못한다는 이유로 오로지 코딩 테스트 및 공기업 입사를 위한 자격증 취득에만 시간을 투자하고 있어 안타깝다는 생각이 들었습니다. 물론 사람마다 생각이 다 다르지만 개발을 공부하시는 분들이나, 개발 직무로 취업을 준비하시는 분들이 이 글을 읽고 힘을 얻었으면 합니다. 앞으로의 개발은 손 코딩만으로 이뤄지진 않을테니 직무에 맞춰서 포트폴리오를 준비하되, 프레임워크 사용법 및 시스템 아키텍처 설계에 좀 더 주안점을 두고 공부하는게 좋다는 것을 알았으면 합니다.
로봇분야에서 금융분야까지 진출하시는건가요? 너무 멋지십니다! 응원해요! 저는 원래 SW쪽만 보고 있다가 ipp때문에 로봇 쪽도 보고 있어요. 저도 다양한 분야를 섭렵해보겠습니다 ㅎㅎ
죄송하지만 글을 읽지도 않고 답변을 씁니다.
앞으로 모든 직군에서 업무능력은 점점 불필요해지고, 충성심,매력을 채용의 근거로 삼을것이라고 봅니다. 면접에서 제일 중요한건 아마도 매력어필 이었을 겁니다.