본문 바로가기

내일 배움 캠프/TIL

사용자 ip 가져오기 & 조회수 기능 만들기(1)


사용자 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)

조회수를 기능을 만들수 있는 방법에는 세가지가 있다.

  1. 쿠키를 이용한 방법
    • 쿠키는 만료기간을 조절해서 증가하는 기준을 정해야 한다. 
    • 쿠키는 사용자가 보다 쉽게 임의로 삭제할 수 있기때문에 신뢰도면에서는 많이 떨어지는 편이고, 저장용량이 생각보다 적다.
  2. ip 주소를 이용한 방법
    • 같은 ip로는 최초의 조회수 +1 이후 일정 시간이 지나고 다시 +1을 할 수 있게 해야한다. 
    • ip를 이용하려면 DB에 ip 주소, 게시글 등 정보들을 저장해야하는데, 쿠키보다는 신뢰도면에선 좋지만 사용자의 서버에 대한 부담이 커진다는 단점이 있다.
  3. 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