[Django 1일차] 웹 서비스와 Django의 관계 2/4 (250512)

2025. 5. 12. 13:31·특강

📚 Django 웹서비스 구조 완전 정리 (클라이언트, 서버, API, HTML, JSON까지)


1️⃣ 웹 서비스와 Django의 관계

✔️ 웹 서비스란?

  • 클라이언트 ↔ 서버 간 데이터 요청 및 응답 구조
  • 모바일도 포함 (예: 토스, 당근마켓 등도 웹서비스)

✔️ Django란?

  • 웹 서비스 제작을 빠르게 할 수 있도록 돕는 Python 기반 웹 프레임워크
  • HTML 응답, JSON 응답 둘 다 가능 → 풀스택 웹 개발 가능

2️⃣ 💻 클라이언트와 서버의 역할 이해하기

구분 역할 설명

클라이언트 사용자 요청을 전달, 응답을 화면에 표시
서버 클라이언트의 요청을 처리, 데이터 연산/저장 후 응답

✅ 사용자의 흐름 구조 (UI & API)

  • UI (User Interface): 사용자가 버튼 클릭 등으로 요청 생성
  • API (Application Programming Interface): 클라이언트 ↔ 서버 간 데이터 전달 규칙

📌 클라이언트와 서버는 고정된 역할이 아니며, 기능에 따라 역할이 바뀔 수 있음


3️⃣ 🎨 프론트엔드 vs 백엔드 개념

용어 정의 설명

프론트엔드 사용자와 직접 마주하는 화면 영역 (HTML/CSS/JS)
백엔드 데이터 처리, 서버 로직, DB 등 비가시적 영역

✔️ 프론트엔드 = 클라이언트, 백엔드 = 서버와 DB 포함
✔️ 프론트엔드와 백엔드는 역할보다는 **위치 개념(앞 vs 뒤)**에서 유래


4️⃣ 🛠 Django의 풀스택 기능 정리

✔️ Django는 웹 전체 흐름을 책임질 수 있음 (풀스택)

  • 서버 처리 + 화면 출력 (HTML 템플릿 렌더링)
  • API 응답 (JSON 형태로도 처리 가능)

💡 HTML 응답 예시 (템플릿 엔진 활용)

<!-- templates/hello.html -->
<h1>Hello, {{ user.username }}!</h1>
# views.py
from django.shortcuts import render

def hello_view(request):
    return render(request, 'hello.html', {'user': request.user})

📌 Django는 HTML을 응답할 수 있으므로 프론트 없이도 UI 구성 가능


5️⃣ 🔄 JSON 응답이 필요한 경우

✔️ HTML 응답이 필요 없고, 데이터만 주고받을 때
✔️ 프론트엔드가 React, Vue 등 외부 프레임워크일 경우

💡 JSON 응답 예시 (Django View)

from django.http import JsonResponse

def user_info(request):
    data = {
        'name': 'Elon Musk',
        'age': 50,
        'balance': 1000000000
    }
    return JsonResponse(data)

📦 JSON 특징

  • 구조: Python 딕셔너리와 유사 (key-value 쌍)
  • 과거에는 XML도 사용됐지만, 요즘은 거의 JSON 사용
  • 클라이언트가 받아서 원하는 위치에 렌더링

6️⃣ ⚙️ Django 프로젝트 셋업 과정

✅ 기본 개발 흐름

  1. 가상환경 생성
python3 -m venv .short_url
  1. 가상환경 활성화
source .short_url/bin/activate
  1. Django 설치
pip install django
  1. 프로젝트 생성
django-admin startproject config .
  1. 서버 실행
python manage.py runserver

🔍 보조 개념: API와 UI 흐름

사용자 동작 전달 주체 전달 대상 설명

버튼 클릭 사용자 클라이언트 UI 인터페이스 이용 요청 생성
요청 전송 클라이언트 서버 API 형식으로 데이터 요청
응답 반환 서버 클라이언트 JSON or HTML 형태 응답 반환
결과 출력 클라이언트 (프론트) 사용자 응답 데이터를 화면에 렌더링

🧠 한 줄 요약

Django는 클라이언트와 서버를 모두 다룰 수 있는 풀스택 웹 프레임워크이며,
HTML 응답과 JSON API 응답 모두 가능하여 다양한 개발 방식에 대응 가능합니다.


💡 실전 팁 정리

  • 작은 프로젝트 → Django 템플릿 활용 (HTML 응답)
  • 큰 프로젝트 → 프론트 분리, Django는 API 서버로 사용
  • JSON 응답 시: JsonResponse 사용, 클라이언트가 직접 UI 렌더링
  • 가상환경은 프로젝트별로 독립 생성하여 패키지 충돌 방지

'특강' 카테고리의 다른 글

[Django 1일차] 커스텀 유저 모델 구축 및 회원 시스템 설계 4/4 (250512)  (0) 2025.05.12
[Django 1일차] 프로젝트 세팅 튜토리얼 정리 3/4 (250512)  (0) 2025.05.12
[Django 1일차] 웹사이트 구조부터 추상화까지 완전 정리 1/4 (250512)  (0) 2025.05.12
3-4 Flask 의 유효성 검증과 세션 관리(secret,flash,email-validator,flask-mail) with 파머  (0) 2025.04.23
3-3 Flask 웹 애플리케이션에서 for 문 활용하기 with 파머  (0) 2025.04.23
'특강' 카테고리의 다른 글
  • [Django 1일차] 커스텀 유저 모델 구축 및 회원 시스템 설계 4/4 (250512)
  • [Django 1일차] 프로젝트 세팅 튜토리얼 정리 3/4 (250512)
  • [Django 1일차] 웹사이트 구조부터 추상화까지 완전 정리 1/4 (250512)
  • 3-4 Flask 의 유효성 검증과 세션 관리(secret,flash,email-validator,flask-mail) with 파머
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (758) N
      • Python (32)
      • 프로젝트 (82) N
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    americanlaw
    lawsuitculture
    self-growth
    btsdischarge
    trumpmuskclash
    bts
    chatgpterror
    hotcoffeecase
    smartphonedurability
    travel ban
    btsreunion
    homebartrend
    basalcellcarcinoma
    chinanightlife
    remittance
    americaparty
    youngprofessionals
    urbantrends
    classaction
    gpterror
    btsjungkook
    life reflection
    livebroadcast
    newpoliticalparty
    college reunions
    titaniumcase
    global politics
    btscomeback
    뷔
    RM
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
[Django 1일차] 웹 서비스와 Django의 관계 2/4 (250512)
상단으로

티스토리툴바