Language/Python(3)
-
예외 처리_try, except, else, finally, raise
[점프 투 FastAPI] 2_04_2에서 db 세션 객체를 생성하고 Connection Pool에 반환하는 동작을 자동화하는 제너레이터를 작성한다.@contextlib.contextmanagerdef get_db(): db=SessionLocal() try: yield db finally: db.close()여기서 try, finally는 뭘까? Java에서 사용해 봤던 기억은 있는데 확실히 알아보자. try가능하면 실행하고 오류가 발생하면 다음으로 넘긴다.if문과 비슷한 것 같다. 맞으면 실행하고 아니면 elif, else문으로 넘기는 것과 비슷해 보인다. excepttry와 except만 사용하면 try에서 어떤 오류가 발생한다면 except로 넘어간다.a ..
2024.03.26 -
어노테이션(Annotation)과 데코레이터(Decorator)
[점프 투 fastAPI] 1-07의 한 부분이다. from fastapi import FastAPI app = FastAPI() @app.get("/hello") def hello(): return {"message": "hi jyu!!!"} 함수명 위에 @app.get("/hello") 어노테이션은 /hello 라는 URL요청이 발생하면 해당 함수를 실행하여 결과를 리턴하라는 의미이다. 따라서 /hello 라는 URL이 요청되면 FastAPI는 {"message": "안녕하세요 파이보"} 라는 딕셔너리를 리턴할 것이다. 어떤 동작인지는 이해했는데 어노테이션이 뭐지? 언어마다 크게 어노테이션, 데코레이터로 나뉘고 동작 방식이 다른 것 같다. 어노테이션(Annotation) 주석이라는 뜻으로, #이나 /..
2024.03.05 -
인터프리터(Interpreter)와 컴파일러(Compiler)
[점프 투 FastAPI] 1-05에서 인터프리터 위치를 설정하는데, 인터프리터는 뭐고 위치 설정은 뭘 하는 거지? 일단 Python의 특징 중 하나가 인터프리터 언어라는 점이다. 인터프리터(Interpreter) 언어 코드를 한 줄씩 기계어로 변환하며 실행하는 프로그래밍 언어. 모든 언어가 인터프리터 언어가 아닌 건가? 아니다. 컴파일 언어가 있다. 컴파일(Compile) 언어 인터프리터 언어와는 다르게 코드를 기계어로 변환 후, 이를 실행 파일로 만들고 실행하는 언어. 컴파일 : 코드 전체를 다른 언어로 변환(예: python => C)하는 과정. 번역과 같음. 인터프리터와 컴파일러 차이 인터프리터는 실행할 때마다 코드를 한 줄씩 변환하기 때문에 한 번에 파일로 실행하는 컴파일러보다 느리다. 하지만 ..
2024.02.29