본문 바로가기
WIL&TIL/TIL

20230414 TIL 장고 정리 및 팀프로젝트 마무리

by 코드뭉치 2023. 4. 14.

django / db용어 정리(db용어는 거의 공통)

RDBMS(RDB) : Relational DataBase Management system 

관계형 데이터베이스를 지칭한다 (MySql, OracleDB)

 

NoSql :Not Only Sql의 약자로 관계형 데이터베이스가 아닌 다른 형태

mongoDB등

 

Sql : Structured Query Language

데이터베이스의 CRUD를 위해 사용되는 언어

(장고에서는 ORM을 사용해서 Sql을 대체한다.)

 

ex).

# sql
select from user ...


# django
from user.models import User

User.objects.filter or User.objects.get

 

 

 

Table : DB는 기본적으로 테이블로 이루어져 있으며, 필드와 레코드가 존재한다.

# models.py

# User 테이블
class User(models.Model):
    # username 필드
    username = models.CharField("사용자 계정", max_length=50, primary_key=True)
    # password 필드
    password = models.CharField("비밀번호", max_length=200, unique=True)

# User라는 테이블에 username, password라는 필드가 존재함
# 사용자가 회원가입을 할 때마다 레코드가 하나씩 추가됨.
# 레코드는 row 혹은 튜플 이라고도 불리며 django에서는 object, instance라고도 불린다.
# 즉, 레코드란 데이터베이스에 저장 되는 값들을 지칭하는 것

ORM의 attribute, 필드 = DB에서 컬럼

DB에서 레코드 = row = 튜플, 장고에서  obejct = instance

튜플은 파이썬의 튜플과는 다르다..

 

 

FK : OnetoMany에서 다른 테이블을 참조할 때 사용된다. 

 

UK : 중복값을 허용하지 않는다. (ex. email, nickname)

 

PK : 테이블에서는 반드시 한개의 PK가 존재해야 한다.
        PK는 두개 이상 존재 할 수 없고, UK와 마찬가지로 중복 값을 허용하지 않는다.
        Foreign Key를 사용할 경우 참조 할 테이블의 PK를 바라본다.

        id라는 필드는 장고에서 기본적으로 생성해준다(내가 PrimaryKey)로 직접 지정할 수도 있다.


팀프로젝트

 

과제 요구사항

  • 로그인, 회원 가입
        - 회원가입 기능 [O]
        - 로그인 기능 [O]
        - 로그아웃 기능 [O]
  • 게시글 CRUD
        - 피드 페이지 [O]
            - 최신 게시글의 제목 or 썸네일 보기 [O]
            - 로그인 안해도 다 볼 수 있게 [O]
        - 게시글 작성 페이지
            - 로그인한 사용자만 들어올수 있게! [O]
        - 상세 게시글 페이지
            - 게시글의 세부내용 보기 [O]
            - 글 작성자만! 수정/삭제 가능하다. [O]
        - 마이 페이지
            - 내 게시물 보기 → 모든 유저 [O]
            - 프로필 수정 기능 → 나만 [O]
  • Git을 최대한 활용해보기!
        - Pull Request 활용하기! [O]
        - Merge는 Pull Request를 활용하여 진행한다. [O]
        - Branch 만들어 작업하기 [O]
        - 코드 리뷰 해보기! [△]
  • 추가 구현 기능
        - 댓글 기능 [O]
        - 좋아요, 북마크 기능 > 대신 별점 기능 [△]
        - 팔로우, 팔로워 기능 [O]
        - 팔로우한 상대 게시물 확인 기능 [O]
        - 프로필에 사진 업로드 기능 [O]
        - 많아지는 게시글을 나눠보기 위한 페이지 기능(pagination) [O]
        - 회원가입시 이메일 인증 기능 추가
        - 비밀 번호 찾기 기능 
        - AWS EC2에 배포(어려움!)

 좋은 팀원분들은 만나서 프로젝트가 순식간에 진행되었고, 덕분에 나름 많이 구현했다고 생각했는데 후반부에 컨디션 난조로 열심히 참여하지 못한 부분이 아쉽다.

 

 추가 요구사항 중 이메일 인증, 비밀번호 찾기 등은 충분히 할 수 있었을 것 같다. 물론 비밀번호 찾기 기능은 튜터님이

있어서는 안되는 기능이라고 하셨으니, 비밀번호 재설정 기능으로 만들어야 하겠지만 다음에 기회가 있다면 반드시 구현해보는것이 목표. 또한 Try except를 좀 더 의도적으로 사용하려고 노력해보는 것이 좋겠다.

 

 

댓글