Insomnia

0

장고 프로젝트

목록 보기
3/15
post-thumbnail

Unity에서 Django DB Server에 REST 기반의 HttpRequest를 보내기 위해 꽤 많은 시간을 알아봤지만 진전이 없었다.

insomnia

POSTMAN과 비슷하게 요청 기능을 시험해볼 수 있는 툴이다.
얘를 가지고 json형식으로 서버에 요청을 보내보니 잘 들어갔다.
요청도 응답도 굿이었다.

그렇다면 이 요청을 C#코드로 바꾸거나 Unity의 메소드를 이용해서 짜기만 하면 되겠구나 생각했다.

근데 10일 남짓한 시간동안 헛물만 들이켰다.
그러다가 같은 조의 형님께서 어메징한 것을 발견하셨다.

Generate Code
정말이지 가슴 설레는 문구가 아닐 수 없다.
저걸 누르면 어떻게 되느냐?


해당 언어로 번역해서 진짜로다가 코드를 생성해줌.
공짜임. 그냥 해줌.
역시 이래서 뭐든 꼼꼼하게 만져봐야 함.

그리고 이게 C#만 되는 것이 아니었음.

저 수많은 언어들로 아무튼 코드 만들어줌. 진짜 얼탱이가 없었음.

아무튼 이 기능 덕분에 편하게 요청을 보낼 수 있게 되었다.


Django Query

Insomnia덕분에 Request 코드를 맘껏 짤 수 있게 되었고, Django Rest Framework에서 지원하는 serializer로 데이터를 예쁘게 받아오는 것도 가능하게 되었다.

테이블을 와장창 만들어서 원하는 것들을 마구마구 집어넣게 되니 아주아주 행복했다. 다 끝난 기분이 들었다.

하지만 문제 아닌 문제가 생겼는데,
이렇게 가져다 놓은 데이터들 중에 원하는 것만 딱딱 집어야 한다는 것이었다.

이건 django db, django query 등을 검색하니 금방 알아낼 수가 있었다.
Unity에서 보내는 데이터에 반드시 id를 포함하도록 해놓고, id를 조건으로 해서 필요한 데이터만 꺼내고 있다.

그렇게 까다로운 것이 아닌데다 쿼리문을 파이썬 메소드처럼 쓰는 기분이 들어서 좀 절묘하다는 생각이 들었다.

회원가입 및 회원관리, 로그인 등의 기능도 그냥 model에 테이블을 짜고, Unity 앱에서도 간편하게 회원가입을 할 수 있도록 만들어놨었다.
POST 기능을 쉽고 간편하게 쓰기 위한 방법이었다.

하지만 이렇게 해놓을 경우 permission이나 보안에 문제가 생길 수밖에 없다.
그래서 좀 알아보니 Django User 모델의 확장이란 게 있었다.


Django User model

Django에서 기본적으로 제공하는 회원관리 및 로그인 기능을 사용하지 않은 것은, Unity앱과의 통신 측면에서 아이디어가 전혀 없는 까닭이었다.

HttpRequest의 POSTGET 메소드는 쉽고 단순하면서도 데이터가 딱딱 꽂히고 읽히는 게, 보는 맛이 정말 좋았다.

그에 비해 Django에서 제공하는 회원가입 기능(?)으로 Unity앱에서 요청을 보내려고 하니 진짜 아무 생각도 나질 않고 어질어질했다.

보안 측면에서 User 모델을 확장하고 이를 Unity와 연결하는 방법을 알아봐야겠다는 생각이 든다.

일단은 지금의 방식으로 진행하겠지만, 이게 굉장히 허접하고 어이없는 시스템이란 걸 스스로가 알고 있다.
진행도에 따라 시간이 허락된다면 꼭 해봐야겠다.

끝!

0개의 댓글