5/24 django 학습

이경화·2023년 5월 24일
0

django 학습

목록 보기
16/21

멋쟁이사자 django 학습(16)


33강 - get_success_url 함수 그리고 리팩토링


34강 - MagicGrid 소개 및 Articleapp 시작


5.19 멘토링 내용 요약

  • 화면을 짠 만든다 (T) -> 그리고 화면의 기능을 만든다 (V) -> Urls.py 로 간다(기능이랑 화면 연결해준다) -> accountapp을 사용하기 위해 settings.py accountapp 에 등록해야한다
  • hello_world_input은 helloworld.html 파일에 input의 name이다.(input type="text" name="hello_world_input")
  • [단축키] control+f : 검색창

5.19 멘토링 숙제

  • 쿠키
    -쿠키란? 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 사용자의 웹 브라우저를 통해 인터넷 사용자의 컴퓨터나 다른 기기에 설치되는 작은 기록 정보 파일을 일컫는다.
    -서버는 클라이언트의 로그인 요청에 대한 응답을 작성할 때, 클라이언트 측에 저장하고 싶은 정보를 응답 헤더의 set-cookie 에 담는다.
    -이후 클라이언트가 재요청 할 때마다 저장된 쿠키를 요청 헤더의 cookie 에 담아 보낸다.
    -서버는 쿠키에 담긴 정보를 바탕으로 해당 요청의 클라이언트가 누군지 식별 할 수 있다.
  • 세션
    -session은 비밀번호와 같은 인증 정보를 쿠키에 저장하지 않고 대신에 사용자의 식별자인 session id 를 저장한다. 서버에는 인증 정보와 더불어 이 ID에 해당하는 사용자의 정보를 저장한다.
    -세션은 서버에 저장하기 때문에 사용자가 수백, 수천, 수만으로 늘어난다면 해당 유저의 정보를 찾고 데이터 매칭에 오랜 시간이 걸리면서 서버에 부하가 가해지게 된다.
    -쿠키와 마찬가지로 로그인과 같은 사용자 인증을 할때 주로 사용된다.
    -큰 차이점으로는 쿠키는 클라이언트 쪽에 정보를 저장하는 반면,
    세션은 서버 쪽에 정보를 저장한다는 점이 있다.
  • 토큰(JWT)

    -JWT (JSON Web Token) 는 인증에 필요한 정보들을 암호화시킨 토큰을 의미한다. 위의 세션/쿠키 방식과 유사하게 사용자는 Access Token (JWT Token) 을 HTTP 헤더에 실어 서버에 전송한다. 토큰은 임의로 생성된 비밀번호 같이 동작한다. 제한된 수명을 가지고, 새로운 토큰은 한번 만료되면 새로 생성되어야 한다.
    -토큰의 장점 : header와 payload 를 가지고 signaure를 생성하므로 데이터 위변조를 막을 수 있다.
    인증 정보에 대한 별도의 저장소가 필요없다. (서버 부하 ↓)
    JWT는 토큰에 대한 기본 정보과 전달할 정보 및 토큰이 검증 되었다는 서명 등 필요한 모든 정보를 자체적으로 지니고 있다.
    토큰은 한 번 발급되면 유효기간이 만료될 때까지 계속 사용이 가능하다.
    -토큰의 단점 : 쿠키나 세션과 다르게 JWT는 토큰의 길이가 길어 인증 요청이 많아질수록 네트워크 부하가 심해진다.
    payload 자제는 암호화되지 않기 땨문에 유저의 중요한 정보를 담으면 안된다.
    토큰을 탈취당하면 대처하기 어렵다.
    특정 사용자의 접속을 강제로 만료하기 어렵지만, 쿠키/세션 기반 인증은 서버 쪽에서 쉽게 세션을 삭제 할 수 있다.

  • Onetoone field
    -onetoonefield는 관계적 의미로는 서로 하나의 row만 가질 수 있는 관계다. 그래서 이론적으로는 unique=True 속성을 갖고 있는 ForeignKey 관계와도 같다.
    -단일 객체를 직접 리턴한다.
    -예를 들어, 사용자(User)와 프로필(Profile)이라는 두 개의 테이블이 있다고 가정해보면, 각 사용자는 하나의 프로필을 가질 수 있으며 하나의 프로필은 특정한 사용자에게 속할 수 있다. 이러한 경우, 사용자와 프로필 간의 관계는 일대일 관계이다.
  • Manytomany field
    -M:N 관계는 하나의 A가 여러 개의 B를 가질 수 있고, 하나의 B도 여러 개의 A를 가질 수 있는 관계를 의미한다.
    -만약 병원에 내원하는 환자와 의사의 예약 시스템을 구축한다면, 환자는 여러 의사에게 진료를 받을 수 있고, 의사도 여러 환자를 진료할 수 있기 때문에 M:N으로 모델 관계를 설정해야 한다.
  • Onetomany field
    -onetomany filed는 관계형 데이터베이스의 테이블 간에 일대다(1:N) 관계를 나타낸다.
    -예를 들어, 게시물(Post)과 댓글(Comment)이라는 두 개의 테이블이 있다고 가정해보면, 한 개의 게시물에는 여러 개의 댓글이 달릴 수 있다. 이때 게시물과 댓글 간의 관계가 일대다 관계이다.

0개의 댓글