작은 예약 서비스에 너무 많은 구성 요소
가상 이야기 · 핵심노트 기반
핵심노트 개념: 레이어와 티어 — 역할 분리와 물리 배치를 구분한다
이 글에서 배우는 교훈
프로그램의 역할을 나누는 것과 서버를 따로 두는 것은 다른 결정이며, 서버를 늘리면 관리할 일도 늘어납니다.
핵심노트를 바탕으로 만든 가상 이야기입니다. 실제 사건이나 검증된 성과가 아닙니다.
근거: 레이어와 티어 — 역할 분리와 물리 배치를 구분한다 · 핵심노트 2
구체적으로는 세 명이 관리할 수 있는 범위를 넘어서자 팀은 함께 운영해도 되는 기능을 합치고, 별도로 서버를 늘릴 이유가 있는 기능만 나눴습니다.
관련 교재 내용
시스템아키텍처 이해와 활용 · I. 시스템 개념 · 논리 레이어와 물리 티어
레이어는 기능과 역할을 논리적으로 나눈 구조이고, 티어는 그 기능을 실제 장비에 어떻게 배치했는지 나타내는 구조입니다.
이 사례에 적용한 내용: 세 명이 관리할 수 있는 범위를 넘어서자 팀은 함께 운영해도 되는 기능을 합치고, 별도로 서버를 늘릴 이유가 있는 기능만 나눴습니다.
교재 원리의 실무 적용 · 교재 원문 인용이 아닌 자체 설명입니다.
본문
세 명이 작은 예약 서비스를 개발하고 운영했습니다. 팀은 기능마다 별도 프로그램을 만들고 프로그램 사이에 작업을 전달하는 도구도 여러 개 도입했습니다. 이용자는 많지 않았지만 새 버전을 적용할 순서와 프로그램 사이의 연결 오류를 확인하는 일이 늘었습니다.
팀은 각 프로그램을 따로 실행해야 하는 이유를 다시 적어 봤습니다. 별도로 서버를 늘릴 필요가 없는 기능은 한 프로그램으로 합치되, 화면·예약 판단·저장처럼 코드가 맡은 역할은 구분했습니다. 그 결과 배포하고 점검할 대상이 줄었습니다.
결론
역할을 나누는 것과 실행할 서버를 나누는 것은 다른 결정입니다. 별도 배치가 주는 이점과 팀이 감당할 관리 작업을 함께 비교해야 합니다.