#Backend

코드에서 1급 시민으로 다룬다는 것

코드에서 1급 시민으로 다룬다는 것
01

Summary

AI에게 코드를 짜게 하지 말고, 설계를 지시하라: '1급 시민'의 힘

지저분한 if문의 늪에서 벗어나 AI와 함께 우아한 도메인 설계를 만드는 비결

AI 시대가 도래하며 누구나 코드를 쉽게 짤 수 있게 되었지만, 견고한 소프트웨어를 만드는 것은 여전히 난제입니다. 본 아티클은 스파게티 코드를 유발하는 단순 조건문 코딩에서 벗어나, 비즈니스 규칙을 시스템의 공식 '1급 시민(First-Class Citizen)'으로 설계하고 AI를 설계를 주도하는 진정한 파트너로 활용하는 혁신적인 접근법을 제시합니다.

  • 01단순 기능을 넘어 시스템이 공식적으로 인식하고 제어하는 '개념'을 만들어 주는 설계의 중요성
  • 02예외 조건에 불과했던 '사이트 만료'를 정식 Enum과 상태 정책으로 승격하여 코드의 응집도를 획기적으로 향상
  • 03AI에게 '이 개념을 1급 시민으로 다뤄달라'고 요청할 때 도메인 모델, API, 로그, 테스트까지 완성도 높은 코드가 탄생하는 메커니즘 제공
  • 04좋은 설계란 계속해서 임시 예외를 추가하는 것이 아니라, 중복되는 핵심 개념을 발굴하고 시스템 중심에 시민권을 주는 과정
  • 05AI 시대 개발자의 진정한 역할은 텍스트 코딩이 아닌 어떤 개념을 시스템 중심에 올릴지 식별하는 도메인 디자인 역량임을 강조

RECOMMENDATION

코드 어시스턴트(Copilot, ChatGPT 등)를 사용할 때 단순 '기능 구현' 수준으로 질문하지 마세요. 핵심 비즈니스 상태를 정식 도메인 타입과 '1급 시민'으로 다뤄달라고 컨텍스트를 명확히 제시하면 훨씬 더 구조화된 백엔드 설계를 얻을 수 있습니다.

The Problem

AI에게 단순히 기능 구현을 요청하면 시스템 전체에 임시 조건문(if-else)이 파편화되어 흩어지게 되고, 이는 비즈니스 로직의 중복과 코드 유지보수성의 저하로 이어집니다.

The Solution

단순 분기 처리를 추가하는 대신 핵심 비즈니스 개념을 도메인 모델, API 스펙, 상태(Enum) 등 시스템 전체가 인지할 수 있는 '1급 시민'으로 정의하고, AI에게도 이 개념을 중심으로 설계를 해달라고 구체적으로 지시합니다.

The Result

파편화되어 있던 조건문들이 하나의 공식적인 상태나 정책으로 통합되어 코드 복잡도가 낮아지며, AI가 단편적인 코드 생성에 그치지 않고 도메인 모델과 테스트 시나리오를 아우르는 고도화된 소프트웨어 설계를 수행하도록 만듭니다.

Trade-off

도메인의 모든 세부 조건을 지나치게 1급 시민으로 격상시키려 할 경우, 초기 설계 단계에서 불필요한 추상화나 보일러플레이트 코드가 급격히 증가하는 오버엔지니어링 문제가 발생할 수 있습니다.

03

Key Concepts

Concept · 01

1급 시민 (First-Class Citizen)

프로그래밍 언어 내에서 변수에 할당되거나 함수의 인자 및 반환값으로 자유롭게 활용될 수 있는 권리를 가진 요소를 뜻합니다. 아키텍처 관점에서는 시스템 전체에 걸쳐 이름과 명확한 역할을 지닌 공식 도메인 상태나 정책으로 격상된 개념을 의미합니다.

  • 단순 boolean 변수인 site.expired를 정식 상태 모델인 SiteStatus.EXPIRED로 승격하여 시스템 정식 구성 요소로 다룸
  • AI에 프롬프팅할 때 이 관점을 적용하면 단순 코드 추가 대신 모델링 중심의 종합 설계가 이루어짐
Concept · 02

도메인 모델링 (Domain Modeling)

현실 세계의 비즈니스 프로세스와 규칙을 소프트웨어 구조와 클래스, 인터페이스 등으로 추상화하여 표현하는 기법입니다. 시스템이 비즈니스 요구사항을 정확하고 단순하게 반영하도록 돕습니다.

  • 만료라는 비즈니스 개념을 로그인, API 응답, 결제 유도 정책 등 다양한 연관 기능들과 매끄럽게 연결
Concept · 03

AI 기반 아키텍처 프롬프팅 (AI-Driven Architectural Prompting)

AI 코드 생성 도구에 세부 코드 조각 대신 아키텍처 설계 사상과 도메인 개념의 위상을 명시하여, 고수준의 도메인 지향 설계를 직접 유도해 내는 프롬프트 전략입니다.

  • '사이트 만료 시 접근 제어'라는 단순 지시를 '만료 상태를 1급 시민으로 다루기'로 추상화하여 지시함으로써 AI의 높은 수준의 설계 산출물 도출