어제로 Django 추천 시스템 팀 프로젝트가 끝이 났다.
장고 기초를 배운 뒤 바로 추천 시스템 프로젝트를 진행하여 어려워했지만 팀원들과 함께 프로젝트를 잘 완성해주었다.
그리고 팀원들과 KPT를 나누면서 팀에 대한 이야기도 나눴는데, 팀 변경에 대해 팀원들과 상의해보았다.
약 2달의 시간 동안 팀 변경 없이 지내왔던 팀은 한번 새로운 사람들과 함께 공부해보면서 프로젝트를 만들면 어떻겠냐는 의견이 나왔고, 해당 의견을 수렴하여 약 2달간 함께 했던 팀원들이 흩어졌다.
다소 아쉬운 감정도 있었지만 괜찮은 의견이었기에 다들 긍정적이었던 것 같다.
그렇게 프로젝트가 끝난 어제를 뒤로 하고 DRF에 대한 강의가 시작되었다.
DRF (Django Rest Framework)
- Django 내에서 RESTful API 서버를 쉽게 구축할 수 있도록 도와주는 프레임워크
- 기존 Django에서 확장된 기능들을 사용할 수 있음
- Serializer 기능을 제공한다.
DRF 기능을 사용하려면 터미널에 해당 명령어를 적어주고 실행시키면 된다.
pip install djangorestframework
만약 Django 설치가 되어있지 않다면 pip install django를 해주면 된다.
이후 원활하게 DRF 모듈을 다운로드했다면 장고 내 settings.py 안에 있는 INSTALLED_APPS에 'rest_framework', 를 추가해주도록 했다.
오늘은 DRF를 배우는 첫 강의 날이었기 때문에 자세한 사항은 오늘 배우지 않고 내일부터 배우기로 정해졌다.
하지만 그렇다고 오늘은 아무것도 하지 않는 것이 아닌 장고를 공부하면서 배웠던 내용들을 복습하며 공부하는 시간을 가졌다.
우선 데이터베이스 용어에 대한 정리이다.
데이터베이스 용어
: RDBMS : Relational DataBase Management System :
- MySQL, OracleDB 등의 관계형 데이터베이스를 지칭한다.
: SQL : Structured Query Language :
- 데이터베이스의 CRUD를 위하 사용되는 언어이다.
- CRUD : Create(생성), Read(읽기), Update(갱신), Delete(삭제)
: NoSQL : Not Only Structured Query Language :
- MongoDB와 같은 데이터 저장 형태로, 비관계형 데이터베이스를 지칭한다.
: Table(=Relation) :
- DB는 기본적으로 테이블의 형태로 이루어져 있으며, 필드와 레코드가 존재한다.
- Django에서는 object라는 이름으로 사용된다.
다음은 DB 필드에서 사용되는 Key의 종류에 대해 알아보도록 할 텐데, 우선 DB 테이블 내에 지칭되는 용어들에 대해 알아보았다.
: Relation : 릴레이션(=테이블) :
- 데이터베이스의 데이터들을 표의 형태로 표현한 것
: Tuple : 튜플 :
- 릴레이션을 구성하는 행
- 튜플의 수를 기수(Cardinality)라고 부른다.
: Attribute : 속성 :
- 릴레이션을 구성하는 열
- 속성의 수를 차수(Degree)라고 부른다.
Key 종류
: 후보키 : Candidate Key :
- 릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별할 수 있는 속성들의 부분 집합
- 모든 릴레이션은 하나 이상의 후보키를 가져야 하며 유일성(Unique)과 최소성(Minimality)을 만족해야 한다.
: 기본키 : Primary Key :
- 후보키 중에서 선택한 주가 되는 키
- 릴레이션에서 특정 레코드를 유일하게 식별할 수 있는 속성, Null 값으로 둘 수 없다.
: 대체키 : Replacement Key :
- 후보키 중에서 기본키를 제외한 나머지 속성들
: 외래키 : Foreign Key :
- 관계를 맺는 릴레이션 간에 기본키를 참조하는 속성
- 하나의 릴레이션에는 다수의 외래키가 존재할 수 있다.
- 외래키로 지정된 필드는 중복 및 Null 값으로 둘 수 있다.
: 슈퍼키 : Super Key :
- 하나의 릴레이션 내에 있는 속성들의 집합
- 슈퍼키로 구성된 속성의 집합은 동일한 값으로 나타나지 않는다.
- 릴레이션을 구성하는 튜플들에 대해 유일성(Unique)은 만족하나 최소성(Minimality)은 만족하지 못한다.
다음은 Django 프로젝트를 만들면 생성되는 파일 구조들에 대한 설명이다.
장고 프로젝트를 처음 생성하면 나타나는 파일들은 다음과 같다.

: settings.py :
- 장고 프로젝트를 실행할 때 해당 파일에 적힌 내용을 참조한다.
- 데이터베이스, 앱, 기본 정책 등에 대한 설정을 할 수 있다.
: models.py :
- DB에 테이블을 추가하고 관리할 때 사용된다.
- 테이블에 들어갈 필드 및 필드의 속성 값 등을 설정할 수 있다.
- python manage.py makemigrations / migrate 명령어를 통해 해당 테이블에 대한 설정을 DB에 수정 및 반영을 할 수 있다.
: views.py :
- 장고에서 request 데이터를 받은 후 처리할 코드들이 들어간다.
- urls.py에서 views.py에 있는 class 및 def를 호출하여 사용하게 된다.
: urls.py :
- 웹에서 장고 프로젝트로 request를 전달할 때 받아줄 경로를 설정해준다.
이후 사전 지식에 포함이 되는 Python 문법에 대한 정리도 하였는데, 이것은 Github의 README.md 파일에 따로 기재를 해두었다.
https://github.com/J1NU2/DRF_Practice
GitHub - J1NU2/DRF_Practice
Contribute to J1NU2/DRF_Practice development by creating an account on GitHub.
github.com
-
오늘은 DRF에 대해 자세히 들어가기 전 python 프로젝트 내에서 DRF 모듈을 설치해보고 사전 연습 겸 이론적인 공부를 하였다.
그리고 어제까지 같이 프로젝트를 진행했던 팀원들과 마지막 인사를 나누고 새로운 팀원분들과 함께하게 되었다.
이전 프로젝트를 같이 하시면서 계셨던 분들이셨고 나만 따로 합류하게 되었는데, 그 때문인가 아직은 어색한 면이 있는 것 같다.
그래도 이렇게 팀으로 만나 뵌 것이 인연이기도 하고 이제 막 팀에 합류된 내가 민폐를 끼치지 않게 노력해야겠다는 생각을 가졌다.
:D
'TIL 및 WIL > TIL (Today I Learned)' 카테고리의 다른 글
| [TIL] 2022.06.20 (Django 심화, DRF 3) (0) | 2022.06.21 |
|---|---|
| [TIL] 2022.06.16 (Django 심화, DRF 2) (0) | 2022.06.16 |
| [TIL] 2022.06.14 (Django 추천 시스템 팀 프로젝트(끝)) (0) | 2022.06.14 |
| [TIL] 2022.06.13 (Django 추천 시스템 팀 프로젝트5) (0) | 2022.06.14 |
| [TIL] 2022.06.09 (Django 추천 시스템 팀 프로젝트4) (0) | 2022.06.10 |