현재 django-rest-framework를 이용해서 API를 만들고 있습니다. 각

 
Yuk Seungchan

현재 django-rest-framework를 이용해서 API를 만들고 있습니다.

각 앱마다 Serializers를 만들었는데 몇 가지 Serializer에서 circular import가 일어납니다.

A라는 앱안에 ASerializer가 있다고 하면 여기서 B앱 안에이 있는 BSerializer를 포함하고 있습니다. 근데 B안에 다른 Serializer에서 ASerializer를 포함해야 하는데 여기서 import error가 발생합니다.

circular dependency는 좋지 않은 구조라고 들었는데 구조자체가 문제 인가요?

  • Jin Suk Park

    좋지 않은 구조가 아니라 인터프리터가 무한루프를 돌지 않을까요

    박영록

    물론 circular dependency는 좋지 않습니다. 하지만, 파이썬에서 compile time과 runtime의 구분을 잘 이용하면 circular dependency를 해소할 수 있죠. B에서 ASerializer를 쓰는 함수 안에서 import를 하면 정상적으로 동작하게 할 수 있습니다.

Advertisements