분류 전체보기
-
[SQL] SQL OverviewComputer Science/데이터베이스 2021. 7. 9. 04:55
SQL Overview SQL(Structured Query Language)은 데이터베이스에서 데이터를 저장, 조작 및 조회하기 위한 standard language입니다. Oracle, MySQL, Postgres 등의 다양한 데이터베이스에서 표준으로서 사용됩니다. 본 포스팅은 자세히보다는 가볍게 SQL 용법들을 정리하려고 합니다. Demo DB 예시로 사용하는 DB는 Northwind 데이터베이스입니다. 해당 데이터베이스에는 여러 table이 존재하는데, 그중 Customers 데이터베이스는 다음 표와 같은 모습을 가집니다. 1. SQL basic SELECT SELECT 구문은 데이터 조회를 위해 사용합니다. Syntax SELECT column1, column2, ... FROM tabl..
-
[Fast API] ValidationsBackend/Fast API 2021. 7. 9. 04:47
각각의 Parameters는 인자로 받을 데이터에 대해 여러가지 조건을 걸어 validations(유효성 검사)를 수행할 수 있습니다. 만일 incorrect한 데이터가 감지될 경우 validation에 의해 error가 응답됩니다. 1. Parameter의 종류를 선언하는 함수 앞에서 살펴봤듯이 parameter는 path parameter, query parameter, request body parameter 등 여러가지 형태의 종류가 존재합니다. 이외에도 cookie parameter, header parameter등 더 다양한 형태가 존재하는데, 이러한 parameter를 조금 더 명시적으로 선언할 수 있게 도와주는 함수가 각각 존재합니다. from typing import Optional ..
-
[Fast API] Parameters of Path, Query, Request bodyBackend/Fast API 2021. 7. 9. 04:43
1. Path Parameters Path Parameters의 정의와 형태 Path parameter는 path 내에 들어있는 variable의 value를 전달받은 parameter를 말합니다. @app.get("/items/{item_id}") def read_item(item_id): return {"item_id": item_id} 위의 코드에서, item_id는 path parameter에 해당합니다. HTTP 요청이 들어오면 해당 URL에서 {item_id}에 해당하는 value를 획득하고, 이 value는 read_item함수의 item_id에 인자로 전달됩니다. 위의 코드를 main.py에 추가해 저장한 후, http://127.0.0.1:8000/items/foo에 들어가면 respon..
-
[Fast API] InstallationBackend/Fast API 2021. 7. 9. 04:40
Fast API 튜토리얼 - Installation Fast API 공식 문서의 튜토리얼을 살펴보고 정리합니다. 본 글은 윈도우 환경을 기준으로 작성되었습니다. Fast API 설치하기 앞에서는 간단히 Fast API와 uvicorn만 설치하여 진행했지만, 이번엔 튜토리얼을 편하게 진행하기 위해 Fast API와 이에 따른 의존 관계가 있는 모듈들을 한꺼번에 설치하겠습니다. 가상환경을 사용한다면 활성화시켜주시고, [all] 옵션을 사용해 Fast API와 관련 모듈들을 한번에 설치합니다. > pip install fastapi[all] 이 때 uvicorn 서버도 함께 설치되기 때문에, 따로 uvicorn을 설치할 필요없이 프로젝트 디렉토리에 main.py 파일만 만들고 바로 서버를 구동할 수 있습니..
-
[Fast API] IntroBackend/Fast API 2021. 7. 9. 04:25
Fast API란? 파이썬으로 API를 만들기 위한 웹프레임워크입니다. 현재 파이썬 웹 프레임워크들 중 가장 빠른 속도를 보입니다. Node.js, Go와 대등할 정도의 높은 성능 Automatic한 API Document를 지원 (Swagger UI, ReDoc에서 제공) pydantic을 활용해 type hint를 지원 에디터에서 지원되는 Auto Completion 기능이 훨씬 강력해짐 Python 3.6 이상부터 지원 Fast API with Open API Specification Fast API에서 API를 정의할 때 사용하는 schema(어떠한 개념에 대한 추상적인 기술)는, Open API Specification을 따릅니다. Open API Specification은 Linux 재단에서 ..
-
[Python & Linux] 안전하게 Secret Key를 숨기는 방법General 2021. 7. 3. 01:59
Secret key를 숨기는 통상적 방법 Github 같은 public한 장소에 프로젝트를 배포할 때, secret key같은 private한 정보들은 숨겨서 배포해야 합니다. 이를 위한 통상적인 방법은 환경변수를 이용하는 것입니다. 하나의 파일에 private한 정보들을 몰아놓으면, 프로젝트를 실행하기 전마다 해당 파일을 사용해 환경변수를 등록해둘 수 있고 아무일 없었듯이 프로젝트를 실행할 수 있습니다. 대표적으로 secret key를 숨기기 위해서는 secret key를 담을 secret_bash 파일, 등록된 secret key 환경변수를 가져올 settings.py파일, .gitignore 파일 총 3가지가 필요합니다. (secret_bash와 settings.py의 이름은 임의로 변경 가능합니다..
-
[Lucian Log] 1일 1커밋 후일담Free Contents 2021. 6. 22. 04:18
자기개발에 강렬한 욕망을 가진 개발자들이라면 '어떻게 하면 좋은 학습 습관을 가질 수 있을까'를 항상 고민할 것 같습니다. 그리고 이 영역에서 기초 체력을 기르기 위해 자주 언급되는 대표적인 홈트레이닝(?)으로서 1일 1커밋이 떠오릅니다. 사실 정말 많은 선배, 또래 개발자들이 1일 1커밋을 지키며 성실한 모습을 보여주셔서, 1일 1커밋의 장점과 단점은 많이 알려져 있습니다. (특히, 이동욱 개발자님 정말 존경합니다!) 부자가 되려면 부자의 습관을 따라하라는 말이 있죠? 좋은 개발자들의 성실한 모습을 닮고 싶어서, 마음 속 작은 다짐으로 (신입 입사를 위한 생존 문제라고!!!) 시작한 1일 1커밋 후기를 남깁니다 :) 사실 쓰고 싶었던 포스팅이 많이 밀려서 1일 1커밋 후기도 조금 늦었습니다. 실제 1일..
-
[VS Code] pipenv 가상환경에서 디버깅이 되지 않을 때Trouble Shooting 2021. 6. 11. 15:04
최근 pipenv 가상환경을 사용해 Fast API의 이모저모를 탐험해보던 중 디버깅에 어려움을 겪었습니다. 문제는 위 코드를 디버깅해보려던 중 발생했는데, uvicorn 모듈 import에 실패하며 계속 에러에 봉착하는 상황이었습니다. Uvicorn은 Fast API가 사용하는 서버이고, 가상 환경에 이미 Fast API가 설치되어 있었으므로 import 에러가 날 상황이 아니었습니다. 따라서, 원인은 가상환경을 활성화한 터미널이 아닌 새로운 Python Debug Console 터미널에서 디버깅이 시작되는 부분으로 좁혀졌습니다. VS Code 에디터의 오른쪽 하단을 살펴보면, 디버깅이 시작되면서 기존에 쓰던 pipenv 터미널이 아닌 새로운 Python Debgug Console 터미널이 열려 그곳에..