널널한 서버 개발 일지 #1

     

일을 하면서 사이드 프로젝트로 서버 개발을 진행하는데 

 

주말만 작업하다 보니 어디까지 작업했는지, 어떤 작업을 하다 말았는지, 어떤 작업을 해야 하는지를 항상 까먹는다.

 

그래서 일지를 적기로.. 

 

물론 jira를 사용하긴 하는데 잘 안쓰게 된다.

 

jira kaban board

 

 

 

일단 오늘까지 상황을 정리해야겠다.

 

서버 상태

AWS EC2 ubuntu 16.04

django + uwsgi by docker

nginx by docker

docker-compose를 이용해 동시에 배포

 

mysql by docker

DB는 나중에 RDS 사용하는걸 가정하여 docker-compose에서 제외

 

github을 이용해 버전관리 및 배포

* github과 ssh연결셋팅 해놔야 git pull 할 때마다 안 귀찮음

 

alias 설정해놓기

대충 이정도만 지금은..?

 

일단은 지금 서버가 돌아가고 있다.

 

API는 로그인만 만들어놨는데 Django에서 제공하는 APIView와 ViewSet 중 어떤 걸 사용할지 고민이다.

 

사실은 APIView나 ViewSet 다 안 쓰고 그냥 생으로 만들고 싶은 생각도 있다.

왜냐면 뭐가 더 편한지 모르겠어서..

 

APIView와 ViewSet은 정말 효율적인 것인가? Serialize는 꼭 필요한 것인가..?!

 

아무리 레퍼런스를 찾아봐도, APIView와 ViewSet을 꼭 써야 하는지 알 수가 없다.

그냥 다들 쓰니까 쓰는 것 같다.

 

만약 서비스가 DB Table에 선언된 데이터 그대로 내려준다면 상관이 없지만,

 

여러 DB에 데이터를 참고하거나 계산을 해서 내려줘야 한다면?

 

 

REST 꼭 써야만 하는가...

REST가 모바일 앱을 위한 서버로 꼭 사용돼야 하는지 찾다 보니 내 생각과 아주 비슷한(?) 글을 발견했다.

 

일단 링크는 요기 https://medium.com/@back4apps/graphql-vs-rest-62a3d6c2021d

 

GraphQL vs REST

Learn about the similarities and differences between GraphQL vs REST with some practical examples.

medium.com

 

GraphQL과 REST의 비교점을 적은 글인데 REST의 단점을 아주 잘 지적한 것 같다.

 

Another common problem developers face with REST is over- and under-fetching. This is because clients can only request data by hitting endpoints that return fixed data structures. Due to this, they aren’t able to get exactly what they need and run into either an over-fetch or an under-fetch scenario.

 

모바일 앱과 서버 간에 통신에서 고려해야 되는 사항중 하나는 바로 "데이터의 양"이다. 

 

증권사에서 일할 때 HTS, WTS와 달리 MTS와 통신하는 API를 만들 때는 항상 데이터를 얼마나 최소화할 수 있을까를 고민하고 만들었다. 데이터를 많이 내려줄수록 사용자가 사용하는 데이터의 양이 커지기 때문이다. 데이터가 커지면 사용자는 LTE or 5G 데이터를 많이 사용하게 되기 때문에 사용자의 통신요금이 커지게 된다. (물론 wifi환경이면 문제없지만)

 

REST로 서버를 만들게 되면 분명히 불필요한 데이터를 포함할 수밖에 없다. 왜냐하면 개발의 생산 편의성을 위해 모델을 통째로 내려주게 되니까. (물론 제어할 수 있다.)

 

GraphQL을 사용한다면 이런 REST의 단점을 극복할 수 있지만, Django에서 GraphQL을 사용하는 레퍼런스가 많이 없다.

그래도 한번 해볼까 말까 고민 중..

 

GraphQL 써보기

 

grapene-django이라는 패키지가 일단 있으니까 한번 해봐야겠다.

 

참조 사이트

https://stackabuse.com/building-a-graphql-api-with-django/

https://jonnung.dev/graphql/2019/08/05/python-graphql-graphene-tutorial/

 

 

 

 

 

 

'Study > 널널한 서버 개발 일지' 카테고리의 다른 글

널널한 서버 개발 일지 #2  (0) 2020.07.20
널널한 서버 개발 일지 #1  (0) 2020.07.12

댓글(0)

Designed by JB FACTORY