회원가입

[리팩토링] 5. Board View import 코드 확인

Beany 2024-05-05

AS-IS Code

import 문입니다.

 

여기서 2가지 문제를 확인할 수 있었습니다.

- 각각 한 줄로 import 모듈 가져오기
- import 시 * 로 가져오기

 

[ 각각 한 줄로 import 모듈 가져오기 ]

저는 import를 할 때, 가능한 한 각각을 한 줄로 작성합니다.
이러한 습관은 현재는 저 혼자 코드를 수정하므로 큰 문제가 없지만, 여러 사람이 코드를 수정해야 할 경우에는 다르게 됩니다.
한 줄로 작성하지 않을 경우, 코드 수정 과정에서 충돌(Conflict)이 발생할 확률이 높아집니다.
따라서, 가능한 한 각 import를 한 줄로 작성하면 이러한 문제를 미연에 방지할 수 있습니다.

 

해결

 

 

[ import 시 * 로 가져오기 ]

이 방식은 특정 모듈에서 많은 양의 객체나 함수를 가져올 때 사용되기도 합니다만, 어떤 이름들이 현재 네임스페이스에 도입되었는지 명확하지 않게 만들 수 있습니다.
이는 디버깅을 어렵게 하고, 이름 충돌의 위험을 증가시킬 수 있습니다.
대신, 필요한 객체나 함수만 명시적으로 지정하여 import하는 것이 좋습니다.
예를 들어, from module import specific_function과 같이 사용할 수 있습니다.

 

해결

from .model import * 구문을 사용하면서 예상치 못한 문제가 발생했습니다.
단순히 Model만을 import하려 했으나, 이 방식으로 인해 reverse 함수까지 함께 가져오고 있었던 것입니다.
이런 현상은 import *를 사용할 때 자주 발생하는 문제로, 어떤 객체들이 import되는지 명확하지 않게 만들어 코드의 가독성과 안정성을 떨어뜨렸습니다.

0 0
블로그 일기
제 블로그의 고도화 과정을 설명합니다. 이는 코드 리팩토링과 추가된 기능들에 대해 기록하기 위한 게시판입니다. 어떤 기능이 추가되었는지, 무엇이 개선되었는지 등 고도화되는 과정을 자세히 다룰 예정입니다.
Yesterday: 456
Today: 135