본문 바로가기

Error_Log

[파이참] django를 활용한 App setting시 자잘한 체크리스트

 

1. app root directory 내부에 가상환경(venv)이 생성되어있는지 확인



2. 현재 가상환경 연결이 잘 되어있는지 확인 (source venv/bin/activate)


3. Preferences setting 확인

  • Languages & Frameworks > Django
    • Django project root 에 root directory설정이 잘되어있는지 확인
    • settings에 settings.py 경로가 잘 셋팅 되어 있는지 확인

  • Project: [서비스폴더(root folder명)]
    • python interpreter : 파이썬 인터프리터 설정 제대로 되어있는지 확인(가상환경 내 python 경로)


4. Configuration

  • Environment > Environment variables
    • DJANGO_SETTINGS_MODULE=app.settings 확인
    • Python Interpreter : 파이썬 interpreter경로 확인
    • 참고(번외)
      • PYTHONUNBEFFERED=1 <-- 이거 뭐?
        • 위 변수는 출력 버퍼링을 셋팅하는 변수이다.
        • 출력 버퍼링이란, 프로그램의 출력 데이터를 일시적으로 저장하는 메모리 영역인 버퍼에 저장한 후, 일정량이 쌓이면 한 번에 출력하는 기법을 말하는데, 출력 버퍼링의 목적은 주로 성능 향상과 입출력(I/O) 효율을 높이기 위해 설정한다.
        • 출력버퍼링 설정 이유
          • 성능 향상: 출력을 버퍼링하면 여러 번의 작은 출력 대신 한 번에 큰 덩어리로 출력할 수 있기 때문에, 시스템 자원을 덜 사용하고 출력 작업이 더 빨라진다고 한다.
          • 입출력 효율: 출력 장치(예: 디스크, 콘솔, 네트워크)와의 통신 비용을 줄일 수 있다. 출력 작업을 매번 수행하지 않고, 데이터가 충분히 쌓이면 한 번에 전송하게 한다.
          • 정렬 및 조합: 출력 데이터를 버퍼에 저장하면, 출력을 정렬하거나 다른 데이터와 조합할 수 있는 기회가 생긴다. 이를 통해 출력 결과를 더 읽기 쉽게 만들거나, 필요한 경우 데이터를 변경할 수 있다.
        • 출력버퍼링 설정 단점
          • 출력 버퍼링을 사용하면 당연히, 디버깅이 어려워질 수 있다. 버퍼링된 출력은 실시간으로 표시되지 않으므로, 오류가 발생했을 때 즉시 확인할 수 없고 이 때문에, 디버깅 중이거나 실시간 로깅이 필요한 경우 출력 버퍼링을 비활성화해야 한다.(1로 설정) 출력 버퍼링을 비활성화하면 파이썬은 버퍼를 사용하지 않고 출력을 즉시 표시한다. 이렇게 하면 디버깅 및 로깅을 더 쉽게 수행할 수 있지만, 애플리케이션의 성능에 약간의 영향을 미칠 수 있다.

5. 이상태에서 runserver 진행 시, 자꾸 not module error가 뜬다?

폴더의 목적에 맞게 지정가능

  • 혹시, project root 폴더 및 하위 소스 폴더 아이콘이 비활성화(회색)상태인가?
    • 이 경우, 루트폴더를 소스 폴더로 인식하지 못해, settings.py 또한 읽어들어가지 못하기때문에 not found error가 발생하는것으로 보인다. 
    • 우클릭, Mark Derectory as > Sources Root 선택해서 소스 루트로 설정해준다
    • 파랑색아이콘으로 변경되었다. 이제 이 폴더를 소스폴더로 인식하다는 뜻이다.
    • 다시 runserver 진행 -> 정상