# decorators

7개의 포스트
post-thumbnail

[TS] Chapter 8. Decorators_1

목표: Decorators에 대해 학습한다. 들어가기 전 데코레이터란? 데코레이터는 클래스, 속성, 메서드, 접근 제어자, 매개변수 등에 사용할 수 있는 특별한 함수이다. 데코레이터는 메타 프로그래밍 하는데 유용하게 사용될 수 있다. 클래스에 사용되는 데코레이터 함수의 인자로 주어지는 값은 class의 구현부 전체이다. 데코레이터 활성화를 위한 tsconfig.json파일 수정 클래스 데코레이터 만들기 데코레이터 함수를 하나 만들어 패러미터를 class의 생성자 함수로 정한다. 데코레이터는 클래스의 인스턴스가 생성되지 않아도 class 선언만으로도 실행이 된다. 문법은 @를 붙여준다. 데코레이터 팩토리 함수 데코레이터 팩토리 함수

2023년 6월 7일
·
0개의 댓글
·

TypeScript - Decorators

https://www.typescriptlang.org/docs/handbook/decorators.html tsconfig.json https://github.com/dream-coding-academy/typescript_motion/blob/master/src/decorators/log.ts

2023년 6월 4일
·
0개의 댓글
·

NestJS의 DTO number 필드로 살펴보는 API의 고뇌

Spring에서는 숫자 타입(예: Long) 필드로 "33"이 들어와도 33으로 저장되지. 한편, NestJS에서는 아래와 같은 DTO가 있을 때, price 값으로 "33"이 들어오면 에러는 커녕, number 타입인 price에 떡하니 string인 "33"이 저장돼. 🤪 물론 아래처럼 간단하게 막을 순 있어. 그런데 꼭 막아야 할까? 페이지에서 사용자에게 입력받으면 (number)string일 테니 그대로 전달할 수 있으면 프론트엔드 개발자가 편하지 않겠어? 이제 "33"이 들어와도 33으로 저장된다. 간단하네! (해치웠나?) 이제 시작이야.. (실무란 이런 자잘한 것마저 섬세한 컨트롤을 요구한다) nullable nullable number 필드 하나 추가해 볼까? categoryId 값으로 null이 들어오면 어떻게 될까? (상품에 카테고리가 없다는 걸 명시하고 싶은 경우) 가장 먼저

2023년 5월 12일
·
0개의 댓글
·
post-thumbnail

NestJS Custom Param decorators

https://docs.nestjs.com/custom-decorators#param-decorators https://velog.io/@mskwon/NestJS-Overview-Custom-Decorators https://github.com/youngkiu/nestjs-kakaologin/blob/1b4439012ec78997039efdc7379ece712f6d8a14/src/user/user.decorator.ts https://github.com/youngkiu/nestjs-kakaologin/blob/1b4439012ec78997039efdc7379ece712f6d8a14/src/auth-kakao/auth-kakao.controller.ts#L19

2023년 1월 15일
·
0개의 댓글
·

Django - decorators

decorators.py 프로젝트에서 사용했던 데코레이터 코드 지금껏 로그인 데코레이터를 만들었지만, 개별 코드의 의미를 정확히 이해하고 만든 것은 아니었다. 이번에는 코드를 한 줄씩 따져가며 데코레이터를 짜봤는데, 몇 가지 놓치고 있던 점을 발견하여 정리해보려 한다. decorator 함수의 매개변수에는 self와 request가 모두 입력돼야 한다. decorator 함수가 Class 내부에 정의되지 않기 때문에, self를 입력할 필요 없다고 생각했다. 하지만 self를 입력하지 않고 첫 번째 매개변수로 request를 입력하는 경우, request 인자값이 제대로 받을 수 없게 된다. 더군다나, 인자로 받은 함수를 실행시키는 코드인 return func(self, request)의 매개변수 self의 값이 `def decorator(self, request, *args,

2021년 8월 8일
·
0개의 댓글
·
post-thumbnail

TIL #73 : [Python] Decorator (매개변수 有)🧤

🧤 함수로 장식하자! 매개변수가 있는 데코레이터 이런 방식의 데코레이터는 값을 지정해서 동작을 바꿀 수 있다는게 큰 장점이다. 매개변수가 있는 데코레이터는 어떻게 호출될까? 코드 실행 결과 decoratorFunctionWithArguments() 안에 있는 wrapper 함수 wrap()에 들어간다. 데코레이터 실행후 sayHello() 콜을 준비한다. 그리고 바로 다시 wrapped_f() 속으로 들어간다. 데코레이터의 args - "hello", "world", 42 - 를 출력한다. 그리고 이제 sayHello의 args - 안녕하세요, sayHello, argument, list를 출력한다. sayHello의 args까지 출력하면 이제 첫번째 콜은 끝났다. 다시 wrapped_f()으로 들어간다. 데코레이터의 args - "hello", "world"

2021년 2월 14일
·
2개의 댓글
·
post-thumbnail

TIL #67 : [Django] 코드에 로그인 데코레이터 적용하기🖤

@login_decorator..? 데코레이터를 정말 장식품처럼 코드 위에 걸어놓기만 했다... 같이 천천히 적용해보자. > ✅ 로그인 데코레이터는 따로 utils.py라는 파일을 만들고 거기에 담았다. login_decorator 코드 코드를 뜯어보면 이런 뜻이다. 프론트에서 보내준 request header 속에 {'Authorization' : '토큰'}이 있으면 이걸 access_token으로 저장한다. SECRETKEY, ALGORITHM으로 보안된 accesstoken을 decode 해서 payload 변수에 넣는다. payload에는 (토큰에 담은) 우리 정보(PK, id)가 들어있다! id값을 추출해 user 변수에 담는다.

2021년 2월 11일
·
0개의 댓글
·