TL;DR — 혼자 AI 에이전트들이랑 작은 사진 서비스를 굴립니다. 반년쯤 전에 어떤 AI 이미지 모델로 "와, 이건 작품인데" 싶은 결과물을 뽑아둔 적이 있어요. 그런데 얼마 전 똑같은 모델로 다시 해봤더니, 그때 그 느낌이 안 났습니다. 코드도 그대로, 모델 이름도 그대로인데요. 뒤에서 안전 필터가 조금씩 빡빡해졌고, 가격은 올라 있었어요. 그날 깨달은 게 있어요. 나는 내가 만든 게 아닌, 남의 엔진 위에 회사를 짓고 있었구나. 이 글은 그 불안에 어떻게 대응하기로 했는지에 대한 기록입니다. 결론부터 말하면 "특정 모델을 믿지 않는 구조"를 만드는 거였어요.


저는 사진 일을 20년 했고, 지금은 AI 에이전트 여러 대를 데리고 혼자 회사를 굴립니다. 사진을 다루는 일이다 보니, 회사의 심장은 결국 이미지를 생성·보정하는 AI 모델이에요. 그런데 그 심장은 제가 만든 게 아닙니다. 거대한 AI 회사들이 만든 모델을, 저는 API로 빌려 쓰죠.

처음엔 이게 축복인 줄만 알았어요. 혼자서 수백억짜리 모델을 월 몇만 원에 빌려 쓰다니. 1인 회사가 가능해진 이유 자체가 이거였으니까요. 그런데 빌린 집에 오래 살다 보면, 집주인이 있다는 사실을 잊고 지내게 됩니다. 어느 날 갑자기 그걸 깨닫기 전까지요.

같은 모델로 같은 걸 시켰는데, 결과가 달랐어요

사건은 단순했습니다. 반년쯤 전에, 어떤 생성 모델이 막 나왔을 때 제가 테스트로 뽑아둔 결과물이 하나 있었어요. 그때 저는 진심으로 "헐" 했습니다. 사진 20년 한 눈으로 봐도 이건 작품이었거든요.

그래서 최근에 같은 작업을 다시 돌렸어요. 같은 모델, 같은 프롬프트, 같은 코드. 그런데 그때 그 품질이 안 나왔습니다. 미묘하게 밋밋하고, 어딘가 조심스러워진 결과물이 나왔어요. 처음엔 제 프롬프트가 망가졌나 싶어서 한참을 뜯어봤습니다. 코드 어디 바뀐 데 없나 커밋 기록도 다 뒤졌고요.

문제는 제 쪽이 아니었어요. 모델은 이름만 그대로였지, 뒤에서 조용히 바뀌어 있었습니다. 안전 필터가 점점 빡빡해지면서, 예전엔 통과하던 표현이 이제는 부드럽게 깎여 나오더라고요. 게다가 가격표를 다시 보니 단가도 올라 있었어요. 한 장 뽑는 비용이 처음 쓸 때의 몇 배가 돼 있었습니다.

누가 잘못한 건 아니에요. 그 회사 입장에선 안전을 강화하고 가격을 현실화하는 게 당연한 경영 판단이죠. 문제는, 그 판단의 결과를 제가 통제할 수 없다는 거였어요. 제 서비스의 품질과 원가가, 제가 한 줄도 건드리지 않은 사이에 바뀌어 있었던 겁니다.

빌린 집의 진짜 무서운 점

여기서 저는 좀 서늘해졌어요. 생각을 정리해보니, 남의 모델 위에 회사를 짓는다는 건 이런 통제 불가능한 변수를 떠안는 일이더라고요.

  • 품질이 내 손을 떠나 있다. 어제 되던 게 오늘 안 될 수 있어요. 그것도 공지 없이요.
  • 원가가 내 손을 떠나 있다. 단가가 오르면 내 마진이 깎입니다. 가격을 올려 손님한테 떠넘기든지, 내가 먹든지 둘 중 하나죠.
  • 존재 자체가 내 손을 떠나 있다. 모델이 deprecated 되면, 나는 멀쩡히 잘 돌던 기능을 통째로 갈아엎어야 해요. 그 회사의 로드맵이 곧 내 할 일 목록이 되는 거죠.

사진관을 20년 하면서 저는 카메라도 렌즈도 조명도 다 제 것이었어요. 누가 밤새 제 카메라의 화질을 몰래 바꿔놓는 일은 없었죠. 그런데 AI로 넘어오니, 가장 중요한 도구가 남의 클라우드 안에 있고, 그 안에서 무슨 일이 벌어지는지 저는 끝까지 다 알 수가 없었습니다.

이게 흔히 말하는 플랫폼 리스크, 벤더 종속(vendor lock-in)이라는 거더라고요. 말로만 알던 개념이 제 손익계산서를 직접 건드리고 나서야 피부로 와닿았어요.

그래서 내린 결론: 모델을 믿지 말고, 구조를 믿자

한참 고민하다가 방향을 정했어요. "가장 좋은 모델 하나를 찾아서 거기 올인한다"가 아니라, "어떤 모델이 와도 내 서비스는 안 흔들리는 구조를 만든다" 쪽으로요. 모델은 갈아끼우는 부품으로 보고, 회사의 뼈대는 내가 쥐기로 한 겁니다.

구체적으로는 세 겹이었어요.

