ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 파이썬 개발모드 dev
    Python/Python 2024. 6. 25. 22:27
    반응형

    파이썬 3.7부터 전용 개발모드(development mode)에서 파이썬 인터프리터를 호출해 추가적인 런타임을 체크할 수 있다.

    이 코드를 실행했을 때 발생할 수 있는 잠재적인 이슈를 분석하는 데 유용하다. 올바르게 동작하는 코드에서 이를 적용하는 비용은 매우 높기 때문에 기본적으로 비활성화 되어 있다.

    두 가지 방법으로 활성화 가능.

    python -x dev application.py

    PYTHONDEVMODE 환경 변수 이용

    PYTHONDEVMODE = 1 application

    기본 경고 필터 종류

    • DeprecationWarning(종료 경고): 지원이 종료된 표준 라이브러리 요소
    • ImportWarning(임포트 경고): 모듈 임포트 시 실수와 관련해서 발생
    • PendingDeprecationWarning(종료 예정 경고): 지원이 종료도어 향후 릴르스에서 제거 될 표준 라이브러리 요소
    • ResourceWarning(자원 경고): 열린 파일 닫지 않기와 같이 적합하지 않은 처리 시 발생

    메모리 할당자 디버그 옵션

    • 버퍼 언더플로
    • 버퍼 오버플로
    • 메모리 할당자 API 위반
    • GIL의 안전하지 않은 사용

    추가 옵션

    폴트 핸들러(falut handler) 활성화: 애플리케이션이 SIGSEGV, SIGFPE, SIGBRT, SIGBUS, SIGILL이라는 시스템 호출이 을 받았을 때 애플리케이션 스택트레이스 출력.

    개발 모드에서 발생한 경고(Warning)는 무언가 의도된 방식으로 작동하지 않음을 나타낸다.
    코드가 정상적인 동작을 하는 동안에 에러로 간주하지 않아도 좋지만 장기적으로 부누명한 결함이 될 문제들을 찾아 낼 수 있따.

     

    열려 있는 파일을 적절히 정리하지 않으면 어느 시점에 애플리케이션이 실행되고 있는 환경 자원고갈을 일으킬 수 있다.
    파일 디스크립터 RAM 디스크 저장 공간은 모두 자원이다. 모든 운영체제에는 동시에 열 수 있는 파일 수의 한도가 존재한다. 애플리케이션이 열었떤 파일을 닫지 않고 새 파일을 계속 열면 어느 시점에서는 새로운 파일을 열지 못하게 된다.

     

    개발 모드를 사용하면 미리 발견할  수 있다. 따라서 애플리케이션 테스팅을 하는 동안에는 개발 모드를 사용하는 것을 권장한다. 다만 개발 환경 모드의 확인으로 발생되는 추가적인 오버헤드 떄문에 운영환경에서는 그 사용을 권장하지 않는다.

     

     

    반응형

    댓글

Designed by Tistory.