특강

[Django 1일차] 웹사이트 구조부터 추상화까지 완전 정리 1/4 (250512)

Chansman 2025. 5. 12. 11:11

📌 [Django 강의 핵심 요약] 웹사이트 구조부터 추상화까지 완전 정리


1️⃣ 🚀 웹사이트와 웹 애플리케이션의 이해

✔️ 웹사이트란?

  • 브라우저(클라이언트)를 통해 URL로 접근 가능한 인터넷 공간
  • 예: www.example.com에 접속하면 화면이 출력되는 것

✔️ 웹 애플리케이션이란?

  • 단순 화면을 넘어서 사용자와 상호작용 가능한 기능을 제공 (입력, 처리, 저장 등)
  • 예: 로그인, 쇼핑, 계좌이체 등 다양한 행위 가능

✔️ 웹 서비스란?

  • 웹사이트 + 백엔드 기능이 통합된 형태
  • 사용자가 보지 못하는 서버와의 상호작용 포함

✔️ Django는?

  • 웹사이트뿐만 아니라 백엔드 기능까지 함께 구현 가능 → 풀스택 프레임워크

2️⃣ 🖥️ 소프트웨어 역할과 풀스택 개념

✔️ 프론트엔드 (클라이언트)

  • 사용자와 직접 마주하는 화면 영역 (HTML, CSS, JS)

✔️ 백엔드 (서버/소프트웨어)

  • 사용자 요청 처리, 연산, 데이터 저장 등 내부 로직 처리

✔️ 컴퓨테이션이란?

  • 컴퓨터의 본질: 연산 장치
  • if 조건, 반복, 계산 등 서버의 핵심 기능

✔️ 풀스택 개발자란?

  • 프론트엔드 + 백엔드 모두 구현 가능
  • Django는 이 둘을 모두 지원 → 풀스택 개발 가능

3️⃣ 🔧 Django의 구조적 특성

✔️ Django가 빠른 개발을 가능하게 하는 이유:

  • 내장 기능프레임워크 뼈대 제공
  • 자주 쓰이는 기능이 미리 준비되어 있음

✔️ 핵심 구조: MTV 패턴 (Model-Template-View)

  • Model: 데이터 구조 정의
  • Template: 사용자에게 보여지는 HTML 화면
  • View: 요청에 대한 로직 처리 및 응답 반환

✔️ → 즉, Django는 웹 동작을 표준화 + 추상화해둠

4️⃣ 🍽️ 추상화를 이해하기 위한 비유: 요리 과정

✔️ 요리의 공통 과정:

  1. 재료 준비 (식자재, 소스, 조리 도구 등)
  2. 재료 가공 (세척, 손질, 자르기 등)
  3. 재료 조리 (볶기, 찌기, 튀기기 등)

✔️ → 이 모든 공통된 단계들을 요약하여 하나의 과정으로 설명 = 추상화

✔️ 추상화의 장점:

  • 복잡한 과정을 간단하게 표현
  • 구조화 및 반복 재사용 가능

5️⃣ 📚 프로그래밍에서의 추상화 개념

✔️ 추상화(abstraction)란?

  • 복잡한 것을 단순화하여 본질을 정의하는 것
  • 공통된 속성과 기능을 도출해 클래스로 표현

✔️ 클래스와 추상화의 관계:

  • 클래스 = 객체의 설계도
  • 예: Person 클래스
    • 속성: 이름, 나이, 성별 등
    • 메소드: say_hi()

✔️ 중요한 포인트:

  • 어떤 속성을 갖고 어떤 행동을 할지 정의 = 본질의 추출
  • 사람마다 다르게 정의될 수 있음 → 추상화는 관점 기반 설계

6️⃣ 🧠 Django와 추상화

✔️ Django는 웹 애플리케이션의 동작을 추상화한 프레임워크
✔️ MTV 구조 덕분에 표준화된 흐름 제공 → 빠른 개발
✔️ 복잡한 로직을 간단히 분리하여 유지보수 및 협업 효율 ↑

✅ 최종 요약

  • 웹사이트: 브라우저에서 보이는 화면 (정적)
  • 웹 애플리케이션/서비스: 상호작용 + 서버 기능 포함 (동적)
  • Django: MTV 패턴 기반 풀스택 프레임워크
  • 추상화: 공통된 본질을 뽑아 구조화 → 클래스, 함수 등으로 표현
  • 개발 속도 향상: 구조화된 추상화 덕분에 반복 작업 최소화

💡 실전 꿀팁

  • MTV의 역할 구분을 명확히 하고 각자의 책임을 지켜야 유지보수가 쉬워짐
  • 클래스나 함수 정의 전 "본질이 무엇인지" 고민하고 설계하는 습관을 들이자
  • Django의 기본 기능을 최대한 활용하면 개발 속도를 크게 향상시킬 수 있음