1. 스캐폴딩의 정의
**스캐폴딩(Scaffolding)**이란
소프트웨어 개발에서 프로젝트의 기본 구조(뼈대)를 자동으로 생성하는 과정 또는 그 결과물을 의미한다.
건축에서 비계를 먼저 세워 건물의 전체 윤곽을 잡듯,
개발에서도 스캐폴딩을 통해 초기 구조와 실행 가능한 최소 상태를 먼저 만든다.
핵심은 다음 한 문장으로 요약가능하다.
2. 왜 스캐폴딩이 필요한가
현대 소프트웨어 개발에서 “빈 폴더에서 시작하는 개발”은 거의 존재하지 않는다.
그 이유는 명확하다.
2.1 반복 작업의 제거
- 프로젝트 디렉터리 구성
- 공통 설정 파일
- 기본 실행 코드
- 표준 패키지 구조
이 모든 것은 매번 동일하거나 유사하다.
스캐폴딩은 이 반복 작업을 자동화한다.
2.2 구조의 표준화
- 팀원마다 다른 구조를 사용하는 문제 방지
- 리뷰 및 유지보수 비용 감소
- 신규 인력 온보딩 속도 향상
2.3 즉시 실행 가능한 상태 확보
스캐폴딩 결과물은 보통:
- 빌드 가능
- 서버 기동 가능
- 최소 엔드포인트 또는 화면 존재
즉, **“동작하는 시작점”**을 제공한다.
3. 스캐폴딩의 구성 요소
스캐폴딩은 단순한 빈 파일 생성이 아니다. 일반적으로 다음을 포함한다.
3.1 디렉터리 구조
- 계층 분리 (controller / service / repository 등)
- 관심사 분리(Separation of Concerns)
3.2 기본 설정 파일
- 빌드 설정 (Gradle, Maven, npm 등)
- 환경 설정 (application.yml, .env 등)
- 린트, 포맷터 설정
3.3 실행 가능한 코드
- main 함수
- 기본 서버 설정
- 헬스 체크용 엔드포인트
이 때문에 스캐폴딩은 흔히 **“실행 가능한 깡통”**이라고 표현된다.
4. 깡통 파일과 스캐폴딩의 차이
이 둘은 자주 혼동되지만 명확히 다르다.
| 구분 | 깡통파일 | 스캐폴딩 |
| 실행 가능 여부 | 불가 | 가능 |
| 설정 포함 | 없음 | 포함 |
| 구조적 의도 | 없음 | 있음 |
| 확장 전제 | 불명확 | 명확 |
5. 프레임워크별 스캐폴딩 예시
5.1 백엔드 (Spring Boot)
- Application 클래스 생성
- 기본 패키지 구조
- 내장 서버 설정
- health check 수준의 엔드포인트
5.2 프론트엔드 (React / Vue)
- 컴포넌트 구조
- 빌드 도구 설정
- 개발 서버 구성
5.3 Python (FastAPI / Django)
- 앱 구조
- 라우터, 모델 기본 템플릿
- 실행 엔트리 포인트
공통점은 모두 **“바로 실행 가능”**하다는 점이다.
6. 실무에서 스캐폴딩을 어떻게 바라봐야 하는가
6.1 스캐폴딩은 완성품이 아니다
- 과도한 설계로 착각하면 안 된다
- 필요 없는 코드는 제거 대상이다
6.2 하지만 무시해서도 안 된다
- 프레임워크의 기본 계약이 담겨 있다
- 임의로 변경 시 런타임 오류나 구조 붕괴 발생 가능
6.3 중요한 판단 기준
개발자는 다음을 구분할 수 있어야 한다.
- “이건 스캐폴딩이라 나중에 정리해도 된다”
- “이건 프레임워크 전제라 유지해야 한다”
'기초기술&토픽' 카테고리의 다른 글
| Thundering Herd 란? (0) | 2026.04.23 |
|---|---|
| C-LAB / B-LAB (0) | 2026.02.05 |
| CRONTAB 과 배치(Batch,SpringBatch) (0) | 2025.10.16 |
| 소켓통신 이란? (0) | 2025.10.16 |
| SSL / TSL 프로토콜 (0) | 2025.10.16 |