특강
[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️⃣ 🍽️ 추상화를 이해하기 위한 비유: 요리 과정
✔️ 요리의 공통 과정:
- 재료 준비 (식자재, 소스, 조리 도구 등)
- 재료 가공 (세척, 손질, 자르기 등)
- 재료 조리 (볶기, 찌기, 튀기기 등)
✔️ → 이 모든 공통된 단계들을 요약하여 하나의 과정으로 설명 = 추상화
✔️ 추상화의 장점:
- 복잡한 과정을 간단하게 표현
- 구조화 및 반복 재사용 가능
5️⃣ 📚 프로그래밍에서의 추상화 개념
✔️ 추상화(abstraction)란?
- 복잡한 것을 단순화하여 본질을 정의하는 것
- 공통된 속성과 기능을 도출해 클래스로 표현
✔️ 클래스와 추상화의 관계:
- 클래스 = 객체의 설계도
- 예: Person 클래스
- 속성: 이름, 나이, 성별 등
- 메소드: say_hi()
✔️ 중요한 포인트:
- 어떤 속성을 갖고 어떤 행동을 할지 정의 = 본질의 추출
- 사람마다 다르게 정의될 수 있음 → 추상화는 관점 기반 설계
6️⃣ 🧠 Django와 추상화
✔️ Django는 웹 애플리케이션의 동작을 추상화한 프레임워크
✔️ MTV 구조 덕분에 표준화된 흐름 제공 → 빠른 개발
✔️ 복잡한 로직을 간단히 분리하여 유지보수 및 협업 효율 ↑
✅ 최종 요약
- 웹사이트: 브라우저에서 보이는 화면 (정적)
- 웹 애플리케이션/서비스: 상호작용 + 서버 기능 포함 (동적)
- Django: MTV 패턴 기반 풀스택 프레임워크
- 추상화: 공통된 본질을 뽑아 구조화 → 클래스, 함수 등으로 표현
- 개발 속도 향상: 구조화된 추상화 덕분에 반복 작업 최소화
💡 실전 꿀팁
- MTV의 역할 구분을 명확히 하고 각자의 책임을 지켜야 유지보수가 쉬워짐
- 클래스나 함수 정의 전 "본질이 무엇인지" 고민하고 설계하는 습관을 들이자
- Django의 기본 기능을 최대한 활용하면 개발 속도를 크게 향상시킬 수 있음