Django를 1.9.x 에서 1.10.x로 올리면 Django Rest Framework 도 올려줘야 합니다. 


저는 아마도 3.3.3 에서 3.5.x 로 올렸는데요. 몇 가지 에러가 있었던 것 같지만 가장 기억에 남는 부분은 Serializer에 fileds 값을 잘 지정해야 한다는 것입니다. 3.3.3 에서는 fields 값을 지정하지 않으면 자동으로 모든 값에 대해서 serializer가 작동했다면 3.5.x에서는 모두 사용할 것이라면 __all__으로 지정해야하고 그렇지 않다면 특정 field를 지정해줘야 합니다. 



그러니깐 소스코드를 보시죠.




3.3.3에서도 특정 field를 사용했던 코드는 문제 없이 작동하겠죠. 다만 모든 field를 사용하기 위해서 비워두고 지나갔던 코드들은 3.5.x에서 에러가 발생합니다. 



예전에 DRF의 성능 향상에 대해서 작성한 적이 있습니다. 방법은 해외 웹사이트를 링크걸었고요. 거기서는 Serializer도 줄여야 한다고 주장합니다. 즉 꼭 사용해야 하는 것만 Serializer를 통과시켜야지 불필요하고 당장 사용하지 않는 것들까지 사용하도록 설정하면 (fields = '__all__') 속도가 느려진다는 것이죠. 속도가 늦어지면 즉 처리 시간이 길어지면 결국에는 돈이랑 연관되기 때문에 조심해야 합니다. 결론적으로는 fields = '__all__' 보다는 사용하려는 field를 잘 지정해서 개발하면 좋겠다는 것입니다. 


포스팅 제목과는 조금 다른 결론이지만 아무튼 대충 기록 마무리 !

+ Recent posts