TL;DR — 저는 혼자 AI로 증명사진 서비스를 굴립니다. 저희 서비스의 제1원칙은 원본의 정체성 보존이에요. AI가 사람을 예쁘게 바꾼답시고 딴사람을 만들어버리면, 그건 증명사진이 아니니까요. 그래서 "얼굴도, 몸도, 있는 그대로 두라"는 제약을 아주 단단하게 걸어뒀습니다. 그런데 어느 날 깨달았어요. 그 제약이 너무 단단해서, 정작 사람들이 값을 치르는 이유였던 보정까지 함께 막고 있었다는 걸요. 자세를 반듯하게 세우는 것도, 조명을 정돈하는 것도 전부 "그대로 두라"에 걸려 멈춰 있었습니다. 안전을 위한 규칙이 가치를 조용히 삼킨 날의 이야기예요.
제1원칙은 '보존'이었습니다
증명사진 서비스를 만들면서 제가 제일 먼저 못 박은 원칙이 있어요. 원본의 정체성은 절대 건드리지 않는다.
이건 타협의 대상이 아니었습니다. AI로 사진을 '개선'하다 보면 유혹이 생기거든요. 코를 조금 세우고, 턱선을 다듬고, 눈을 키우고… 그렇게 손대다 보면 결과물은 분명 예뻐집니다. 그런데 그건 더 이상 그 사람이 아니에요. 증명사진은 '나를 증명하는' 사진인데, 거기서 내가 사라지면 대체 뭘 증명하겠어요.
그래서 저는 규칙을 강하게 걸었습니다. "이 사람의 얼굴과 몸을 있는 그대로 유지하라." 모델에게 매번 이 문장을 못 박았어요. 성별을 바꾸지 마라, 나이를 바꾸지 마라, 이목구비를 바꾸지 마라. 한동안은 이 방향으로 계속 제약을 조였습니다. 한번 정체성이 흔들리는 사고를 겪고 나면, 그다음엔 자꾸 더 세게 잠그게 되더라고요.
그런데 값을 내는 이유가 사라졌어요
문제는 엉뚱한 데서 터졌습니다.
무료로 만든 사진과, 돈을 내고 만든 사진이 거의 똑같아 보인다는 이야기였어요. 처음엔 경로가 잘못됐나, 유료 처리가 안 됐나 싶어서 기록을 다 뒤졌습니다. 그런데 유료 과정은 멀쩡히 다 돌고 있었어요. 크레딧도 정상적으로 빠지고, 무거운 생성 모델도 제대로 호출되고 있었습니다. 기술적으로는 아무 문제가 없었어요.
문제는 그 모델에게 제가 내린 명령이었습니다.
유료 보정이 해야 할 일이 뭘까요. 자세를 반듯하게 세우고, 어깨를 정면으로 돌리고, 조명을 스튜디오처럼 정돈하고, 피부 톤을 깔끔하게 다듬는 것. 그게 사람들이 돈을 내는 이유예요. 그런데 제가 걸어둔 제약은 **"얼굴도 몸도 정확히 그대로 두라"**였습니다.
보이시나요. 저는 '개선하라'고 시키면서, 동시에 '아무것도 바꾸지 마라'고 시키고 있었어요. 원본이 이미 팔짱을 끼고 비스듬히 서 있는 사진이면, 모델은 그 자세를 그대로 지키는 게 규칙에 맞는 행동이었습니다. 정면화도, 자세 교정도 전부 "그대로 두라"에 걸려서 실행되지 않았어요. 결과적으로 유료 사진은 원본을 충실하게 재현했고 — 그래서 무료와 똑같아 보였던 겁니다.
제약이 완벽하게 작동했기 때문에, 제품이 실패한 거예요.
제약은 공짜가 아니었습니다
저는 이 일을 겪고 나서 한동안 멍했어요. 잘못한 게 하나도 없는데 결과가 잘못됐거든요. 정체성을 지키자는 원칙도 옳았고, 그걸 강하게 못 박은 것도 사고 이후엔 합리적인 선택이었어요. 각각의 결정은 다 맞았습니다.
틀린 건 그 결정들의 2차 효과를 아무도 안 본 거였어요.
규칙을 하나 조일 때마다, 그 규칙은 제가 의도한 것만 막는 게 아닙니다. 그 근처에 있는 멀쩡한 것들까지 같이 막아요. "얼굴을 바꾸지 마라"는 이목구비를 지켰지만, "몸을 그대로 두라"까지 함께 걸리면서 자세 교정이라는 정당한 개선까지 데리고 죽었습니다. 저는 안전장치를 하나 달았다고 생각했는데, 실제로는 제품의 절반을 조용히 잠가버린 거예요.
이게 무서운 이유는, 아무 에러도 안 났기 때문입니다. 시스템은 초록불이었어요. 크레딧은 빠지고, 사진은 나오고, 로그는 깨끗했습니다. 실패가 오류의 얼굴이 아니라 '정상적으로 작동하는 무의미'의 얼굴로 왔어요. 이런 실패는 모니터링으로 안 잡힙니다. 누군가 "어… 이거 돈 낸 보람이 없는데요?"라고 말해줘야 그제서야 보여요.
그래서 규칙을 이렇게 다시 씁니다
제가 얻은 교훈은 '제약을 걸지 말라'가 아니에요. 정체성 보존은 여전히 제1원칙이고, 앞으로도 그럴 겁니다. 바뀐 건 제약을 쓰는 방식이에요.
첫째, '무엇을 지킬지'와 '무엇을 바꿔도 되는지'를 한 문장 안에서 같이 정합니다. 예전엔 "그대로 두라"만 외쳤어요. 이제는 "정체성(같은 사람·성별·나이·이목구비)은 지키되, 자세와 조명과 마감은 개선하라"처럼, 지킬 것과 바꿀 것을 나란히 적습니다. 보존의 범위를 '전부'가 아니라 '정체성'으로 좁힌 거예요. 제약의 크기가 곧 개선의 여백을 정하니까요.
둘째, 규칙을 조이기 전에 "이건 뭘 같이 막는가?"를 먼저 묻습니다. 새 제약을 달 때 "이게 막으려는 것"만 보면 안 돼요. "이게 덤으로 막게 될 멀쩡한 것"을 같이 적어봐야 합니다. 대부분의 과보정 사고는 이 질문을 건너뛰어서 생기더라고요.
셋째, '초록불인데 무의미한' 실패를 감시 목록에 올립니다. 에러가 안 나는 실패가 제일 비싸요. 그래서 이제는 "이 유료 기능은 무료와 눈에 띄게 달라야 한다" 같은, 결과의 의미를 검증하는 눈을 따로 둡니다. 시스템이 살아 있는지가 아니라, 시스템이 일을 하고 있는지를 보는 거예요.
여러분은 어떤가요
저는 이 일을 겪고서, 제가 걸어둔 다른 '안전장치'들을 다시 돌아보게 됐어요. 그중 몇 개는 분명히 지금도 멀쩡한 뭔가를 조용히 막고 있을 겁니다. 아직 아무도 불평하지 않아서 제가 모를 뿐이겠죠.
혹시 여러분의 시스템에도, 너무 잘 지켜져서 오히려 일을 안 하게 만든 규칙이 있진 않나요. "안전을 위해서"라며 걸어둔 제약이, 정작 그 도구가 존재하는 이유까지 함께 잠가버린 곳은 없을까요.
제약은 공짜가 아니에요. 무언가를 지키기로 하는 순간, 우리는 늘 무언가를 바꿀 자유를 함께 반납하고 있습니다. 중요한 건 그 거래를 알고 하느냐예요. 저는 몰랐고, 제품 절반이 조용히 멈춘 다음에야 알았습니다.
다음엔 청구서가 오기 전에 알아채고 싶네요.