파이썬 코드 짜다 보면 if __name__ == "__main__": 이 부분, 꼭 한 번쯤은 봤을 거예요. 처음 봤을 때 저는 솔직히 뭐하는 건지 몰라서 엄청 헤맸거든요. 그런데 알고 나니 정말 유용한 기능이더라고요! 오늘은 이 부분이 왜 중요하고, 어떻게 사용하는지 제 경험과 함께 풀어서 설명해 드릴게요.
쉽게 말해서, __name__ 이라는 변수는 파이썬이 자동으로 만들어주는 특별한 이름표 같은 거예요. 내가 직접 이 파일을 실행하면 "__main__" 라는 이름을 붙여주고, 다른 파일에서 이 파일을 불러다 쓸 때는 파일 이름을 붙여줘요. 마치 친구를 부를 때, "야, 너!" 하고 부르는 것과 이름을 불러서 부르는 것의 차이라고 생각하면 쉬울 거예요.
그래서 if __name__ == "__main__": 이 부분은 "내가 직접 이 파일을 실행했을 때만 실행해!" 라는 뜻이에요. 다른 파일에서 이 파일을 불러와서 쓴다면, 이 안에 있는 코드는 무시되고, 그냥 다른 함수들만 사용하게 되는 거죠.
예를 들어볼게요. 제가 my_module.py 라는 파일을 만들었어요. 여기에는 두 개의 함수 my_function() 과 another_function() 이 있고, if __name__ == "__main__": 블록 안에는 이 함수들을 실행하는 코드와 "이 파일을 직접 실행했을 때만 나오는 메시지"를 출력하는 코드를 넣었어요.
# my_module.py
def my_function():
print("my_module의 함수가 실행됐어요!")
def another_function():
print("my_module의 또 다른 함수가 실행됐어요!")
if __name__ == "__main__":
print("my_module.py 파일을 직접 실행했네요!")
my_function()
another_function()
이제 main.py 라는 다른 파일에 my_module 을 불러와서 my_function() 만 실행해 볼게요.
# main.py
import my_module
my_module.my_function() # my_module 안의 함수만 실행
my_module.py 를 직접 실행하면 "mymodule.py 파일을 직접 실행했네요!" 라는 메시지와 두 함수의 출력이 나오지만, main.py 에서는 "mymodule의 함수가 실행됐어요!" 만 나오는 걸 볼 수 있을 거예요. if __name__ == "__main__": 블록 안에 있는 코드는 실행되지 않죠! 신기하지 않나요?
이게 왜 중요하냐면요, 프로그램이 복잡해지면 여러 파일을 나눠서 관리하게 되잖아요. 그럴 때 각 파일이 서로 엉키지 않고 제대로 동작하도록 해주는 역할을 하는 거예요. 마치 잘 정돈된 서랍장처럼, 각각의 역할을 깔끔하게 나눠서 관리할 수 있게 해주는 거죠. 특히, 테스트 코드나, 프로그램의 시작 지점을 정의할 때 정말 유용해요. 저는 이 부분을 활용해서 코드의 가독성을 높이고, 버그를 잡는 시간을 줄일 수 있었어요.
한마디로, if __name__ == "__main__": 는 파이썬 코드를 깔끔하고 효율적으로 관리하는 데 핵심적인 역할을 하는 친구라고 생각하면 될 것 같아요. 처음에는 어렵게 느껴질 수 있지만, 익숙해지면 정말 편리하게 사용할 수 있답니다. 꼭 활용해 보세요!
댓글
댓글 쓰기