import 문입니다.
여기서 2가지 문제를 확인할 수 있었습니다.
- 각각 한 줄로 import 모듈 가져오기
- import 시 *
로 가져오기
[ 각각 한 줄로 import 모듈 가져오기 ]
저는 import를 할 때, 가능한 한 각각을 한 줄로 작성합니다.
이러한 습관은 현재는 저 혼자 코드를 수정하므로 큰 문제가 없지만, 여러 사람이 코드를 수정해야 할 경우에는 다르게 됩니다.
한 줄로 작성하지 않을 경우, 코드 수정 과정에서 충돌(Conflict)이 발생할 확률이 높아집니다.
따라서, 가능한 한 각 import를 한 줄로 작성하면 이러한 문제를 미연에 방지할 수 있습니다.
해결
[ import 시 *
로 가져오기 ]
이 방식은 특정 모듈에서 많은 양의 객체나 함수를 가져올 때 사용되기도 합니다만, 어떤 이름들이 현재 네임스페이스에 도입되었는지 명확하지 않게 만들 수 있습니다.
이는 디버깅을 어렵게 하고, 이름 충돌의 위험을 증가시킬 수 있습니다.
대신, 필요한 객체나 함수만 명시적으로 지정하여 import하는 것이 좋습니다.
예를 들어, from module import specific_function
과 같이 사용할 수 있습니다.
해결
from .model import *
구문을 사용하면서 예상치 못한 문제가 발생했습니다.
단순히 Model
만을 import하려 했으나, 이 방식으로 인해 reverse
함수까지 함께 가져오고 있었던 것입니다.
이런 현상은 import *
를 사용할 때 자주 발생하는 문제로, 어떤 객체들이 import되는지 명확하지 않게 만들어 코드의 가독성과 안정성을 떨어뜨렸습니다.