터칭 데이터

4주차 - 4 [프로젝트] 간단하지만 치명적인 것들 본문

데브코스 TIL

4주차 - 4 [프로젝트] 간단하지만 치명적인 것들

터칭 데이터 2023. 11. 9. 20:20

 

오늘은 프로젝트를 진행하며 봉착한 난관과 해결책에 대해 짧게 남기려한다.

 

Open API

open api가 늘 신속하게 그리고 정확하게 데이터를 전달해주지는 않는다. API를 제공하는 측에서 데이터를 어떻게 수집하는지도 최대한 확인해둬야 한다. 예를 들어 Open API를 제공하는 A라는 곳이 존재한다고 가정하자. A는 평소에 데이터들을 B와 C로 부터 공급받는데 만일 사고가 생겨 B 혹은 C로 부터 데이터를 제대로 제공받지 못하면 JSON의 키값 혹은 XML의 태그 값들을 빈 상태로 제공할 수도 있다. 만일 이에 대한 예외처리가 제대로 되어있지 않으면 A가 제공하는 Open API를 활용하는 서비스에 문제가 생긴다.

 

시험삼아 한 처음 몇번의 시도는 모두 성공이었고 처음 며칠동안 정상이었던 서비스에 갑자기 문제가 생겨 당황스러웠다. 오늘 위에서 기술한 문제가 발생해 하루 종일 팀원분들과 예외처리에 매달렸다. Open API가 늘 안정적으로 데이터를 제공하지는 않을 수 있다는 점을 기억해두자.

 

 

 

 

마이그레이션

마이그레이션은 ORM이 그렇듯 별도의 쿼리문을 작성할 필요가 없이 테이블을 작업을 대행 해준다. 막강한 기능이지만 문제는 모델의 필드에 대해 사용자가 임의적으로 간섭하고 후에 마이그레이션을 진행하면 문제가 발생할 수 있다. 상기한 Open API 문제를 팀원과 같이 해결하는 와중에 로컬의 가상환경 장고 모델에서 문제가 발생했다. 테이블을 수정해야 하는데 마이그레이션 명령이 먹히지 않아 Open API 에러 처리에 시간이 더 많이 소요됐다.

 

장고 개발자들이 한번씩은 겪는 문제이므로 이를 공유한다.

https://stackoverflow.com/questions/49341801/warning-because-of-old-migration-how-should-that-be-solved

 

Warning because of old migration - how should that be solved?

If I run python -Wall manage.py test this warning (and similar) occurs: /local/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1453: RuntimeWarning: DateTimeField SignUpUser.signup...

stackoverflow.com