본문 바로가기
개발자 일기/일일회고 (TIL)

[Upstage AI Lab]부트캠프 8일차

by MS_developer 2024. 11. 25.

오늘의 생각

 

 

역시 부트캠프다.

 

할 일이 끝나질 않는다. 주말에 좀만 더 공부할껄, 하는 아쉬움이 들었다.

 

아직은 프로젝트를 진행하는 부분이 아니다보니 다 할 수 있을 것 같은데, 실제로 적용해보는 노력이 더 많이 필요할 것 같다.


오늘의 학습내용

  • 크롤링과 파싱
  • HTTP와 웹 작동 방식
  • HTML과 태그 - ID와 클래스
  • BS4를 통해 HTML에서 데이터 크롤링하기
  • 여러 건이 묶여있는 데이터 추출하는 법
  • 네이버 API로 알아보는 API 사용법과 문서 읽는 법

추가적으로 알게된 내용

 

if __name__ == "__main__"를 쓰는 이유

 

파이썬을 파일은 파일을 스크립트로 실행할 때 (python script.py)다른 파일에서 해당 파일을 모듈로 가져다 사용할 때 두 가지 방법으로 실행될 수 있다.

 

이때 모든 파이썬 파일에는 특별한 내장 변수 __name__ 이 정의된다.

 

파일을 직접 실행할 때 해당 __name__은 "__main__"으로 설정되고, 모듈로 임포트할 경우 __name__은 파일 이름(또는 모듈 이름)으로 설정된다.

 

이 내용을 기반으로 if __name__ == "__main__"의 역할도 나뉘어진다.

 

# example.py
def greet():
    print("Hello, World!")

if __name__ == "__main__":
    greet()

 

위 코드를 예시로 동작 방식을 알아보면,

 

1. 직접 실행

python example.py

 

 

이때 __name__ == "__main__"이 참이므로 greet()가 호출되고, Hello, World! 가 출력된다.

 

2. 모듈로 임포트:

 

# another_script.py
import example

 

이 경우 __name__ == "__main__"은 거짓이므로 greet()는 실행되지 않고, 모듈에 정의된 함수와 클래스만 불러온다.

 

이렇게 분리하여 사용하면 파일을 모듈로 재사용할 수 있으면서도, 독립적인 스크립트처럼 실행할 수도 있다. 또한, 테스트나 디버깅에 유용하고 모듈이 불필요하게 실행되는 것을 방지할 수 있다.

 

 

 

댓글