
지저분한 if문의 늪에서 벗어나 AI와 함께 우아한 도메인 설계를 만드는 비결
AI 시대가 도래하며 누구나 코드를 쉽게 짤 수 있게 되었지만, 견고한 소프트웨어를 만드는 것은 여전히 난제입니다. 본 아티클은 스파게티 코드를 유발하는 단순 조건문 코딩에서 벗어나, 비즈니스 규칙을 시스템의 공식 '1급 시민(First-Class Citizen)'으로 설계하고 AI를 설계를 주도하는 진정한 파트너로 활용하는 혁신적인 접근법을 제시합니다.
코드 어시스턴트(Copilot, ChatGPT 등)를 사용할 때 단순 '기능 구현' 수준으로 질문하지 마세요. 핵심 비즈니스 상태를 정식 도메인 타입과 '1급 시민'으로 다뤄달라고 컨텍스트를 명확히 제시하면 훨씬 더 구조화된 백엔드 설계를 얻을 수 있습니다.
AI에게 단순히 기능 구현을 요청하면 시스템 전체에 임시 조건문(if-else)이 파편화되어 흩어지게 되고, 이는 비즈니스 로직의 중복과 코드 유지보수성의 저하로 이어집니다.
단순 분기 처리를 추가하는 대신 핵심 비즈니스 개념을 도메인 모델, API 스펙, 상태(Enum) 등 시스템 전체가 인지할 수 있는 '1급 시민'으로 정의하고, AI에게도 이 개념을 중심으로 설계를 해달라고 구체적으로 지시합니다.
파편화되어 있던 조건문들이 하나의 공식적인 상태나 정책으로 통합되어 코드 복잡도가 낮아지며, AI가 단편적인 코드 생성에 그치지 않고 도메인 모델과 테스트 시나리오를 아우르는 고도화된 소프트웨어 설계를 수행하도록 만듭니다.
Trade-off
도메인의 모든 세부 조건을 지나치게 1급 시민으로 격상시키려 할 경우, 초기 설계 단계에서 불필요한 추상화나 보일러플레이트 코드가 급격히 증가하는 오버엔지니어링 문제가 발생할 수 있습니다.
프로그래밍 언어 내에서 변수에 할당되거나 함수의 인자 및 반환값으로 자유롭게 활용될 수 있는 권리를 가진 요소를 뜻합니다. 아키텍처 관점에서는 시스템 전체에 걸쳐 이름과 명확한 역할을 지닌 공식 도메인 상태나 정책으로 격상된 개념을 의미합니다.
현실 세계의 비즈니스 프로세스와 규칙을 소프트웨어 구조와 클래스, 인터페이스 등으로 추상화하여 표현하는 기법입니다. 시스템이 비즈니스 요구사항을 정확하고 단순하게 반영하도록 돕습니다.
AI 코드 생성 도구에 세부 코드 조각 대신 아키텍처 설계 사상과 도메인 개념의 위상을 명시하여, 고수준의 도메인 지향 설계를 직접 유도해 내는 프롬프트 전략입니다.