본문 바로가기

기타26

TIL - 22.02.24 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 2월 24일(목) Select_related & Prefetch_related Select_related와 Prefetch_related란? Select_related와 Prefetch_related는 하나의 쿼리셋을 가져올 때 연관이 되어있는 objects들을 미리 불러오게(Eager Loading) 하는 함수이다. JOIN문을 사용하기 때문에 호출되는 SQL문이 복잡해질 수 있지만, 이렇게 불러온 데이터들은 result_cache(SQL문의 수행 결과가 저장되는 부분, 만약 저장된 데이터가 없으면 새로운 SQL문 호출) 부분에 cache 되기 때문에 결과적으로 중복 호출을 방지할 수 있다. 이렇게 Select_relat.. 2022. 2. 24.
TIL - 22.02.23 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 2월 23일(수) API API란? API를 비유적으로 설명하면 다음과 같다. 레스토랑에서 주문을 하는 과정을 생각해보면, 점원이 가져다준 메뉴판을 보면서 음식을 고르고 점원은 주문을 받아 요리사에게 해당 음식을 요청한다. 그러면 요리사는 음식을 만들어서 다시 점원에게 가져다주고 마지막으로 점원이 손님에게 음식을 서빙하면 주문이 완료된다. 여기서 점원의 역할이 API의 역할과 동일하다. 점원(API)는 손님(프로그램)이 주문할 수 있게 메뉴(명령목록)를 정리하고, 주문(명령)을 받으면 요리사(응용프로그램)과 상호작용하여 요청된 메뉴(명령에 대한 값)을 전달한다. 즉, API는 프로그램들이 서로 상호작용하는 것을 도와주는 매.. 2022. 2. 23.
TIL - 22.02.22 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 2월 22일(화) django session authentication How session authentication works session 과정은 다음과 같다. 클라이언트에서 사용자의 인증 정보를 서버에 전달한다. 서버는 인증을 처리한 뒤, 해당 user에 대해 session을 생성한다. session 정보는 서버에 저장되고, 클라이언트는 session id를 받아 브라우저에 저장한다. 클라이언트는 이후 이루어지는 요청에 session id를 이용한다. 서버는 전달받은 session id를 이용하여 저장 중인 session 정보로 인증을 처리한다. 만약, session id가 만료된다면 1번 과정부터 다시 동일 절차가.. 2022. 2. 22.
TIL - 22.02.21 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 2월 21일(월) Authentication(인증) 로그인 절차 user 아이디(id)와 비밀번호(password)를 생성한다. [회원가입] 유저로부터 받은 비밀번호(password)를 암호화해서 DB에 저장한다. [암호화] 유저 로그인 시도(아이디와 비밀번호 입력)한다. 유저가 입력한 비밀번호를 암호화한 후 DB에 저장된 유저 비밀번호와 비교한다. 두 비밀번호가 일치하면 로그인이 성공한다. 로그인 성공 시 access token을 클라이언트에게 전송한다. 유저는 로그인 성공 이후부터 access token을 가지고 HTTP request를 서버에 전송함으로써 매번 로그인 하지 않아도 로그인이 필요한 서비스를 이용할 수 있.. 2022. 2. 21.
TIL - 22.02.18 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 2월 18일(금) HTTP method GET HTTP GET method는 서버로부터 정보를 조회하기 위해 설계된 메소드이다. GET method는 요청을 전송할 때 필요한 데이터를 body에 담지 않고, 쿼리스트링을 통해 전송한다. 쿼리스트링은 URL 끝에서 ?와 함께 이름과 값으로 쌍을 이루는 요청 파라미터를 말한다. (만약 요청 파라미터가 여러개이면 &로 연결함) 예를 들면, www.unpasoadelante.tistory.com/resources?name1=value&name2=value 의 쿼리스트링을 포함한 URL에서 요청 파라미터명은 name1과 name2이고, 각각의 파리미터값은 value1과 value2가.. 2022. 2. 18.
TIL - 22.02.17 개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다. 2월 17일(목) Django Foreign Key Foreign Key on_delete CASCADE from django.db import models class Owner(models.Model): name = models.CharField(max_length=45) email = models.CharField(max_length=300) age = models.IntegerField() class Meta: db_table = 'owners' class Dog(models.Model): owner = models.ForeignKey('Owner', on_delete=models.CASCADE) name = mode.. 2022. 2. 17.