베터코드 인사이트의 부활
다국어 처리를 해야 할 일이 있어서 동료에게 개발 요청을 하고 결과를 살펴보았습니다. 그 결과 흥미로운 사실을 발견할 수 있었습니다.
정확히 말하면 원하는 결과가 나왔느냐가 아니라 이런 방식이 향후에 수정이 필요할 때도 빠르게 반복할 수 있느냐를 물었을 때 발견할 수 있었던 것이죠.
개발자인 동료는 cursor 덕분에 빠르게 수정할 수 있었다는 사실을 자랑스럽게 소개했습니다. 제가 조금 더 깊이 추정해 보면 인공지능이 동료의 시간을 아껴 준 부분은 다음 내역입니다.
외국어 번역 능력
JSON 형태의 키-값 목록 중에서 같은 위치에 있는 값을 찾아서 수정하는 비용(시간)
하지만, 감각적으로 맥락 보존에 대해 분명하지 않은 상태에서 생성형 AI를 사용하는 일은 완전한 해결책이라 느껴지지 않았습니다.
그런 느낌의 근거가 무엇인가 생각해 보았습니다. 가장 먼저 눈에 들어온 것은 코드에서는 목록 형태로 수정되는 라벨이 사용자 화면에서는 다른 레이아웃으로 보인다는 점이었습니다.
하지만, 이들은 반드시 일대일 대응을 이뤄야 한다는 점에서 온전히 다를 수는 없습니다. JSON의 key 값이 이러한 연결을 위한 도구입니다. 하지만, 해당 부분의 프로그래밍을 넘어서 다른 프로그램과의 연관성까지를 포괄해서 생각해야 지속 가능성을 다룰 수 있습니다.[1]
이때 문득 떠오른 느닫없는 질문이 있었습니다.
추상화와 모델링의 차이는 무엇인가?
제미나이에게 질문하고 페이지를 공유합니다. 요약한 표를 보면 다음과 같습니다.
유튜브 알고리듬으로 접한 영상을 통해 알게 된 미스트랄 AI에게도 물어보았습니다.
며칠이 지나서 다시 보니 관련 없는 질문은 아니었네요. 제미나이 답변에 따르면 추상화는 모델링의 기반이라고 합니다. 모델링을 위한 사고를 추상화라고 할 수 있을 듯합니다. 둘의 결정적인 차이는 결과물인데요.
제가 <어떻게 하면 모델링을 잘할 수 있을까?>를 쓸 때 전제로 한 모델링의 결과물은 주로 그림(diagram)이었고, 사람이 보기 위한 결과였습니다. 반면 사전적 정의에 따르면 보다 엄밀하고 재사용 가능한 형태라고 할 수 있습니다.
아하. 여기서 다시 자유로운 생각의 공간을 벗어나 공장(?)으로 돌아가겠습니다. 저도 경제활동인구에 속하니 경제적인 관점에서는 자유롭지 못한 생활인이니까요. 다시 일터에서 부가가치를 만들 수 있는 구체적인 생각을 해야 먹고살 수 있습니다.
그래서, 이렇게 질문을 하죠.
그게, 내가 먹고사는 문제와 무슨 상관이지?
지금은 상관이 없지만, 그렇게 만드는 것이 유리하다 생각하게 되었습니다.
단순히 라벨링을 커서를 이용해서 하는 문제는 미국인 커서 개발자와 미국 회사에게는 이롭겠지만, 우리 회사에는 아무런 이득을 주지 못합니다. 물론, 동료가 약간의 노력을 덜 수는 있습니다. 하지만, 그것도 구독료를 지불하며 얻는 쿠키 수준의 생산성 향상입니다. 기업 차원에서 가치는 0입니다.
그런데 모델 드리븐으로 그 일을 한다면 다른 소득을 얻을 수 있다는 점을 눈치챌 수 있었습니다. 그 이상은 영업 기밀까지는 아니지만, 굳이 여기 풀어낼 이유는 없어서.... ;)
[1] 일종의 Maintainability라고 할 수도 있지만, '유지보수성'이라고 번역되고 의미가 오해되는 경향이 있어서 해당 단어 사용에는 조심스럽게 됩니다.