오늘 한 것
팀 프로젝트 회의
개인 과제 해설 수강
학습법 강의 수강(링크)
개인 과제 해설
튜터님이 해주신 개인과제 해설로부터 새롭게 알게된 것들을 정리하였다.
1. makemigrations Vs. migrate
두 명령어는 모델을 DB에 적용할 때 순차적으로 실행되는 명령어다.
전자는 DB에 실제로 아무런 변화도 생기지 않는다.
대신 migrations 폴더에 모델의 변경사항을 반영한 스키마 파일을 생성한다. 스키마는 DB의 논리구조에 대해 정의하는 개념이다. 개체와 속성, 개체와 개체간의 관게와 제한사항을 정의한다.(자세한 것은 추가학습 필요)
마이그레이트: 생성된 변경사항들을 실제 디비에 적용하는 명령이다.
2. filter() Vs. get()
모델.objects.filter 와 .get은 둘다 해당 조건에 맞는 객체를 불러온다는 점이 일치한다. 그러나 filter는 해당 데이터가 없거나 여러개여도 오류가 발생하지 않는 반면, get 은 오직 한개의 객체만이 존재해야 하며, 그렇지 않을 경우 오류를 발생시킨다.
이러한 get의 특성을 이용해 다음과 같이 unique=True인 필드에 해당 데이터가 존재하는지 확인할 수 있다.
3. PositiveIntegerField
정수 값을 양수로 제한 할 수 있다. 양의 정수 이기만하면 모든 입력값을 허용해야하는 경우 validator도 쓸 필요 없이 이것을 쓰면 된다.
4. get_user_model()
현재 프로젝트에서 지정된 유저 모델(기본 auth.User)을 반환한다. 유저 모델을 변경할 필요가 있거나 할 때 유용하게 쓸 수 있다.
5. 역참조
역참조를 할때는 related_name에 지정된 이름으로 역참조 하거나, 모델 이름 뒤에 '_set'을 붙이기도 한다. onetooneField는 그냥 모델명으로 역참조 가능하다. (추가 공부 필요)
팀 프로젝트 회의 - 주제 선정 및 필요한 기능 정리
주제는 팀원들의 관심사에 따라 요리 레시피 및 정보를 공유하는 뉴스피드 형태의 sns를 만들기로 하였다. 필수적인 기능으로 인가된 사용자만이 이용할 수 있게 하는 인증기능(회원가입/로그인/로그아웃), 사용자가 글을 작성, 수정, 삭제하여 정보를 공유하고 다른 사용자의 글을 조회하고 원치 않는 정보를 내릴 수 있는 기능(포스팅 작성/수정/삭제/조회), 자기 자신을 소개하고 어필하기 위한 프로필 조회 및 수정 기능, 유저별 글 모아보기 기능을 꼽았다.
추가로 구현할 수 있는 기능으로 카테고리로 글 분류해서 조회, 글에 태그 달아서 태그별로 조회, 팔로우/팔로워 기능, 좋아요, 댓글 기능, 글에서 유저 언급하기를 꼽았다.
팀 프로젝트 회의 - ERD 설계
기본적인 기능만 먼저 위와같이 간단하게 데이터베이스를 구성하기로 하였다.
프로필은 거주지역과 유저 소개문, 유저 최초 생성일과 프로필 수정일을 필드로 가진다. 유저를 one to one으로 참조한다.
게시글은 유저를 one to many로 참조한다. 제목, 내용, 수정일 ,생성일을 필드로 가진다.
유저는 아이디, 비밀번호(암호화됨), 이메일, 가입일, 수정일(비밀번호 혹은 이메일 수정일- 추후 변경 추가 예정)을 필드로 가진다.
팀 프로젝트 회의 - 와이어 프레임 구성
홈, 로그인페이지, 회원가입페이지는 nav 태그를 이용해 대부분의 페이지에서 접근 가능하게 만들었다. 글쓰기는 모달창으로 띄우기로 하였다.
API 명세
각 기능에 대한 API를 설계하기로 하였다. 회원가입의 경우 비밀번호를 2번 입력하게 하여 확인하게 한다. 추후 수정 및 추가가 필요할 것이다.
팀 프로젝트 회의 - 팀 룰 정하기
원활한 협업을 위한 팀만의 룰을 정하기로 하였다.
1. 협업방식은 깃헙을 이용하여 github flow 방식으로 진행하기로 하였다. 포크-클론-브랜치-커밋-푸시-PR로 이어지는 방식으로 진행한다.
2. 반드시 기능별로 브랜치를 만든다. PR시 반드시 팀원 전체에게 알리고, 가능한한 모든 인원이 코드리뷰에 참여한다.
3. gitignore를 처음부터 프로젝트 환경을 고려하여 작성해 놓는다.
4. 저녁 7시에 식사 후 오후중에 한 것을 정리하여 취합한다.
5. 아침 9시 반에 회의하여 오늘 할것을 정한다. 전날 마주친 문제사항등을 공유하고 오전중에 함께 해결한다.
6. Django dotenv로 환경 변수를 관리해준다.
7. readme.md에 sa를 반영하자 (권장)
8. 사용한 함수명과 변수명들을 서로 공유 문서에 기록하여 겹치지 않도록한다.
'TIL' 카테고리의 다른 글
23.04.12 TIL (0) | 2023.04.12 |
---|---|
23.04.11 TIL(팀플개발일지) (0) | 2023.04.12 |
23.04.07 TIL (0) | 2023.04.08 |
23.04.06 TIL (0) | 2023.04.07 |
23.04.05 TIL (0) | 2023.04.05 |