반응형

python 데코레이터 2

Python decorator(파이썬 데코레이터) functools.wraps 사용하기 / 디버깅 가능한 데코레이터 작성

데코레이터는 감싼 함수가 실행 되기 전과 후에 다른 코드를 실행 할 수 있게하고, 재사용 가능한 빌딩 블록을 정의하며, 그 빌딩 블록으로 다른 함수의 동작을 변경하거나 확장할 수 있는 python의 유용한 기능입니다. 하지만, 단점이 있다면 디버깅이 어렵고 기존(감싸지는) 함수의 메타데이터를 숨겨버리는 단점이 있습니다. 메타 데이터로써 원래 함수명, docstring, 매개변수 리스트는 클로저(closure)에 의해 숨겨집니다. Meta data를 잃어버리는 데코레이터(Decorator) 아래 코드는 인자로 전달 받은 함수(Python에서 함수는 일급 객체) 의 반환 값을 대문자(uppercase)로 변환하여 반환하는 데코레이터(decorator) 를 작성하고, hello_world 메소드를 데코레이터(..

Python 2023.03.08

[Django] 유효성 검증, DRF Serializer validate (feat: FastAPI 와 비교)

안녕하세요. 글쓰는 개발자 입니다. 최근 Django에 대한 대체제로써 FastAPI 적용을 검토 하면서 기본적인 Restful API 테스트를 위해 인증 서버를 간단히 구현해 보았습니다. FastAPI를 직접 사용 하면서 몇 가지 '편리하다.' 라고 느낀 점이 있었으며, 그 중에서도 Request에 대한 Validation Check 가 제일 편하게 느껴졌습니다. Django에서 Request Data Valiation을 위해 DTO를 매번 구현해서 사용했던 저로서는 Pydantic을 활용해 이런 불편함을 해소하고 exception까지 자동으로 처리하는 부분은 굉장히 매력적으로 느껴졌습니다. 그럼에도 불구하고 저는 곧 진행할 Project 에서 계속 Django를 사용하기로 동료와 결론을 내렸습니다. ..

Backend/Django 2022.10.12
반응형