<웹의 동작 순서 및 개념>
클라이언트 서버, api와 관련된 개념을 간단히 짚어보기
클라이언트 : 요청을 보내는 곳
서버 : 요청을 받아서 응답 해주는 곳
API : 데이터를 어떻게 주고 받자라고 정한 약속
파이썬의 웹 프레임워크
1.소프트웨어를 개발할 때 사용되는 일련의 라이브러리, 도구, 규칙의 집합
-> 기능 제공 및 반복작업을 줄여주는 개발을 도와주는 틀 또는 뼈대
2. 프레임워크의 선택은 프로젝트의 목적과 요구사항에 따라 다르기 때문에 개발하고자 하는 목적에 적합한 프레임워크를 선택하는 것이 좋다.
플라스크(Flask) vs 피라미드(Pyramid) vs 장고(Django) ?
: 위 프레임워크는 모두 웹 애플리케이션 개발에 사용, 공통적으로 라우팅, 템플릿 엔진, 데이터베이스 처리, 보안의 기능을 제공
◇ 장고
- 전체적인 프레임워크, 대규모 웹 애플리케이션 개발에 적합
- 데이터베이스 모델링, 관리자 페이지, 인증, 캐싱 ,쿼리 처리 기능 내
=> 개발자 추가 작업 최소화
- MTV(Model-Template-View)패턴을 따르며, 코드 재사용성과 유지보수성이 높다.
◇ 플라스크
- 마이크로 프레임워크, 작은 규모 웹 애플리케이션은 빠르게 개발하고자 할 때 적합
- 가볍고 유연, 필요한 기능을 선택적으로 추가할 수 있는 장점
=> 장고보다 더 높은 수준의 커스터마이징 가능
◇ 피라미드
- 대규모 웹 애플리케이션 개발 시 적합한 프레임워크
- WSGI(Web Server Gateway Interface)에 기반한 구조 => 다양한 웹 서버와의 호환성 높음
- 미들웨어(Middleware)기능 내장, 높은 수준 커스터마이징
장고의 MVT 패턴
: 장고의 소프트웨어 디자인 패턴으로써 모델(Model), 뷰(View), 템플릿(Template)으로 구성
1. 모델 : 데이터베이스와 연동되어 데이터 저장/조회/수정/삭제 역할, 데이터베이스의 모델(ORM)
2. 뷰 : 모델에서 가져온 데이터를 템플릿에게 전달, 사용자 요청 처리 역할, 실질적으로 프로그램이 동작하는 부분이자 urI을 요청하고 응답하는 사이에 일어나는 '서비스'들이 존재하는 곳
3. 템플릿 : 사용자에게 보여줄 화면을 구성하는 HTML, CSS, JavaScript등을 사용하여 UI표현
* ORM(Object-Relational Mapping)이란?
- 객체와 관계형 데이터베이스 간의 변환 작업을 자동화하는 기술
- ORM을 사용하면 개발자가 SQL 쿼리를 직접 작성하지 않고도 객체 지향적인 방식으로 데이터를 다룰 수 있다.
- ORM은 개발자가 작성한 객체를 데이터베이스 테이블과 매핑하여 데이터를 저장/조회/수정/삭제 등을 수행
- 장점
(1) 데이터베이스 종류에 구애받지 않고 일관된 방식으로 데이터 처리 가능
(2) 개발 생산성 높이고, 코드 가독성, 유지보수성 향상 시켜주는 역할
+) '더보기'란에 vscode로 Django 설치 및 실행 방법에 대해 간략한 설명을 작성하였습니다.
VS Code에서 Django를 설치하고 실행하는 방법
1. Python 가상환경 생성
python -m venv myvenv
위 명령어는 myvenv라는 이름의 가상환경을 생성
(원하는 이름으로 변경 가능)
2. 가상환경 활성화
- Mac/Linux
source myvenv/bin/activate
- Windows
myvenv\Scripts\activate
3. Django 설치
가상환경이 활성화되면, pip를 사용하여 Django를 설치
pip install django
4. Django 프로젝트 생성
Django를 설치했으면, 프로젝트를 생성한다. 터미널에서 다음 명령어 실행
- django-admin startproject myproject .
위 명령어는 myproject라는 이름의 Django 프로젝트를 생성 (원하는 이름으로 변경 가능)
+추가) 프로젝트 이름 뒤에 . 을 찍어주어야 새로운 파일이 새로 생성되지 않고 그 경로에 프로젝트가 만들어짐
5. VS Code에서 프로젝트 열기
VS Code를 열고, 메뉴에서 "File" -> "Open Folder"를 선택하여 프로젝트 폴더를 엽니다.
6. Django 서버 실행
가상환경이 활성화되어 있고, 프로젝트 폴더를 열었다면, VS Code 터미널에서 다음 명령어를 실행하여 Django 서버를 실행
- python manage.py runserver
위 명령어는 로컬 서버를 시작한다. 브라우저에서 http://127.0.0.1:8000/을 입력하여 Django 웹 페이지를 확인할 수 있다.
이제 Django 프로젝트를 VS Code에서 실행할 수 있다.
Django - settings.py
Django의 'settings.py'는 Django의 프로젝트 구성을 정의하고 구성 옵션을 설정하는 데에 사용.
아래는 settings.py에 일부 기능들을 설명
(1) DEBUG : 디버그 모드 사용 여부 결정, 디버그 모드 켜져있으면 오류 메세지와 스택 추적 정보가 웹페이지에 표시됨
(2) ALLOWED_HOSTS : 장고 애플리케이션이 서비스할 수 있는 호스트 이름 지정. 이 값을 설정하지 않는다면, 외부에서 액세스 할 수 없는 보안 문제가 발생할 수 있다.
(3) INSTALLED_APPS : 장고에 설치된 앱들. 애플리케이션들은 Python 패키지 형태로 설치되어 있어야 한다.
(4) DATABASES : 내가 사용할 데이터베이스 연동 설정. 기본값은 SQLite 데이터베이스 설정
(5) STATIC_URL : 정적 파일의 URL 지정. CSS, JavaScript파일 등을 참조할 때 사용
(6) MEDIA_URL : 미디어 파일의 URL 지정. 이미지, 동영상 파일 등을 참조할 때 사용
(7) MIDDLEWARE_CLASSES : 사용자 요청/응답 사이에서 작동하는 시스템들
(8) TEMPLATES : 나의 HTML파일을 자동으로 인식
(9) AUTHENTICATION_BACKENDS : 패스워드 보안 수준 검증
(10) TIME_ZONE : 우리가 어떤 시간에 있는지를 나타냄
Django - urls.py
URL패턴을 정의, 각 URL에 대해 처리될 뷰 함수를 지정하는 파일. 이 파일은 Django 프로젝트의 구성을 결정, URL패턴을 설정하는 데 사용된다. 이를 통해 Django 애플리케이션에서 사용할 수 있는 URL을 정의하고, 웹 페이지의 경로를 결정할 수 있다.
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
포트(Port)의 개념
포트는 컴퓨터와 인터넷에 연결된 다른 기기(예: 서버) 사이에서 데이터를 주고 받기 위한 논리적인 연결점
인터넷에서 데이터를 주고받을 때, 데이터는 패킷(Packet)이라는 작은 단위로 나눠져 전송된다. 이 때, 각 패킷에는 출발지 포트와 목적지 포트가 포함된다. 출발지 포트는 데이터를 보내는 컴퓨터에서 사용하는 포트이며, 목적지 포트는 데이터를 받는 컴퓨터에서 사용하는 포트.
포트는 숫자로 표현되며, 0~65535의 범위를 가진다. 포트는 네트워크에서 특정한 프로그램 혹은 서비스를 식별하는 데 사용된다. 이러한 포트 정보를 이용하여 컴퓨터 간의 통신을 할 때, 데이터를 어떤 프로그램이나 서비스에 전달할 지 결정할 수 있다. Django는 웹 서버와 통신하기 위해 포트를 사용한다. runserver명령어를 입력하면 기본적으로 8000번 포트를 사용한다. 따라서 http:///localhost:8000/ 와 같은 주소로 접속하면 Django 애플리케이션을 확인할 수 있다.
'Django' 카테고리의 다른 글
DRF(Django Rest Framework)와 RESTfulAPI (0) | 2023.05.08 |
---|---|
Django-rest-framework 01. 프로젝트 시작하기 (2) | 2023.04.25 |
Django를 이용해서 화면 띄우기 (Django 맛보기) (0) | 2023.04.04 |