빌드 / 최적화
번들링(Bundling)
번들링은 서로 연결된 코드 파일을 분석해 실행 환경에서 사용할 묶음으로 만드는 작업입니다.
쉬운 설명
AI가 만든 웹앱에는 화면 코드, 입력 검사 코드, 가져다 쓰는 라이브러리 등이 여러 파일에 나뉘어 있을 수 있어요. 번들링은 파일들이 무엇을 가져다 쓰는지 따라가며 실행에 필요한 코드를 결과물로 만드는 작업이에요. 결과는 하나의 파일일 수도 있고, 화면이나 기능별로 나뉜 여러 파일일 수도 있어요. 웹앱에서는 보통 빌드 과정에 포함되며, 파일을 ZIP으로 압축하는 것과는 달라요.
이런 상황에서 만나요
신청 폼을 수정한 뒤 빌드했더니 내가 편집한 main.js 대신 assets 안에 다른 이름의 파일이 생겼다고 해 볼게요. 원본 코드의 연결 관계를 따라 결과물을 만든 장면이에요.
원본 파일과 배포할 파일 이름이 달라졌어요
import { validEmail }
from "./validate.js";src/ main.js validate.js
dist/
assets/
main-a1b2.js- 1다른 파일의 입력 검사 함수를 가져다 써요.
- 2서로 연결된 코드를 따라가며 필요한 내용을 모아요.
- 3이 예시에서는 필요한 코드가 결과 파일에 들어가요.
아래 예시에서 main.js는 입력 검사 함수가 들어 있는 validate.js를 가져다 써요. 번들링을 거치면 이 코드가 빌드 결과에 포함될 수 있어요. 결과 파일을 직접 고치면 다음 빌드 때 덮어쓸 수 있으므로 수정은 원본 파일에서 해요.
헷갈리기 쉬운 점
번들링하면 파일이 무조건 하나가 되나요?
아니요. 여러 시작 파일을 두거나 필요한 기능을 나중에 불러오도록 설정하면 결과가 여러 조각으로 나뉠 수 있어요. 파일 개수만 보고 번들링 여부나 성능을 판단하지 않아요.
빌드 결과 파일이 생겼다고 사이트가 공개된 것은 아니에요. 배포한 뒤 실제 주소에서 필요한 파일이 로드되고 기능이 동작하는지 확인해요.
왜 알아야 할까요?
원본 파일 이름과 배포된 파일 이름이 다른 이유를 이해할 수 있어요. AI에게 수정할 파일을 알려 줄 때도 생성된 결과물과 원본 코드를 구분할 수 있어요.
조금 더 자세히
모듈은 기능별로 나눈 코드 단위입니다. 번들러는 import 같은 연결 관계를 분석해 어떤 코드가 필요한지 파악합니다. CSS나 이미지의 처리 방식은 도구와 설정에 따라 다르며, 모든 파일이 자바스크립트 안에 합쳐지는 것은 아닙니다.
빌드에는 번들링 외에도 문법 변환, 코드 크기 축소, 파일 복사 등이 포함될 수 있습니다. 번들링이 끝났다는 것과 테스트를 통과했다는 것도 서로 다른 결과입니다.
직접 사용할 때 확인해 보세요
- 원본 코드와 생성된 결과물을 구분한다
- 결과 파일 수보다 로드되는 내용을 확인한다
- 배포한 환경에서 기능을 확인한다