💡수업 목표💡
- 웹의 기본적인 구조를 이해하고, 5주 동안 만들 프로젝트를 살펴본다.
- Python의 기초를 다룬다
- Django의 기본 구조와 동작 원리를 이해한다
Django란?
: 파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크
Python Web Framework
프레임워크 Framework는 기능을 모아놓은 라이브러리 이상으로 소프트웨어를 개발하기 위해서 표준 구조를 구현하는 클래스와 인터페이스의 집합을 의미한다. 즉 설계의 기반, 뼈대라고 보면된다.
어플리케이션을 개발 시 반드시 필요한 서버 구동, 알고리즘, DB 연동같은 기능들을 위한 설계의 기반이 되는 틀(기반코드)을 제공하기 때문에 개발자는 프레임워크가 정해놓은 구조 안에서 자신이 원하는 기능들을 구현하면 된다. 단순 기능들을 뽑아쓰는 라이브러리 형식과는 약간 차이가 있다.
- Java 서버 개발에 사용되는 Spring
- Python 서버 개발에 사용되는 Django, Flask
- 안드로이드 앱 개발에 사용되는 Android
- 아이폰 앱 개발에 사용되는 Cocoa Touch
- 웹 개발에 사용되는 Angular, Vue.js 등
- 자바 기반의 JSP를 위한 프레임 워크 Struts
- 루비로 작성된 MVC패턴을 이용하는 Ruby on Rails
Python으로 작성 된 웹프레임워크는 크게 Flask나 Pyramid와 같이 웹 어플리케이션 개발에 필요한 최소한의 가벼운 기능을만 넣은 마이크로 웹 프레임워크나 웹 어플리케이션 개발에 필요한 기능을 꽉꽉 담은 Django가 있다.
MTV 패턴
Django는 MTV(Model - Template - View)패턴을 기반으로 한 프레임워크이다. Model은 데이터 베이스에 저장되는 데이터를 의미하는 것이고, Template은 사용자에게 보여지는 UI부분을, View는 실질적으로 프로그램 로직이 동작하여 데이터를 가져오고 적절하게 처리한 결과를 템플릿에 전달하는 역할을 수행한다.
💡 MVC패턴와 같이 나오는데 model - view - controller을 구분해 한 요소가 다른 요소들에게 영향을 주지 않도록 설계하는 방식인데, 장고도 기본적으로 이 방식을 따르며 명칭이 View → Template, Controller → View로 명칭이 조금 다를 뿐이다.
Model - 데이터베이스 ORM
Model을 데이터베이스에 저장되는 데이터를 의미한다.
Application에서 가공하고 사용되는 데이터를 처리하기 위해서는 SQL를 알아야하지만 Django에서는 ORM(Object-Relational Mapping) 을 통해서 데이터를 처리한다.
ORM(Object-Relational Mapping)
객체(Object)와 관계형 데이터베이스(Relational Database)의 데이터를 매핑(Mapping)해주는 것을 의미. 데이터베이스의 테이블을 객체 Class처럼 사용하면 SQL 쿼리로 자동 변환 시켜서 별도로 SQL 쿼리를 작성할 필요 없이 파이썬 코드 작성만으로 DB를 조작할 수 있게 해 주는 것.
Template - 사용자 인터페이스
Template은 사용자에게 보여주는 부분, User Interface를 뜻한다. HTML과 같은 파일이 이 템플릿을 담당한다.
Template은 어떤 데이터를 보여줄지 처리하지 않고 Django의 Template 언어를 통해서 View를 통해서 정의된 데이터를 보여주는 역할만 한다.
View - 데이터 처리 로직
View는 웹으로부터 요청을 받고 Application에서 사용되는 데이터를 Model에서 가져와 로직으로 가공하여 그 결과를 Template으로 응답을 보내준다. 실질적으로 앞으로 로직처리하는 모든 코드는 여기에서 작성하게 될 것이다.
+ URLconf - URL 설계
URL은 view와 template을 이어주는 역할을 하고, 이 부분을 만들어 주는 작업을 URLconf라고 한다. 장고 1.x 버전에서는 이부분에서 정규표현식을 사용해 복잡했지만, 장고 2.x 버전은 path() 함수를 이용해 그 과정을 훨씬 매끄럽게 다듬어서 공부하기 더 쉬워졌다
Django 시작하기
Django 프로젝트 생성하기
1. 프로젝트 폴더 만들기
$ mkdir djangoPrac
$ cd djangoPrac
2. python 가상환경 생성하고 활성화 하기
$ python -m venv venv # 가상환경 생성하기
$ source ./venv/bin/activate # (Mac) 가상환경 접속하기
3. Django 사용을 위한 Django 설치하기
$ pip install django # django 설치
$ pip freeze # pip 패키지 리스트 확인
4. 현재 디렉토리에 장고 프로젝트 생성하기
- 점 기호(.)가 있음에 주의하자. 현재 디랙토리를 기준으로 프로젝트를 생성하겠다는 뜻. 점기호가 없으면 하위에 장고프로젝트가 생성된다.
$ django-admin startproject [프로젝트이름] .
# 디렉토리(1번) 없이 바로 장고프로젝트 생성하기
# 단, 프로젝트 디렉토리와 똑같은 앱디렉토리 생성
$ django-admin startproject [프로젝트이름] # [프로젝트명]/[프로젝트명] 구조
5. Django 서버 실행시켜보기
$ python manage.py runserver
PyCharm로 Django 프로젝트 생성하기
파이참을 실행 후 New Project를 통해서 Django 프로젝트를 생성해준다.
생성된 프로젝트를 Run Server 하면 정상적으로 개발서버가 구동된다.
'스파르타코딩클럽 > Python' 카테고리의 다른 글
파이썬 Django 기초 - 2주차 (2) 데이터베이스와 Model (0) | 2022.09.28 |
---|---|
파이썬 Django 기초 - 2주차 (1) Django 프로젝트 구조 (0) | 2022.09.28 |
Python에서 venv로 가상 환경 사용하기 (2) | 2022.09.26 |
Python 설치 및 IDE 설정 (1) | 2022.09.26 |
Python 기초문법 뽀개기 (0) | 2022.09.03 |