-
AI 페어 개발 - APPLICATION MEATDOWN 2칼럼 2026. 7. 26. 16:43
AI 페어 개발을 활용하면 기존과 비교하기 어려울 정도로 높은 개발 속도와 생산성을 얻을 수 있다.
그러나 그 성과는 AI 자체의 능력보다, AI를 사용하는 사람이 어떤 분석과 설계를 기반으로 개발하느냐에 따라 크게 달라진다.
이미지 분류 기능을 개발한다고 가정해 보자.
가장 단순하게 생각하면 마스터 이미지를 구축한 뒤, 사용자가 업로드한 이미지와 비교하여 해당 이미지가 무엇인지 판별하는 기능이다.
예를 들어 고양이와 강아지 이미지를 학습 데이터로 구축하고, 사용자가 제출한 사진이 고양이인지, 강아지인지, 또는 둘 다 아닌지를 판단하는 문제는 비교적 단순하다.
그러나 실제 업무에서 이처럼 단순한 분류 문제는 거의 존재하지 않는다.
현실에서는 훨씬 복잡한 사물을 식별해야 하며, 하나의 이미지를 여러 계층과 카테고리로 구분해야 한다.
예를 들어 선박 검사 이미지를 분류한다고 가정하자. 각 검사 파트별 이미지가 올바르게 정리되어 있다는 전제하에 다음과 같은 과정이 필요하다.
- 분류 기준이 되는 마스터 이미지를 구축한다.
- 마스터 이미지를 식별 가능한 벡터로 임베딩하고, 데이터베이스의 벡터 검색 기능을 활용할 수 있도록 저장한다.
- 마스터 이미지를 검사 종류, 위치, 설비, 부품 등 적절한 카테고리 체계로 구분한다.
- 사용자가 업로드한 이미지에도 동일한 임베딩 모델을 적용한다.
- 사용자 이미지와 마스터 이미지 간의 벡터 거리를 계산하여 유사한 후보를 검색한다.
- 검색된 후보를 기반으로 최종 카테고리를 결정한다.
표면적으로는 단순한 시나리오처럼 보이지만, 실제 구현에서는 이보다 훨씬 많은 설계가 필요하다.
AI에게 위와 같은 수준의 요구사항만 전달한다면, AI 역시 그 요구사항의 범위 안에서만 코드를 작성한다.
따라서 개발자는 다음과 같은 문제를 먼저 결정해야 한다.
- 어떤 분류 체계를 사용할 것인가?
- 단일 분류와 다중 분류를 어떻게 구분할 것인가?
- 카테고리 간 계층 구조를 어떻게 설계할 것인가?
- 유사도 임계값을 어떻게 결정할 것인가?
- 어느 수준 이하의 결과를 미분류로 처리할 것인가?
- 유사한 후보가 여러 개일 때 어떤 방식으로 최종 결과를 결정할 것인가?
- 신규 이미지와 기존 분류 체계 간의 불일치를 어떻게 탐지할 것인가?
- 잘못된 분류 결과를 어떻게 검증하고 다시 학습 데이터에 반영할 것인가?
벡터 검색을 사용하면 거리 연산을 통해 가장 유사한 이미지를 찾을 수 있다.
그러나 벡터상 가장 가까운 이미지가 사용자의 업무적 의도와 일치한다는 보장은 없다.
이미지의 배경, 촬영 각도, 조명, 확대 비율, 부식이나 파손 상태와 같은 요소가 임베딩 결과에 영향을 줄 수 있다. 시각적으로 유사하더라도 업무적으로는 전혀 다른 카테고리에 속할 수 있으며, 반대로 형태가 다르더라도 동일한 설비나 결함으로 분류해야 할 수도 있다.
그렇다면 모든 마스터 이미지를 LLM에 전달하여 판단하게 하면 해결될까?
현실적으로는 불가능에 가깝다.
하나의 카테고리에 마스터 이미지가 500장 있고, 카테고리가 여러 개 존재하며, 사용자가 한 번에 50개의 이미지를 업로드한다고 가정해 보자.
단순 비교 구조는 다음과 같은 연산량을 요구한다.
사용자 이미지 수 × 카테고리 수 × 카테고리별 마스터 이미지 수
모든 사용자 이미지를 모든 마스터 이미지와 직접 비교하거나, 모든 이미지를 멀티모달 LLM에 전달하는 방식은 처리 시간과 비용 측면에서 확장성이 없다.
따라서 실제 시스템에서는 단계적인 후보 축소가 필요하다.
먼저 메타데이터, 규칙, 분류 모델 또는 벡터 검색을 통해 전체 데이터에서 소수의 후보만 추출해야 한다. 이후 상위 후보에 대해서만 재정렬, 추가 검증 또는 멀티모달 LLM 판정을 수행해야 한다.
즉, 전체 마스터 데이터를 대상으로 LLM이 직접 판단하는 구조가 아니라 다음과 같은 다단계 구조가 필요하다.
사전 분류 → 벡터 검색 → 상위 후보 추출 → 재정렬 또는 LLM 검증 → 최종 분류
중요한 것은 단순히 코드를 생성하는 것이 아니다.
검색 범위를 어떻게 줄일 것인지, 어떤 기준으로 후보를 제거할 것인지, 어느 단계에서 LLM을 사용할 것인지, 잘못된 분류를 어떻게 통제할 것인지가 시스템의 품질과 비용을 결정한다.
현재까지 내가 확인한 많은 AI 기반 개발 사례에서는 이러한 자원 사용량, 시간 복잡도, 후보 축소, 검증 절차가 충분히 고려되지 않았다.
AI가 모든 것을 대신해 줄 수 있을까?
현재까지의 경험으로는 그렇지 않다.
AI는 개발 속도를 크게 높일 수 있고, 구현 과정에서 강력한 보조 도구가 될 수 있다. 그러나 분석과 설계가 없는 상태에서 AI에 의존하여 만들어진 프로젝트가 안정적으로 성공하기는 어렵다.
AI는 잘못된 설계를 올바르게 만들어 주는 도구가 아니다.
오히려 잘못된 설계를 더 빠른 속도로 구현하게 만들 수 있다.
아직까지는 사람의 능력이 필요하다.
정확히 말하면, 문제를 구조화하고 자원과 복잡도를 계산하며 시스템의 한계를 판단할 수 있는 능력 있는 사람이 필요하다.
'칼럼' 카테고리의 다른 글
AI 페어 개발 - APPLICATION MEATDOWN 4 (0) 2026.08.13 AI 페어 개발 - APPLICATION MEATDOWN 3 (1) 2026.07.26 AI 페어 개발 - APPLICATION MEATDOWN (0) 2026.07.17 Windows Hybrid Mobile & Xbox Integration Strategy Report (0) 2025.11.02 왜 나는 DataTable을 싫어하는가? (0) 2025.06.22