안녕하세요, JM입니다.
오늘은 제가 Django를 통해 웹서버를 만드는 과정을 무작정 따라 하다 보니, 어떤 순서로 장고를 개발하는 것인지.
대략적인 기록.. 과 복습 차원에서 글을 써볼까 합니다.
저는 장고 기반의 서버를 둔 앱을 개발하여 배포해 보자!라는 목표를 가지고 장고의 여러 튜토리얼들을 무작정 따라 해 보고 있습니다.
따라해보고 익숙해지면, 원하는 앱을 기획해서 바로 만들어 보며 더 깊이 공부하려고요.
물론 모바일 타깃이 어떤 것이냐에 따라서 Swift나 Kotlin도 공부해야겠죠?
쉽지 않겠지만, 이런 과정들을 통해 좀 더.. 능력을 키워보고자 합니다.
Django Project의 개발 순서에 대해 정리하면 아래와 같습니다.
1. Django 프로젝트 생성
2. DB초기화
3. 관리자 계정 만들기
4. App 만들기
5. 모델 설계하기(데이터베이스에 들어갈 데이터라고 생각하면 될 듯?)
6. 뷰 만들기
7. URL 만들어서 보내기
8. Template 만들기
- 여기서 1~5 / 6~8을 나눠 놓은 이유 : 6~8의 과정을 반복함으로써 하나의 App이 만들어집니다.
- 6~8의 과정 : 대표적으로 CRUD가 있겠습니다.(Create, Read, Update, Delete)
- 여기서 말하는 App이란, 하나의 기능 단위입니다.
즉, 하나의 Django프로젝트 <-> 네이버라는 웹 사이트
하나의 App <-> 네이버 페이, 네이버 뉴스 등의 하나하나의 기능
- App 내에서 어떤 동작, 화면, 페이지 이동 등을 6~8의 과정을 통해서 하는 것이라고 생각하면 될 것 같습니다.
간단하게 모델과 뷰에 대해서만 정리해 보겠습니다.
모델
Database를 다룰 때 우리가 SQL을 매번 써 가면서 하기 싫으니까... 어려우니까... 귀찮으니까... Model을 사용합니다.
안 그러면 PHP처럼 직접 SQL을 처리해야 할 것 같은데.. 이 과정을 Django가 해결해주니 참 좋은 것 같습니다.
기초적인 DB를 비유하여 예를 들자면 다음과 같습니다.
모델 = 테이블 (@엑셀, sheet)
모델의 필드 = 테이블의 칼럼 (@엑셀, 열)
인스턴스 = 테이블의 레코드 (@엑셀, 행)
필드의 값(인스턴스 필드 값) = 레코드의 컬럼 데이터 값 (@엑셀, 값)
보통 모델은 클래스 형태로 선언하며, 아래와 같이 models.Model을 상속받습니다.
class myModel(models.Model):
name = models.CharField(max_length=100)
"""
name필드를 가지고, 그 필드는 문자 100자까지 가질 수 있는 모델
"""
뷰
쉽게 말해서, page단위를 생각하면 됩니다.
꼭 화면에 나타나지 않을 수도 있지만.. 우선 기능이나 페이지 단위를 생각하면 될 것 같습니다.
각 뷰는 url을 필수로 필요로 합니다. url이 있으면, 동작합니다.
뷰의 형식은
1. 클래스형 view
2. 함수형 view
로 나눠집니다.
클래스형 view는 기존에 많이 사용하는 기능을 미리 정의해둔 클래스를 상속받아서 사용하는 경우에 사용(ex:CRUD)
-> 장고의 generic view
함수형 view는 내가 원하는 대로 동작을 설계하고 싶을 때 사용
-> request를 매개변수로 받는다.(추가로도 가능)
오늘은 이 정도로 정리해 두도록 하겠습니다.
제가 다음에 찾아볼 정도로 정리를 하다 보니 상당히 불친절하게 적은 경향이 있네요 ㅠㅠ...
저의 정리 능력을 반성합니다.
다음번에도 기초적인 내용, 궁금한 내용, 삽질했던 내용들을 종종 정리하도록 하겠습니다.
감사합니다.
'공부 > [개발 관련]' 카테고리의 다른 글
[개발 관련] Linter에 대하여 (0) | 2022.01.08 |
---|---|
[PR: Pull Request에 대하여] PR의 목적과, 좋은 PR이란 어떤 것일까? (0) | 2022.01.04 |
[VS Code] - pylint import error 관련 해결 방법 (0) | 2021.06.17 |
[ Django(장고)] - 파이썬을 이용한 서버개발 2 - 장고의 기초 : MTV 모델(패턴) (0) | 2021.06.10 |
[ Django(장고)] - 파이썬을 이용한 서버개발 1 - 아나콘다 가상환경에 설치하기(Mac) (0) | 2021.06.02 |
댓글