StrongCenter

주니어 개발자들을 위한 패턴 언어 - 시스템의 정체성과 안정성을 결정하는 핵심을 먼저 구축하는 법

The Story 1: The Infrastructure vs. The Bidding (Programming)

두 명의 개발자, 민수와 하나가 '경매 시스템'을 만들고 있다.

민수의 접근 (The Infrastructure First): 민수는 꼼꼼하다. "시스템은 튼튼해야 해." 그는 1주 차에 로그인과 회원가입을, 2주 차에 로그 기록과 에러 핸들링 프레임워크를, 3주 차에 DB 보안 설정을 마쳤다. 3주가 지났지만, 정작 이 시스템의 본질인 '입찰(Bidding)' 기능은 코드 한 줄도 없다. 민수는 주변부를 튼튼히 하느라 에너지를 다 썼고, 정작 가장 중요한 로직을 짤 때는 지쳐버렸다.

하나의 접근 (The Strong Center): 하나는 본질에 집중한다. "경매 시스템의 핵심은 입찰 경쟁이야." 그녀는 1일 차에 로그인도 DB도 없이 오직 '입찰' 로직만 짰다. "더 높은 가격이 들어오면 낙찰자를 바꾼다." 이 핵심 로직을 중심으로 주문과 결제 기능이 나중에 붙었다. 하나는 시스템의 강한 중심(Strong Center)을 먼저 세웠고, 주변부는 이 중심을 감싸듯이 추가되었다.

The Story 2: The Hearth of the Home (Ordinary Life)

민수와 하나는 자신들이 꿈꾸는 '집'을 설계하고 있다.

민수의 설계 (The Wall First): 민수는 집의 외벽과 담장, 그리고 대문의 디자인부터 고민했다. "튼튼하고 멋진 대문이 있어야 안전한 집이지." 민수는 담장을 쌓고 마당을 꾸미는 데 모든 예산을 썼다. 하지만 정작 집 안으로 들어갔을 때, 가족들이 모여 쉴 거실과 주방은 비좁고 어두웠다. 겉모습은 화려하지만 정작 그곳에 사는 사람의 삶이 담길 공간(중심)이 부실한 집이 되었다.

하나의 설계 (The Living Room First): 하나는 가족들이 가장 많은 시간을 보낼 '벽난로가 있는 거실'을 설계의 시작점으로 잡았다. "이 거실이 우리 집의 심장이야." 거실의 크기와 창문의 위치를 가장 먼저 정하고, 그 거실을 중심으로 침실과 욕실을 배치했다. 담장과 대문은 가장 마지막에 거실의 모양에 맞춰 세워졌다. 집의 본질적인 기능(중심)이 확고했기에, 집 전체가 조화롭고 아늑한 공간이 되었다. 진정한 아키텍처는 가장 가치 있는 중심에서 시작됨을 하나는 알고 있었다.

Context

OrganicGrowth를 시작하려고 한다. 무엇부터 만들어야 할지 고민 중이다. 코딩뿐만 아니라 무언가 복잡한 구조물을 설계해야 하는 모든 상황에 해당한다.

일상적인 상황:

당신은 지금 집을 지으려는데, 거실과 방(핵심)을 생각하지 않고 담장과 대문(주변)부터 만들고 있다.

Problem

핵심 가치를 담은 "중심"이 없으면, 주변부 기능들은 방향을 잃고 비대해진다.

Christopher Alexander는 "모든 살아있는 구조는 중심(Center)들로 구성되며, 그중 가장 지배적인 강한 중심이 전체의 통일성을 만든다"고 했습니다.

Solution

시스템이 제공하는 가장 본질적인 가치, 즉 "강한 중심"을 가장 먼저, 가장 단단하게 구축하라.

인프라와 도구는 중심을 돕기 위해 존재하는 조연일 뿐입니다.

Principle 1: Find the Essential Complexity (본질적 복잡성 찾기)

이 시스템에서 "이 기능이 없으면 존재 의미가 없다"는 것이 무엇인지 찾으십시오.

Principle 2: Logic-First Construction (로직 우선 구축)

DB, 네트워크, 프레임워크에 의존하지 않는 순수한 비즈니스 로직으로 중심을 먼저 만드십시오.

Principle 3: Radiating Growth (방사형 성장)

중심이 서면, 그 주변으로 필요한 기능들을 하나씩 붙여 나갑니다.

Real Examples

Example 1: Git

Git의 강한 중심은 '파일의 스냅샷을 관리하는 데이터 구조'입니다. 리누스 토발즈는 처음 며칠 동안 네트워크나 화려한 CLI 대신 오직 객체를 저장하고 읽는 핵심 로직만 만들었습니다.

Example 2: Spreadsheet

스프레드시트의 중심은 '셀 간의 관계와 자동 계산 엔진'입니다. 화면 UI나 파일 저장 기능보다 이 핵심 중심이 먼저 세워졌을 때 전체 아키텍처가 결정되었습니다.

Common Pitfalls

"But we need login to start!"

착각입니다. 로그인 없이도 핵심 기능을 만들 수 있습니다. 하드코딩된 정보를 사용하거나 함수 인자로 넘기십시오. 로그인은 나중에 붙여도 되는 "세부 사항"일 뿐입니다.

The Infrastructure Trap (인프라의 덫)

특정 프레임워크의 폴더 구조나 설정에 에너지를 다 쓰는 것. 구조는 중심이 성장하면서 자연스럽게 나타나야 합니다. 처음부터 완벽한 틀을 만들려 하지 마십시오.

Connection to Other Patterns

Signs of Success

The Ultimate Insight

중심이 서면 전체가 선다. 중심이 흔들리면 모든 것이 흔들린다.

주변부의 화려함에 현혹되지 마십시오. 당신이 해결하려는 문제의 가장 깊은 곳, 그 강한 중심을 먼저 정복하십시오. 나머지는 그 중심의 중력에 이끌려 제 자리를 찾게 될 것입니다.


CategoryPatternLanguage CategoryProgramming CategoryArchitecture CategoryDesign

StrongCenter (last edited 2025-12-30 09:20:20 by 정수)