개발자라면 .min 이라는 확장자를 많이 봤을 것이다.
웹 개발자라면 자주 사용하는 jquery만 봐도 min 파일을 제공해준다. 일단 jquery를 이용해서 min 파일이 무엇인지와 min의 효과를 알아보자.
jquery min 파일
https://code.jquery.com/jquery-3.4.1.js
https://code.jquery.com/jquery-3.4.1.min.js
두 가지 파일을 열어보면, 확연하게 어떠한 것이 차이 나는지 알 수 있다.
왼쪽 기본 jquery 파일은 보기 쉽게 정렬되어 있다는 것을 느낄 수 있다. 하지만 오른쪽 min 파일은 공백을 최소화한거 뿐만 아니라, 변수의 네이밍도 달라져 있다는 것을 알 수 있다.
이것은 브라우저가 해당 파일을 읽는 속도인데, 확연하게 기본 파일과 min파일이 차이가 나는 것을 알 수 있었다.
서론이 길었다. ASP.NET 에서도 해당 기능을 제공해주어서, js/css 파일을 min 파일로 만들 수가 있다.
차근차근 따라해보자.
ASP.NET BuldleConfig를 이용해서, min 파일 만들기.
최상위 폴더 App_Start 폴더에, BundleConfig.cs라는 파일이 보일 것이다. 없으면 만들어 준다.
Visual Studio 2017, .Net Framework 4.5 에서는 없었는데
Visual Studio 2019, .Net Framework 4.72 에서는 자동으로 생성되어 있다. 개발 환경에 유념하자.
1
2
|
public static void RegisterBundles(BundleCollection bundles) {
}
|
cs |
RegisterBundles이라는 정적 메서드를 만들어 준다.
메서드 안에 이제 min으로 묶어줄 파일을 아래 방법을 이용하여, script는 script로 css는 css로 묶어준다.
Script
1
2
3
4
5
6
|
// new ScriptBundle(실제 html 페이지에서 참조할 절대경로 url을 만들어 준다.)
bundles.Add(new ScriptBundle("~/js/master/default").Include(
"~/jquery/ui/jquery-ui.min.js", // min 파일을 만들어 줄 js 파일을 나열한다.
"~/js/kakao.min.js",
"~/jquery/jquery.ui.datepicker-ko.min.js",
"~/js/search.htm"));
|
cs |
CSS
1
2
3
|
bundles.Add(new StyleBundle("~/css/master/headerfooter").Include(
"~/css/common.css",
"~/css/main_head.css"));
|
cs |
장/단점
장점
- 관련된 여러 파일을 하나의 파일로 만들 수 있다.
- min 파일로 생성하여, 용량을 줄여서 브라우저에서 다운로드 받는 속도를 더 빠르게 할 수 있다.
단점
- 배포 시, dll 파일을 함께 올려야 하는 번거로움이 존재한다.
- script/css Include 해줄 때, 여러 파일들의 종속성이 존재하므로 꼭 유념해야 한다.
사용자를 위해서는 bundle을 이용해서, min 파일을 생성하는 것이 좋은 방법이다. 하지만 간단한 수정에도 dll까지 올려야 하는 부담감은 개발자/퍼블리셔 몫이다. 이것에 대한 부담감은 어느 정도 감수하더라도, bundle을 이용해서 웹사이트의 속도를 높여서 사용자에게 편리함을 주어야 하는 게 정답인 거 같다.
'개발 > ASP.NET' 카테고리의 다른 글
[ASP.NET] Debug/Release에 따라 ConnectionString 변경해보자. (6) | 2019.11.21 |
---|---|
[ASP.NET] 404 / 500 Error 일때, Web.config를 이용하자! (2) | 2019.10.10 |
[ASP.NET] Global.asax 에 대해서 알아보자. (0) | 2019.08.13 |
Server.Transfer vs Response.redirect 무엇이 다를까? (2) | 2019.08.12 |
NameValueCollection foreach문 사용 (0) | 2018.08.03 |