티스토리 뷰

장고(Django)에서 템플릿(Templates)의 필요성

아래의 코드를 보도록 합시다. HTML 코드가 파이썬으로 직접 코딩 되어 있습니다. 장고(Django)의 뷰(View)에 기술된 샘플 코드인데 이렇게 하드코드(hard-code)하면 여러 가지 문제점이 있습니다.

def current_datetime(request):
    now = datetime.datetime.now()
    html = "<html><body>It is now %s.</body></html>" % now
    return HttpResponse(html)

문제가 되는 것들

1. 우선 페이지 디자인 변경이 요구될 때마다 파이썬 코드를 수정해야 합니다. 하지만 보통의 경우 페이지 디자인 변경은 파이썬 코드보다 훨씬 자주 변경되기에 여러모로 귀찮죠. 그래서 파이썬 코드의 변경 없이 디자인을 바꿀 수 있다면 참 편리 할겁니다.

2. 파이썬(Python) 코드를 작성하는 것과 HTML을 디자인하는 것은 엄연히 다른 분야로 이죠. 그래서 대부분의 전문 웹 개발 프로젝트에서 이들 업무들은 각각의 인원 혹은 팀으로 분리합니다. 그런데 위의 코드는 파이썬(Python)과 디자인 코드가 짬뽕이 되어 있군요! 디자이너와 HTML/CSS 작성자는 업무를 수행하기 위해서 파이썬(Python) 코드를 수정할 필요가 없는데 말이죠.

3. 위의 코드는 디자인 코드와 프로그래밍 코드가 섞여 있어서 협업을 할 수 없는 구조입니다. 만약 프로그래머가 파이썬(Python) 코드를 작업하는 것과 동시에 디자이너가 템플릿(templates) 상에서 작업할 수 있다면 가장 효율적일 겁니다. 디자인과 코드가 섞여진 파일에 대해서 한 사람이 다른 사람의 편집 완료를 기다리는 것 보다 말이죠.

해결방법

파이썬(Python) 코드를 페이지 디자인으로 부터 분리하기 위한 가장 깔끔한 방법을 위해 장고(Django)에서는 템플릿 시스템(Template System)을 사용합니다. 자세한 사항은 다음 포스팅에 적어보도록 하겠습니다. 여기까지 장고(Django)에서 템플릿(Templates)가 필요한 이유에 대해 살펴 보았습니다. 이 글은 다음의 원문을 참조해서 적었습니다. 다음 내용이 궁금하신 분들은 원문 웹사이트를 보시면 됩니다. 원문 - http://www.djangobook.com/en/2.0/chapter04/