개발/파이썬 썸네일형 리스트형 [TIL] Namespace, Scope, Claim이란 (feat. oAuth) # What I Learned Namespace 서비스의 custom claim이 다른 서비스나 예약된 claim과 충돌하는 것을 방지하기 위해 사용 주료 도메인을 사용함 e.g. https://engster.co.kr Scope 어떤 클레임들에 접근을 요청하고 있는지를 명시할 때 사용 Claim 유저정보나 메타정보에 관해 정보를 가지고 있는 Key/Value 짝(Pairs) 특정한 entity가 특정한 property를 가지고 있음을 나타냄 클레임들은 scope에 맵핑됨 (아래의 클레임들은 profile scope에 맵핑) { "family_name": "Silverman", "given_name": "Micah", "locale": "en-US", "name": "Micah Silverman", "p.. vscode에서 파이썬 개발환경 세팅 vscode 코드 설치 Download Visual Studio Code - Mac, Linux, Windows 파이썬 또는 Anaconda(Miniconda) 설치 파이썬 다운로드 (가장 기본적인 파이썬) 아나콘다 다운로드 (데이터 사이언스, 머신러닝을 위한 각종 라이브러리들이 포함된 파이썬) 미니콘다 다운로드 (아나콘다의 미니 버전, pip과 같은 기본적인 라이브러리들이 설치되어 있다. 미니콘다 설치 이후 원한다면 anaconda에 포함된 모든 라이브러리를 쉽게 설치할 수 있다.) 가상환경 생성 및 활성화 (택 1) virtualenv # virtualenv 설치 pip install virtualenv # 가상환경 생성 virtualenv .venv # 가상환경 활성화 # Mac OS / Linux.. [오픈소스에서 배우다] 믹스인 클래스 활용하기 (Django Rest Framework) 믹스인이란 특정한 클래스에 상속을 통해 새로운 속성이나 새로운 기능을 추가(Mix in)하는 것을 의미한다. 이를 잘 활용한 오픈소스가 있는데 바로 Django Rest Framework이다. Django Rest Framework에서는 GenericAPIView에 생성, 수정 등의 다양한 믹스인 클래스를 추가해 쉽게 API View를 구현할 수 있게 해준다. Django Rest Framework 공식문서 에서 제공하는 예제를 보자. ListModelMixin과 CreateModelMixin을 상속받음으로써 get메소드와 post메소드에서 list와 create라는 메소드를 사용할 수 있다. 이를 통해 개발자들은 본인들이 원하는 기능을 보다 쉽고 간편하게 이용할 수 있다. from snippets.mo.. [오픈소스에서 배우다] Django의 cached_property 파이썬을 대표하는 웹프레임워크 중 하나인 Django에는 다음과 같은 코드가 있다. (코드 직접 확인하기) class cached_property(object): """ Decorator that converts a method with a single self argument into a property cached on the instance. Optional ``name`` argument allows you to make cached properties of other methods. (e.g. url = cached_property(get_absolute_url, name='url') ) """ def __init__(self, func, name=None): self.func =.. 파이썬에서 arguments로 *(별표)만 쓴 경우!? fastapi의 코드를 보던 중 함수의 arguments로 *만을 쓴 것을 발견했다. 난생 처음 본 표현법이라서 직접 테스트 해보며 뭔지 알아냈다. ...(생략) def get_param_sub_dependant( *, param: inspect.Parameter, path: str, security_scopes: List[str] = None ) -> Dependant: # param앞에 *를 쓴 것이 보이는가? depends: params.Depends = param.default if depends.dependency: dependency = depends.dependency else: dependency = param.annotation return get_sub_dependant( depends.. 파이썬 3.7부터 도입된 dataclasses에 대해 알아보자 Sanic에서 웹소켓을 구현하는 예제를 보던 중 클래스 위에 @dataclass라는 데코레이터가 붙어있었다. from dataclasses import dataclass, field ...(생략) @dataclass class Client: interface: websockets.server.WebSocketServerProtocol = field(repr=False) sid: str = field(default_factory=partial(generate_code, 36)) ...(생략) 찾아보니 파이썬 3.7부터 표준 라이브러리로 등재되었다고 한다. 파이썬 3.6에서 사용하기 위해선 pip install dataclasses를 통해 사용할 수 있다. (파이썬 3.6 지원불가) 이는 데이터 클래스를 보.. Asnycio Lock에 대해 알아보자. asyncio는 한 개의 쓰레드에서 돌아가지만, 동시성이 존재한다. 이 때문에, 잘 못 쓰면 작업들이 예상치 못한 순서로 일어날 수도 있다. threading이나 multiprocessing에서와 같은 Lock을 사용하면 예기치 못한 상황을 예방할 수 있다. (save concurrency) Example Without Lock import asyncio import random owner = None async def coro1(): global owner owner = 'IAMMAN' print(f"I am owner, {owner}") await asyncio.sleep(random.random()) print(f"{owner} is man.") async def coro2(): gl.. [TIL] 파이썬 3.7 asyncio High API asyncio에 대해서 잘 모르시는 분들은 파이썬과 비동기 프로그래밍 시리즈를 읽어주세요. asyncio.ensure_future를 asyncio.create_task로 쓸 수 있다. 하는 역할은 거의 같지만 더 직관적이다. loop.run_until_complete을 asyncio.run으로 간단하게 쓸 수 있다. 예제 import asyncio async def main(): ... await something ... if __name__ == "__main__": ### 기존에 이렇게 쓰던 것을 ### # loop = asyncio.get_event_loop() # try: # loop.run_until_complete(main()) # finally: # loop.close() ### 이렇게 바꿀.. 이전 1 2 3 4 5 6 다음