django에는 django_session 테이블이 있습니다. 말 그대로 세션 데이터를 저장하는 테이블인데요. 어떤 데이터가 저장되는지 알아보겠습니다. 저는 postgres 14.0, django는 4.0대 버전을 쓰고 있습니다. 먼저, 엣지로 django admin 페이지를 열어서, 어드민 계정으로 로그인 하였습니다. 다음에, 파이어 폭스로도 똑같이 어드민 계정으로 로그인 하였습니다. 이제, django의 session 테이블에 어떤 데이터가 저장되어 있는지 보도록 하겠습니다. session_key하고 session_data, 그리고 expire_date가 저장되어 있습니다. 세션 키와 세션 데이터는 어떻게 생성되는 것일까요? 그리고, 세션 키는 어디에 쓰이는 것일까요? 먼저 세션 키는 브라우저의 쿠키..
웹 검색 결과
django 버전은 4.0.3, 파이썬은 3.9 버전에서 실습하였습니다. 그리고, 디비는 postgresql을 쓰고 있습니다. migration을 진행하다 보면, 당황할 법한 에러 메세지를 보게 되는 경우가 있는데요. postgresql과 연결한 상태에서, migrate를 하다가 오류가 생겨서 당황하였습니다. 사실, 잘 될 거 같았기 때문입니다. 예외를 자세히 읽어 보니, relispartition이 언급되었는데요. 옛날 버전은, pg_class 테이블에 해당 필드가 없어서 생긴 문제였습니다. settings.py에서 디비 연결 정보를 정의하였습니다. 그리고 마이그레이션이 잘 될 줄 알았는데 이게 왠걸? relispartition이 떨어졌습니다. c가 무엇인지 알아보기 위해서, 코드 내부를 타고 들어가 ..
django를 다루다 보면 migration을 하게 되는데요. 문득 궁금해 진 것이 하나 있었습니다. migration 기록은 어디에 저장하는 것일까요? 그래서 테스트 용으로 migrateTest 프로젝트를 만들었습니다. 그냥 django 빈 프로젝트입니다. 바꾼 설정은 migrateTest 패키지 밑에 있는 settings.py를 건드린 것 뿐입니다. 이 부분을 건드려서, 접근할 데이터베이스에 대한 정보를 초기화 해 주었습니다. showmigrations 명령어는 마이그레이션이 적용된 부분인 경우 x 표시를 해 줍니다. 지금은 모두 적용이 되지 않은 상태입니다. 이제 migrate 명령어를 이용해서, 마이그레이션 파일에 있는 것들을 모두 적용해 보겠습니다. 그 후에, 다시 showmigrations를 ..
spring security를 이용해서 api 서버를 간단하게 만드는 토이 프로젝트를 진행하다가, 뭔가 거슬리는 것이 있어서 몇 가지 설정을 off 한 게 있었는데요. csrf도 그 중 하나였습니다. 3회 코딩테스트를 출제하느라 얼레벌레 넘어간 감이 있었는데요. 문득 생각이 난 김에 몇 편 정도 써 보려고 합니다. 혹여나 이상한 부분이 있다면, 댓글을 남겨주시면 감사하겠습니다. 먼저, spring security + spring web 디펜던시만 추가하고 아무것도 추가하지 않은 서버를 돌리면, 요런 로그인 페이지가 하나 뜨게 됩니다. 페이지 소스를 보겠습니다. 보면 _csrf라고 hidden type이 하나 뜨게 되는데요. csrfFilter 클래스에서 doFilterInternal 메서드에 브레이크 포..
저번에 controller에서 UserLoginInfo로 들어오는 정보를 User로 convert 해서 서비스 단에 보내는 로직을 작성하였습니다. 이것을다른 데서 하게 하면 어떨까요? mapping을 손쉽게 하기 위해서 mapstruct를 이용했는데요. 문제는 비밀 번호가 담겨진 것은 가입 로직에서는 encoding 해서 service 단에 넘겨야 한다는 것입니다. 그 전에, 가입과 로그인 로직부터 간단하게 도식화 해서 그려보겠습니다. 먼저 가입 로직이에요. userName과 Email, password를 json 형식으로 받으면 패스워드만 bcrypt로 암호화를 해요. 나머지 필드인 userName과 Email은 User 객체를 생성할 때 그대로 넣고요. 그 다음에 User 객체를 service lay..
최근댓글