반응형

Django Project와 App의 차이
- Project: 하나의 웹 서비스
- App: 프로젝트 안에서 특정 기능을 담당하는 모듈
| Project (게시판 서비스) ├── user App (회원 관리) ├── post App (게시글 관리) ├── comment App (댓글 관리) └── chat App (채팅 기능) |
Django App 생성
- `python manage.py startapp post`
- 앱(app): Django 프로젝트 내에서 특정 기능을 담당하는 독립적인 모듈
- 프로젝트를 어떻게 논리적으로 구성할 건지에 따라서 앱 생성
- 예: user(회원 관리) 앱, post(게시글 관리) 앱 등
Django App 구조
| post/ (앱 디렉토리) ├── __init__.py ├── admin.py (관리자 기능 설정 파일) ├── apps.py (앱의 메타데이터와 설정 값을 정의하는 파일) ├── migrations/ (데이터베이스 스키마 변경 내역 디렉토리) │ └── __init__.py ├── models.py (데이터베이스 테이블을 정의하는 파일) ├── tests.py └── views.py (웹 요청에 대한 응답을 처리하는 파일) |
Django App 생성 후 작업
App을 생성했다고 바로 사용할 수 있는 것은 아니고 Django가 해당 App을 인식할 수 있도록 등록 필요
1️⃣ settings.py에 App 등록
- settings.py 안의 INSTALLED_APPS에 AppConfig 추가
- Django가 앱을 인식하고 그 앱에 대한 여러 기능들을 활성화
- INSTALLED_APPS: Django 프로젝트에서 사용하는 애플리케이션을 관리하는 목록
# settings.py
INSTALLED_APPS = [
'django.contrib.admin', # 관리자 사이트
'django.contrib.auth', # 인증 시스템
'django.contrib.contenttypes', # 콘텐츠 타입 프레임워크
'django.contrib.sessions', # 세션 관리
'django.contrib.messages', # 메시징 프레임워크
'django.contrib.staticfiles', # 정적 파일 관리
'post.apps.PostConfig', # Post 앱
]
Django는 `INSTALLED_APPS`에 등록된 App만 관리한다.
등록해야 다음 기능들이 동작한다.
- Model 인식
- Migration 생성
- Admin 등록
- Template 탐색
- Static 파일 관리
2️⃣ view 작성
Django View
- 웹 애플리케이션의 비즈니스 로직을 처리하는 부분
- 클라이언트의 요청을 받아서 적절한 응답을 반환하는 역할
- (Spring의 Controller 역할)

<클라이언트-서버> 모델
- 작업을 요청하는 클라이언트와 요청을 처리하고 결과를 제공하는 서버의 상호작용
- 요청: 게시물 조회, 회원가입, 로그인과 같이 서버의 특정 데이터를 요청하는 과정
- HTTP: 웹상에서 인터넷을 통해 데이터를 주고받는 규칙

- 사용자가 회원가입 버튼을 클릭하거나 상세 정보를 보기 위해 게시글을 클릭하는 등의 액션을 취했을 때 이런 사용자의 신호를 클라이언트가 감지해서 사용자를 대신해 의도에 맞는 HTTP 요청을 서버로 전송
- 서버는 요청에 맞는 처리를 한 뒤 HTTP 응답을 통해 요청의 결과를 클라이언트에게 전송
- 요청에 맞는 처리: 회원가입의 경우 사용자가 보낸 아이디와 비밀번호를 데이터베이스의 저장하여 사용자를 기록하는 과정
[참고] 실전! Django 입문 강의
반응형