1겹. 모델을 직접 부르지 않는다 — 사이에 한 겹을 둔다

제일 먼저 한 건, 서비스 코드가 특정 모델을 직접 호출하지 않게 만드는 일이었어요. 중간에 얇은 층을 하나 뒀습니다. "사진 한 장 생성해줘"라는 요청의 의미만 위에서 정의하고, 그걸 실제로 어떤 모델한테 어떻게 넘길지는 아래층이 알아서 처리하게요.

이러면 모델이 바뀌거나, 더 싼 게 나오거나, 쓰던 게 사라져도, 바꿔야 할 곳이 딱 한 군데가 돼요. 서비스 전체를 헤집을 필요가 없죠. 처음 짤 땐 "이걸 굳이 한 겹 더 싸야 하나" 귀찮았는데, 모델이 한 번 바뀌고 나니 이 한 겹이 저를 살렸습니다.

2겹. 손님에게는 모델이 아니라 '크레딧'을 판다

두 번째는 좀 더 사업적인 결정이었어요. 저는 손님에게 "이 모델로 만든 사진"을 팔지 않기로 했습니다. 대신 크레딧이라는 제 서비스 안의 내부 화폐를 팔아요. 손님은 크레딧으로 결과물을 받고, 그 뒤에서 어떤 엔진이 돌아가는지는 제가 책임지는 영역으로 둡니다.

이게 왜 중요하냐면, 뒷단 모델이 바뀌어도 손님 경험은 그대로이기 때문이에요. 원가가 출렁여도 가격 체계는 제가 크레딧 단위로 흡수·조정할 수 있고요. 결제와 가치를 모델이 아니라 내 화폐 단위에 묶어두는 것 — 이게 벤더의 변덕과 손님 경험 사이를 끊어주는 완충재가 됐어요.

3겹. 마지막 한 줄은 사람이 잡는다

세 번째가 어쩌면 제일 사진관다운 결정이에요. AI가 아무리 좋아져도, 그리고 바로 그 AI가 어느 날 갑자기 나빠질 수도 있으니까, 자동 생성이 실패했을 때 사람이 마지막으로 손보는 경로를 일부러 남겨뒀습니다. 전부 자동으로 가는 게 효율적이지만, 효율 100%는 곧 위험 100%더라고요.

AI가 90%를 빠르고 싸게 처리하고, 그 AI가 흔들리는 10%는 20년 한 사람의 눈이 막아준다. 이 마지막 한 줄이 있으면, 뒷단 모델이 어느 날 멍청해져도 손님은 그걸 모릅니다. 결과물의 품질을 모델이 아니라 약속으로 보장하는 거죠.

솔직한 고백 — 사실 이건 영원한 해결이 아니에요

여기까지 써놓고 보니 제가 무슨 답을 다 찾은 사람처럼 보일까 봐 좀 민망합니다. 그래서 정직하게 적어둘게요.

저 세 겹을 다 둘러도, 결국 가장 비싼 일(이미지 생성 그 자체)은 여전히 남의 모델이 합니다. 저는 종속을 없앤 게 아니라, 종속의 충격을 흡수하는 구조를 만든 것뿐이에요. 집주인이 사라진 게 아니라, 집주인이 변덕을 부려도 제가 덜 휘청이게 만든 거죠.

진짜 근본 해결은 제 모델을 갖는 거겠지만, 1인 회사가 거기까지 가는 길은 멀고 비쌉니다. 그래서 저는 당분간 이 "흡수하는 구조" 위에서 버티기로 했어요. 그리고 이상하게도, 이 한계를 인정하고 나니 마음이 편해졌습니다. 완전한 독립이 아니라 흔들려도 안 넘어지는 상태를 목표로 바꾸니까, 할 수 있는 일이 보이더라고요.

생각해보면 사진관 시절에도 그랬어요. 필름값이 오르고, 인화지 회사가 단종을 때리고, 카메라 마운트 규격이 바뀌고. 도구는 늘 남의 사정으로 흔들렸습니다. 그때 살아남은 사진관은 특정 장비에 올인한 곳이 아니라, 장비가 바뀌어도 자기 결과물의 기준을 지킨 곳이었어요. AI로 바뀌었을 뿐, 본질은 똑같더라고요.

그래서 묻고 싶어요

남의 플랫폼 위에 무언가를 짓고 계신 분들께 묻고 싶습니다.

  • 여러분의 서비스에서, 여러분이 통제할 수 없는 부품은 어디인가요? 그게 어느 날 조용히 바뀌면 무슨 일이 일어나죠?
  • 그 부품을 더 좋은 걸로 바꾸려면, 코드 몇 군데를 고쳐야 하나요? 한 군데면 건강한 거고, 수십 군데면 이미 종속이 깊은 겁니다.
  • 손님은 여러분의 무엇을 사고 있나요? 특정 기술을 사는 건가요, 아니면 여러분이 책임지는 결과를 사는 건가요?

저는 "남의 엔진을 빌려 쓰되, 그 엔진에 회사의 운명을 걸지는 말자"는 한 줄로 정리하고 있어요. 빌린 집에 살더라도, 가구는 내 것이어야 이사할 수 있으니까요.

혹시 비슷한 고민 하고 계신 분 있으면 어떻게 풀고 계신지 정말 궁금합니다. 저도 아직 버티는 중이라서요.