사용자 ip 가져올때 주의할 점
* 사용자 ip를 가져올때는 그냥 runserver가 아니라 뒤에 0.0.0.0:8000을 붙여주어야 한다.
차이점을 알아보자면,
runserver
runserver만 하게 된다면 ip를 불러올때 기본 로컬 주소인 127.0.0.0.1을 가져온다.
runserver 0.0.0.0:8000
0.0.0.0은 local machine의 모든 IPv4 주소를 의미하기 때문에 로컬 호스트의 모든 IPv4로 되어있는 호스트에 접근이 가능하다.:8000은 포트를 의미하고, 현재 요청된 호스트의 IP나 이름에 상관없이 실행한다는 의미이다.
자, 0.0.0.0:8000를 쓸 준비가 됐다면 settings.py에 있는 ALLOWED_HOSTS도 변경 해주어야 한다.
# 수정전 settings.py
ALLOWED_HOSTS = []
# 수정후 settings.py
ALLOWED_HOSTS = ["*"]
' * '의 의미는 모든 호스트를 허용한다는 뜻이다.
조회수 기능 만들기(1)
조회수를 기능을 만들수 있는 방법에는 세가지가 있다.
- 쿠키를 이용한 방법
- 쿠키는 만료기간을 조절해서 증가하는 기준을 정해야 한다.
- 쿠키는 사용자가 보다 쉽게 임의로 삭제할 수 있기때문에 신뢰도면에서는 많이 떨어지는 편이고, 저장용량이 생각보다 적다.
- ip 주소를 이용한 방법
- 같은 ip로는 최초의 조회수 +1 이후 일정 시간이 지나고 다시 +1을 할 수 있게 해야한다.
- ip를 이용하려면 DB에 ip 주소, 게시글 등 정보들을 저장해야하는데, 쿠키보다는 신뢰도면에선 좋지만 사용자의 서버에 대한 부담이 커진다는 단점이 있다.
- local storage를 이용한 방법
- 쿠키와는 다르게 local storage에 저장되는 데이터는 만료기간이 없고 기본 저장용랑이 MB단위로 생각보다 크다.
- 만료기간이 없기때문에 조회수 증가에 대한 문제가 있어서 따로 방법을 생각해보아야 한다.
결론
쿠키를 이용한 방법이 좀더 쉽겠지만 사용자의 신뢰도를 위해 ip 주소를 이용한 방법으로 하기로 결정했다.
'내일 배움 캠프 > TIL' 카테고리의 다른 글
조회수 기능 만들기(2)_IP기반 (0) | 2023.06.14 |
---|---|
Import could not be resolved 오류 (0) | 2023.06.12 |
TIL) 12주차 2일 (0) | 2023.05.31 |
TIL) 12주차 1일 (0) | 2023.05.30 |
TIL) 11주차 4일 (0) | 2023.05.26 |