Save my data

Flask에서 Jsonify를 굳이 쓰는 이유? 본문

개인공부/Python

Flask에서 Jsonify를 굳이 쓰는 이유?

양을 좋아하는 문씨 2023. 9. 20. 00:06

요새 하고있는 크롤링 프로젝트를 하다가 고민했던 부분이다.

 

데이터를 dict형태로 바로 반환하면 되는데, jsonify로 굳이 한줄 더 써서 직렬화 하는 절차에 대해,

왜 그럴까 잠깐 고민했다.

 

지금 하고 있는 프로젝트에서는 특정 메서드가 작업을 수행한 후 결과값을 dictionary형태로 반환하고 있다. 그리고 flask view 함수에서는 dict형태의 반환값은 자동으로 직렬화 해주기 때문에, 사실 이것을 그대로 전달해버려도 response.json() 해서 쓸 수가 있다.

디테일한 구성이 필요하다면 data에 status code나 message 등을 덧붙이면 되는 일이고, 어쨌든 dict 형태로 반환이 가능하다. 그리고 직렬화 하기 전에도 결국 dict 형태로 바꿔줘야 하는건 마찬가지였다.

 

그럼 그냥 그걸 반환하면 되지 않나? 굳이 jsonify를 할 필요가 있을까 생각했다.

 

잠깐 생각한 다음 조금만 구글링 해본 결과, 역시 직렬화 과정을 거치는것이 맞다는 것을 알았다.

 

[Flask] Flask

Flask 문서 번역

velog.io

위의 공식문서 번역본(About Responses)을 참고하고 내린 결론은 아래와 같다.

 

  1. 올바른 유형의 반환이면 별다른 작업 없이 직접 반환된다.
  2. dict인 경우 jsonify가 호출되어 응답 객체를 만든 다음 반환된다.
  3. 어차피 직렬화 과정을 거친다는 얘기이다.
  4. 협업시 명시적으로 직렬화를 한 다음 반환하는 것이, 표준화라는 관점에서 볼 때 좀 더 정답에 가깝지 않나 싶다.
Comments