전체 글
[ React의 모든 것 ] 01. DOM과 Virtual DOM, 그리고 CDN
[ React의 모든 것 ] 01. DOM과 Virtual DOM, 그리고 CDN
2021.09.29도입 본격적인 학습에 들어가기 이전 Codesandbox를 활용하여 간단하게 리액트 CDN(Contents Delivery Network)을 사용해 h1 태그(Tag)를 만들어봤다. 해당 강의에서 DOM(Document Object Model)과 CDN(Contents Delivery Network)에 대한 언급이 있었는데, 강의에서는 자세히 다루지는 않았으나 한 번 정리를 하고 넘어가면 좋을 것 같아서 이렇게 글을 작성했다. 사용된 코드는 맨 아래 깃헙 레포지토리에서 확인할 수 있다. DOM DOM(Document Object Model)은 단어 그대로 문서 객체 모델을 의미한다. 여기서 문서(Document)는 웹 페이지를 의미한다고 생각하면 편하다. 그러면 이를 다시 한 번 풀어서 설명하면, 웹 페..
[ FastAPI ] 요청 폼과 파일
[ FastAPI ] 요청 폼과 파일
2021.09.27File 과 Form 을 사용하여 파일 및 폼 필드를 동시에 정의할 수 있습니다. 정보 업로드된 파일 그리고/또는 폼 데이터를 전달 받기 위해서는, 우선 python-multipart 를 설치하기 바랍니다. 예를 들어 pip install python-multipart 와 같은 방식으로 가능합니다. File 및 Form 임포트 File 및 Form 매개변수 정의 Body 또는 Query 와 동일한 방법으로 파일 및 폼 매개변수를 생성합니다. 파일과 폼 필드는 폼 데이터로 업로드되고 파일 및 폼 필드를 전달 받을 수 있습니다. 그리고 몇몇의 파일은 bytes 로 선언하고 다른 몇몇은 UploadFile 로 선언할 수 있습니다. 주의 경로 동작 내부에 다중 File 및 Form 매개변수를 선언할 수 있지만,..
[ FastAPI ] 요청 파일
[ FastAPI ] 요청 파일
2021.09.27https://github.com/swagger-api/swagger-ui/issues/4276 File 을 사용하여 클라이언트에 의해 업로드될 파일을 정의할 수 있습니다. 정보 업로드된 파일을 전달 받을 때, 우선 python-multipart 를 설치해야 합니다. 예를 들어 pip install python-mutipart 와 같은 방식으로 가능합니다. 왜냐하면 "폼 데이터"로 업로드된 파일이 전송되어지기 때문입니다. 임포트 File fastapi 로부터 File 및 UploadFile 을 임포트합니다: File 매개변수 정의 Body 또는 Form 과 동일한 방법으로 파일 매개변수를 만듭니다: 정보 File 은 Form 을 직접 상속 받는 클래스입니다. 그러나 Query , Path , File 그..
[ FastAPI ] 폼 데이터
[ FastAPI ] 폼 데이터
2021.09.25JSON 대신 폼 필드를 전달 받아야 한다면, Form 을 사용할 수 있습니다. 정보 폼을 사용하기 위해서는, 우선 python-multipart 를 설치해야 합니다. 예를 들어 pip install python-mutipart 와 같은 방식으로 가능합니다. Form 임포트 fastapi 로부터 Form 을 임포트합니다: Form 매개변수 정의 Body 또는 Query 와 같은 방식으로 폼 매개변수를 생성합니다: 예를 들어, OAuth2 명세를 사용할 수 있는 방법 중 하나로 ("비밀번호 흐름"이라 불리는) 폼 필드에 username 및 password 을 전송하는 게 필수로 요구되는 방법이 있습니다. 해당 명세는 정확히 명명된 username 및 password 를 요구하고, JSON이 아닌, 폼 필드..
[ FastAPI ] 응답 상태 코드
[ FastAPI ] 응답 상태 코드
2021.09.25응답 모델을 명시한 것처럼, 모든 경로 동작에 매개변수 status_code 를 사용하여 응답에 사용되는 HTTP 상태 코드를 선언할 수 있습니다: @app.get() @app.post() @app.put() @app.delete() 기타 등등. 참고 status_code 는 모든 매개변수 및 바디와 같이, 경로 동작 함수가 아닌 "데코레이터" 메서드 ( get , post , 기타 등등) 의 매개변수인 것을 잊지마시기 바랍니다. status_code 는 HTTP 상태 코드가 담겨 있는 숫자를 전달 받는 매개변수입니다. 정보 status_code 는 대안책으로 파이썬의 http.HTTPStatus 와 같은, IntEnum 을 전달 받을 수 있습니다. 이것은: 응답 속에 상태 코드를 포함하여 반환합니다. ..
[ Starlette ] 소개
[ Starlette ] 소개
2021.09.23소개 Starlette은 고성능 비동기 서비스를 구축하는 데 이상적인, 가벼운 ASGI 프레임워크/툴킷입니다. 제품-준비 상태이며, 다음과 같은 기능들을 제공합니다: 매우 인상적인 성능. 웹소켓 지원. 인-프로세스 백그라운드 작업. 시스템 시작 및 시스템 종료 이벤트. requests 위에 빌드된 테스트 클라이언트. CORS, GZip, 정적 파일, 스트리밍 응답. 세션 및 쿠키 지원. 100% 테스트 커버리지. 100% 코드 기반 어노테이트된 자료형. 거의 없는 강한 종속성. 요구사항 파이썬 3.6버전 이상 설치 또한 uvicorn, daphne, 또는 hypercorn 같은, ASGI 서버를 설치하고 싶을 수 있습니다. 예시 example.py: 그러면 아래와 같이 애플리케이션을 실행시킬 수 있습니다..
[ Pydantic ] 설치
[ Pydantic ] 설치
2021.09.23설치는 다음과 같이 간단합니다: pydantic은 파이썬 3.6, 3.7, 3.8, 또는 3.9, typing-extensions , 그리고 파이썬 3.6을 위한 백포트 패키지인 dataclass 를 제외하고는 필수적으로 요구되는 의존성이 없습니다. 파이썬 3.6 이상 버전을 가지고 있고 pip 가 설치되어 있다면, 바로 설치해도 좋습니다. Pydantic은 또한 conda-forge 채널 아래의 conda에서도 사용 가능합니다. pydantic은 선택적으로 30-50% 정도의 성능이 향상되는 cypthon을 통해 컴파일될 수 있습니다. 바이너리는 Linux, MacOS 그리고 64비트 Windows용 PyPl에서 사용할 수 있습니다. 만약 수동으로 설치한다면, pydantic을 설치하기 전에 cypth..
[ Pydantic ] 개요
[ Pydantic ] 개요
2021.09.23문서 속 버전: v1.8.2 파이썬 자료형 어노테이션을 사용한 데이터 유효성 검사와 설정 관리. pydantic은 실행시 자료형 힌트를 강제하고, 데이터가 유효하지 않을 때 사용자 친화적인 오류를 제공합니다. 데이터 순수하고, 표준적인 파이썬으로 있어야 하는 방법; pydantic 을 통해 유효성 검사를 진행하여 정의합니다. 예시 (이 스크립트는 완전하므로, "있는 그대로" 실행되어야 합니다.) 다음과 같은 일이 발생합니다: id 는 정수 자료형입니다; 어노테이션-전용 선언은 pydantic에게 이 필드가 필수적으로 요구된다는 걸 알려줍니다. 문자열, 바이트 또는 실수는 가능한 경우 정수로 강제 변환됩니다; 그렇지 않은 경우 예외가 발생합니다. name 은 기본 값을 가지고 있고, 필수적으로 요구되지 않..
[ FastAPI ] 추가 모델
[ FastAPI ] 추가 모델
2021.09.20이전 예시에 이어서 생각해볼 때, 하나보다 더 많이 연결된 모델을 사용하는 게 흔한 상황일 것입니다. 이것은 사용자 모델에 대한 특별한 경우입니다. 왜냐하면: 입력 모델은 비밀번호를 갖게 해야하기 때문입니다. 출력 모델은 비밀번호를 가져서는 안 되기 때문입니다. 데이터베이스 모델은 아마도 해시된 비밀번호를 갖게 해야하기 때문입니다. 위험 절대 사용자의 숨김 없는 비밀번호를 저장하시면 안 됩니다. 항상 확인할 수 있는 "보안 해시"를 저장하기 바랍니다. 만약 이를 모른다면, "비밀번호 해시"가 무엇인지에 대해 보안 챕터에서 배울 수 있습니다. 다중 모델 여기 비밀번호 필드와 사용될 수 있는 공간에 따라 어떻게 모델이 생겼는지 알 수 있는 일반적인 개념이 있습니다: **user_in.dict() Pydant..
[ FastAPI ] 응답 모델
[ FastAPI ] 응답 모델
2021.09.20모든 경로 동작 내부에 매개변수 response_model 을 사용하여 응답을 위한 모델을 선언할 수 있습니다: @app.get() @app.post() @app.put() @app.delete() 기타 등등. 참고 response_model 은 모든 매개변수 및 바디와 같이, 경로 동작 함수가 아닌 "데코레이터" 메서드 ( get , post , 기타 등등)의 매개변수인 것을 잊지마시기 바랍니다. Pydantic 모델 어트리뷰트를 위해 선언했던 것과 동일한 자료형을 전달 받기 때문에, Pydnatic 모델이 되지만, List[Item] 과 같은, 예를 들어 Pydantic 모델의 list 가 될 수도 있습니다. FastAPI는 이 response_model 을 다음을 위해 사용합니다: 각 자료형 선언에..