웹 개발을 처음 시작하면 HTML에 데이터를 직접 적어 넣는 경우가 많습니다.
하지만 Django에서는 이런 방식은 지양해야 할 형태입니다.
1. 하드 코딩(Hard Coding)이란?
하드 코딩이란
소스 코드 안에 데이터가 직접 들어가 있는 상태를 말합니다.
<h3>코딩에 빠진 닭</h3>
<p>주머니가 가벼운 당신의 마음까지 생각한 가격!</p>
이 방식의 문제점은 명확합니다.
- 데이터가 늘어나면 코드가 폭발
- 수정할 때 HTML을 직접 고쳐야 함
- 데이터 재사용 불가능
- 유지보수 매우 어려움
2. Django식 해결 방법: View → Template
Django에서는 데이터와 화면을 분리합니다.
1️⃣ View에서 데이터 준비
def index(request):
today = str(datetime.today().date())
menus = Menu.objects.all()
context = {
"date": today,
"menus": menus
}
return render(request, 'foods/index.html', context)
- DB에서 데이터 조회
- context 딕셔너리로 템플릿에 전달
2️⃣ Template에서 반복 렌더링
{% block food-container %}
{% for menu in menus %}
<div class="food">
<img src="{% get_static_prefix %}{{ menu.img_path }}"
width="300px" height="200px" />
<div class="info">
<h3>{{ menu.name }}</h3>
<p>{{ menu.description }}</p>
<a href="#">메뉴 보기</a>
</div>
</div>
{% endfor %}
{% endblock food-container %}
- {% for %}로 데이터 반복 출력
- HTML 구조는 그대로 유지
- 데이터만 바뀌면 화면 자동 변경
3. 정리하면
HTML은 구조만,
데이터는 View와 DB가 책임진다.
이게 바로 Django가 추구하는 MVC(MVT) 구조의 핵심입니다.
처음에는 하드 코딩이 편해 보이지만,
데이터가 늘어나는 순간 한계가 바로 드러납니다.
Django에서는
- 하드 코딩 ❌
- View + Template + DB ⭕
이 흐름으로 가는 것이
실무에서도, 공부에서도 가장 올바른 방향입니다 👍
'Django 프론트& 백엔드 개발' 카테고리의 다른 글
| [트러블슈팅] Django URL 404 에러를 통해 배운 것 - URL Converter 공백 처리 (0) | 2026.01.10 |
|---|---|
| Django Model API란? (0) | 2026.01.10 |
| [Model] Django 관리자(Admin) 생성과 모델 관리하기 (0) | 2026.01.04 |
| [Model] Django ORM으로 데이터 수정(Update)과 삭제(Delete)하기 (0) | 2026.01.04 |
| [Model] ORM 기본 조회 정리 (get / filter / order_by) (0) | 2026.01.04 |