기술블로그-Flask편

if name == 'main' 구문 정리

Chansman 2025. 4. 17. 16:10

if name == 'main' 구문 정리

if name == 'main' 구문은 해당 파일이 직접 실행될 때만 특정 코드를 실행하도록 합니다.

이 구문을 사용하면 파일을 import할 때는 그 코드가 실행되지 않도록 할 수 있습니다.

name 변수

  • **__name__**은 파이썬 내장 변수로, 해당 파일이 직접 실행될 때'main' 값을 갖고, import 될 때는 파일의 이름을 가집니다.

__name__이 'main'일 때:

Python 파일이 직접 실행되었을 때 __name__ 변수의 값은 **'main'**입니다. 그때만 if __name__ == '__main__': 아래의 코드가 실행됩니다.

파일을 직접 실행할 때만 실행되는 코드

**if __name__ == '__main__':**를 사용하면 해당 파일을 직접 실행할 때만 코드를 실행하고, 다른 파일에서 import했을 때는 실행되지 않도록 방지할 수 있습니다.

예시:

app.py (Flask 예시)

# app.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, World!"

# 이 코드가 실행되면 Flask 서버가 시작됩니다.
if __name__ == "__main__":  # 이 구문을 사용하면 app.run()은 app.py가 직접 실행될 때만 실행됩니다.
    app.run(debug=True)
  • app.py 파일을 직접 실행(python app.py)하면, **app.run()**이 실행되고 Flask 서버가 실행됩니다.
  • 그러나 다른 파일에서 import app을 하면 Flask 서버는 실행되지 않습니다.

app1.py (다른 파일에서 import)

# app1.py
import app  # app.py를 import

print("This is app1.py, and Flask server should not run.")
  • app1.py에서 import app을 하면 app.run()은 실행되지 않고, This is app1.py, and Flask server should not run.만 출력됩니다.

결론

if name == 'main': 구문은 해당 파일이 직접 실행될 때만 특정 코드 (예: app.run())를 실행하게 하고, 다른 파일에서 import할 경우에는 그 코드가 실행되지 않도록 합니다.

이점

  • 이 구문을 사용하면 코드의 재사용성모듈화가 가능해집니다. 직접 실행할 때만 실행되는 코드를 작성할 수 있습니다.

요약

if __name__ == '__main__': 구문을 사용하면 해당 파일을 직접 실행할 때만 코드가 실행되고, 다른 파일에서 import될 때는 그 코드가 실행되지 않습니다.

이 구문을 활용하면, 실행 환경에 따라 다른 코드 흐름을 설정할 수 있습니다. 😊