ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Week00. 개발일지
    SW Jungle/TIL 2024. 3. 17. 17:31

    jinja2, https, session, token, jwt, .env, db 주소 숨겨서 깃허브에 올리기, 폴링, 서버부하테스트

     

    오자마자 3박 4일 프로젝트를 진행함

    정글러들의 위치를

     

     

    팀원들에게 적극적으로 도움을 요청하지 않은 것이 후회됨.

     


    중요한 정보를 숨겨서 깃허브에 올리기

    프로젝트에 사용하는 코드에 db 비밀번호가 담긴 몽고db 주소가 담겨있어 이를 그대로 깃에 올리면 안됨.
    중요한 정보들을 따로 불러와서 코딩하는 방법이 필요했음.

     

    .env

    포트, DB관련 정보, API_KEY등 개발자 혼자서 또는 팀만 알아야 하는 값이 있다. 이를 위해 dotenv 패키지 이며 환경변수 파일을 외부에 만들어 저장시켜 소스코드 내에 하드코딩하지 않고 사용할수 있다.

     

    python에서 .env 사용하기

    프로젝트 최상위 루트에 .env 파일 만들기

     

    📂PROJECT_FOLDER

        .env         👈👈👈👈👈👈 파일생성

        .gitignore

       📂 .venv

       📂static

       📂template

     

    .env 파일

    MONGO_DB_PATH = "mongodb+srv://아이디:비밀번호@cluster0.ywajy5m.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0"
    KEY="#rnjswl"
    
    # 등등 민감 정보

     

    ❗ .gitignore 에 .env 등록하기

     

    .gitignore 에 안쓰고 깃허브에 올라가버리면 도루묵이다.

    /shelf/
    /workspace.xml
    /.venv
    /.idea
    .env
    checkEnv.py
    JunglerRoute.iml

     

    Flask 에 적용

    import os
    
    from dotenv import load_dotenv
    
    load_dotenv(verbose=True)
    
    # DB 설정
    _PATH_ = os.getenv('MONGO_DB_PATH')
    
    # Flask 키 설정
    _KEY_ = os.getenv('KEY')
    app = Flask(__name__)
    app.secret_key = _KEY_

     

    환경변수 확인해보기

    import os
    from dotenv import load_dotenv
    
    load_dotenv(verbose=True)
    
    mongo_db_path = os.environ.get("MONGO_DB_PATH")
    if mongo_db_path:
        print("MongoDB 경로:", mongo_db_path)
    else:
        print("MONGO_DB_PATH 변수가 설정되어 있지 않습니다.")

     

    변수 바꾸면 서버, 툴 껏다키기...!


    사이트 부하 테스트 해보기

     

    locust 설치

    pip install locust

     

    스크립트 작성 하고 로컬 포트 링크로 들어가서 테스트 진행하기

    from locust import HttpUser, task, between
    
    class ServerTest(HttpUser):
    	@task
        def api_test(self):
        	self.client.get("/main") # get 요청

     

    터미널에

    locust

     

    쳐서 실행하고 

    http://localhost:8089/

    접속


    Jinja2 로 서버사이드 렌더링 사용해보기

     

    서버사이드 렌더링

    클라이언트사이드 렌더링


     

    BootStrap 을 대체할만한 CSS 라이블러리 

    • Bulma << 부트스트랩이랑 거의 똑같은데 별도로 신경쓰지않아도 모바일 템플릿에서도 잘 나오는 점이 좋았음
    • Tailwind

     

    HTTP Authorization header

     

    Session, cookie, JWT

     

    쿠키, 세션, 토큰(JWT) 방식에 대한 설명

    https://ksh-coding.tistory.com/113

     

    [인증/인가] 쿠키 VS 세션 VS 토큰 (JWT) 방식 중 무엇을 사용할까?

    대표적으로 사용자의 인증/인가를 처리할 때 사용하는 방식이 다음과 같이 3가지가 있습니다. 1. 쿠키 방식 2. 세션 방식 3. JWT 토큰 방식 위의 3가지 방식들의 장단점을 살펴보고, 무엇을 사용해

    ksh-coding.tistory.com


    폴링

     

    화면을 켜지 않아도 폴링이 되지않는지 생각해보기 (알트탭상태 등)

    폴링한채로 30분 이상 있어보기

     


    https://jihyun-wiki.tistory.com/15

    https://github.com/Arklimits/swjungle-archive/tree/main/development-log

     

    'SW Jungle > TIL' 카테고리의 다른 글

    PintOS's Memory Structor  (0) 2024.05.21
    pintos fork  (0) 2024.05.14
    malloc lab binary 케이스 메모리 이용률 개선하기  (1) 2024.04.18
    변수에 대한 이해  (0) 2024.04.12
    week01  (0) 2024.03.24
Designed by Tistory.