(14) Razor 강좌 - URL 라우팅(Routing) 으로 SEO 최적화 구현
안녕하세요. SQLER의 김대우 입니다.
코난이와 함께하는 Razor & WebMatrix 시리즈 강좌리스트
(1) WebMatrix와 Razor! 이제 시작합니다.
(2) WebMatrix 설치부터 Hello World까지
(9) Razor 강좌 - Helper 소개(이미지, 비디오)
(12) Razor 강좌 – SMTP 메일전송(Live메일과 Gmail지원. SSL지원)
(13) Razor 강좌 – 웹사이트 전체, 또는 폴더 내 파일 요청 시 항상 실행 되는 모듈
(14) Razor 강좌 - URL 라우팅(Routing) 으로 SEO 최적화 구현 (지금 보시는 내용)
이번에 소개해 드릴 내용은, Razor의 URL 라우팅 관련 내용입니다. 아마 블로그나 최신의 오픈 소스 CMS를 이용해 보신 분들은 이런 SEO와 Fancy URL이나 Permanent URL에 대해서 잘 아실 겁니다. 복잡하고, 프로그래밍 친화적인 URL보다는 사용자와 검색엔진에 친화적인 URL을 이용하는 방법을 의미합니다.
특히, 콘텐트 사이트 트래픽 유입에 가장 큰 기여를 하는 녀석인 검색엔진이 이런 SEO(Search Engine Optimizer)차원에서 URL에 높은 가중치를 두고 있기 때문에 최근 웹사이트 제작에 기본 요소이기도 합니다.
Razor는 가장 최신의 웹 개발 방식입니다. 당연히 기본 이런 SEO제공을 위한 Fancy & Permanent URL을 이용하는 기능을 기본 제공합니다. 바로 “URL 라우팅” 기능입니다. – 바로 상세히 알아 보도록 하지요.
먼저 예제를 실행해 보도록 하겠습니다.
@{
var FruitName = UrlData[0].ToString();
}
<!DOCTYPE html>
<html>
<head>
<title>URL 라우팅</title>
</head>
<body>
@FruitName
</body>
</html>
루트 폴더에 fruit.cshtml 파일을 만들고, 아래 링크와 같이 URL을 만들어 실행합니다.
https://localhost:8080/fruit/사과 (링크로 사용하는 서버나 포트가 저와 다를 수 있습니다. 조절해 넣으세요.)
그럼 결과가 보이실 겁니다. "사과"가 잘 찍혀 나오시지요. ^_^
제가 만든 파일은 분명 fruit.cshtml 파일이고, 라우팅을 위한 아무 처리를 안 해도 자동으로 URL 라우팅을 해 줍니다. 이럴때 Razor 참 땡큐하죠. 다른 기술이라면 라이브러리를 만들어 쓰거나, 라우팅을 웹 서버 플러그인 – rewrite 모듈로 구현해야 하는데, 이걸 그냥 쉽게 종속성이나 귀찮은 거 없이 자체 해결해 줍니다. 그리고, 파라미터 값 처리를 위해 UrlData만 쓰면 땡이죠.
그런데, 만약, 진짜 https://localhost:8080/fruit/사과/default,cshtml 과 같은 파일이 존재한다면 어떻게 될까요? UrlData가 어떻게 도움을 주는 건지?
그렇다면, 이런 자동 라우팅이 어떤 우선 순위에 의해 동작하는지 이해할 필요가 있습니다.
아래 라우팅 우선순위를 참고하세요.
이런 살짝 아리까리한 폴더와 파일들이 위치하고 있다고 가정해 보세요. 폴더 이름과 파일 이름에 주의하셔야 할겁니다.
https://www.SQLERTEST.com/a/b/c URL요청이 들어올 경우에 다음과 같은 순서로 라우팅이 처리합니다. 해당 단계에 맞는 파일이 없다면 이어서 아래 파일을 찾는 절차를 진행하게 됩니다.
(1) /a.cshtml 파일이 존재할 경우 “b/c” 값이 UrlData로 전달됩니다.
(2) /a/b.cshtml 파일이 존재할 경우 “c” 값이 UrlData로 전달됩니다.
(3) /a/b/c.cshtml 파일이 존재할 경우 아무 값도 UrlData로 전달되지 않습니다. 그냥 실행만 됩니다.
cshtml 파일 매칭이 없을 경우 다음 순서로 파일을 찾게 됩니다.
(4) /a/b/c/default.cshtml 파일을 찾게 됩니다.
(5) /a/b/c/index.cshtml 파일을 찾게 됩니다.
이렇게 간단히 URL 라우팅 기능을 알아보았습니다. Razor의 URL 라우팅 기능, 어떠세요? 깔끔하게 느껴 지시나요? 앞으로도 많은 좋은 내용으로 인사 드리겠습니다.
좋은 하루 되세요~
전문 개발자를 위한 참고
Razor는 ASP.NET MVC의 View 엔진이며 MVC에 사용되는 ASP.NET Routing을 아무 전처리 없이 이용가능합니다. 여러번 말씀 드리지만, Razor공부를 위해 ASP.NET이나 MVC를 모두 알 필요는 절대로 없습니다. IIS의 URL Rewrite와 ASP.NET Routing에 대한 내용은 예전에 제가 적은 강좌를 참고하세요. URL Rewrite 1.1 (URL 재작성) - (4) ASP.NET 라우팅과 URL Rewrite 추가적으로, ASP.NET MVC의 라우팅에 대한 내용은 링크를 참고하세요. ASP.NET Routing
참고자료 :
(1) WebMatrix와 Razor! 이제 시작합니다.
(2) WebMatrix 설치부터 Hello World까지
(3) Razor 강좌 - 기본 구문 및 주석 처리
(4) Razor 강좌 - 코드 블록과 POST 처리
(5) Razor 강좌 - 재사용 가능한 코드 생성
(6) Razor 강좌 - 레이아웃 페이지 구조 처리
(7) Razor 강좌 - 파일처리, 파일 업로드
(8) Razor 강좌 - 데이터베이스 처리
(9) Razor 강좌 - Helper 소개(이미지, 비디오)
(10) Razor 강좌 – 디버깅
(11) Razor 강좌 - 캐시 처리
(12) Razor 강좌 – SMTP 메일전송(Live메일과 Gmail지원. SSL지원)
(13) Razor 강좌 – 웹사이트 전체, 또는 폴더 내 파일 요청 시 항상 실행 되는 모듈
[동영상 강좌] (1) WebMatrix 첫 실행 & Hello World까지 달려요~
[동영상 강좌] (2) WebMatrix 5분 리뷰~
[동영상 강좌] (3) Razor 강좌 - 기본 구문 및 주석 처리
[동영상 강좌] (4) Razor 강좌 - 코드 블록과 POST 처리
https://www.asp.net/webmatrix/tutorials/15-customizing-site-wide-behavior
URL Rewrite에 대한 SQLER의 IIS 강좌 링크 : https://www.sqler.com/bIISLec