[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
37강 ( 모든 Route 기본 Private로 만들고 IsPublic Annotation 작업하기) 강의 에서 8분 50초에 아래의 코드에 @IsPublic을 해줘도 아래 가드를 통과해야 해서 괜찮다고 말씀해주셨는데요. //access 토큰 재발급 @Post('token/access') @IsPublic() // 여기가 퍼블릭이여도 밑에서 가드를 통과해야하기 때문에 괜찮다. @UseGuards(RefreshTokenGuard) postTokenAccess(@Headers('authorization') rawToken: string) { // 여기서 받는 rawToken은 Bearer 이다. const token = this.authService.extractTokenFromHeader(rawToken, true); // token은 refresh 토큰이다. false를 같이 던져줘서 acess 토큰이 나온다. const newToken = this.authService.rotateToken(token, false); /** * {accessToken: {token}} 이러한 형태로 리턴 */ return { accessToken: newToken }; } //refresh 토큰 재발급 @Post('token/refresh') @IsPublic() @UseGuards(RefreshTokenGuard) postTokenRefresh(@Headers('authorization') rawToken: string) { // 여기서 받는 rawToken은 Bearer 이다. const token = this.authService.extractTokenFromHeader(rawToken, true); // token은 refresh 토큰이다. true를 같이 던져줘서 acess 토큰이 나온다. const newToken = this.authService.rotateToken(token, true); /** * {refreshToken: {token}} 이러한 형태로 리턴 */ return { refreshToken: newToken }; } AccessTokenGuard, RefreshTokenGuard 모두 BearerTokenGuard를 먼저 수행하기 때문에 req에 IsRoutePublic가 true로 되어 있어서 AccessTokenGuard, RefreshTokenGuard 이 두 개 모두 바로 통과하는 것으로 알고 있습니다. 이렇게 되면 IsPublic 어노테이션을 사용한 상황에서는 전역으로 설정된 AccessTokenGuard는 통과하게 됩니다. 그리고 "token/access" API에 설정된 RefreshTokenGuard도 물론 통과하게 됩니다. 이렇게 되면 RefreshTokenGuard는 어디에서도 사용할 수 없는 게 아닐까요?? ///////////////정리//////////////////////////////// % 토큰 재 발급하는 상황이라고 가정 % IsPublic 어노테이션 설정됨 -> AccessToken 통과, RefreshTokenGuard 통과 BearerTokenGuard 통과 RefreshTokenGuard도 통과 즉, refreshToken 인지 검증 불가능 IsPublic 어노테이션 설정됨 -> AccessToken 검증 재검증 로직이므로 refresh 토큰을 보냈으므로 AccessToken 검증에서 accessToken이 아니라고 걸림 즉, RefreshTokenGuard는 사용할 수 없게 되는게 아닌가요?
❗ 질문 작성시 꼭 참고해주세요 에러 메세지에서 단서를 찾을 수 있는 경우가 많습니다. 에러 메세지를 읽고 한번 검색해보시는것을 추천드립니다. 질문글을 작성하실때는, 현재 문제(또는 에러)와 코드나 github 을 첨부해주세요. 개발중인 OS, ReactNative, Node 버전 등의 개발환경 을 알려주셔야합니다. 에러메세지는 일부분이 아닌 전체 상황 을 올려주세요. 일부만 보여주시면 답변이 어렵습니다. ( 일부만 자르거나 일부만 복사하지말아주세요 .) 윈도우 / 안드로이드 입니다. 강의를 본 후, 즐겨찾기와 검색쪽에서 피드를 클릭하면은 오류가 발생합니다. 깃허브 6-7의 front부분과 전체 동일합니다. 아직 구현이 덜 된건지 아니면 제가 놓친부분이 있는지 궁금합니다.
조건문 v0.2.pdf 파일 2페이지에 있는 C언어 조건문 예시문제에 오류가 있습니다. #include <stdio.h> int main() { int number = 3; if (number > 5) { printf("이 숫자는 5보다 큽니다.\n"); } return 0; } 출력값: 이 숫자는 5보다 큽니다 이라고 되어있네요. 강의에선 number가 10이라고 잘 되어있는데, pdf에서만 오류가 있습니다.
CountryCapital_v3.py 실습과정을 진행중에 갑자기 airflow UI 에서 DAGs 리스트들이 나오지 않는 현상을 겪고 있습니다. airflow dags list 명령어에 대한 결과이고, 도커에서 airflow 도 잘 띄우고 있습니다. 이전까지는 잘 되었는데 다음 사진과 같이 dag들이 갑자기 나오지 않고 있습니다.
안녕하세요. 강의 잘 듣고 있습니다! 다만 코딩을 못하는 비개발자 입장에서 Prompt Evaluation 시간에 적으시는 것 포함해서 강사님께서 강의시간에 실시간으로 적는 내용들은 강의 자료에도 없고, 강의 때도 설명없이 뚝딱 하고 넘어가시니까 따라하고는 싶은데... 뭔지도 잘 모르겠고 ㅠㅠ 어떻게 쓰시는건지.... 모바일로 보면 더 작게 보이고 보이지도 않는데 제 실생활에 어떻게 적용해야될지.... 감이 안옵니다 어떻게 해야 좀더 쉽게.. 접근하고, 비개발자 입장에서도 따라하기 쉬울까요?
안녕하세요 선생님 강의 잘 듣고 있습니다. 24분 13초의 배열과 포인터 증가 문제에 대해 질문 드리고자 합니다. 포인터의 증감 연산자가 배열의 각 인덱스 요소의 값 변화에 반영된다는 것은 이해했습니다만, 5번 *arr + 1 의 출력에 ptr 배열의 증감연산자로 인한 변화가 반영되는 것이 이해가 되지 않습니다. 코드의 초반에 ptr = arr;으로 ptr에 arr 배열의 주소값이 반영되고 ptr에 arr 배열의 값이 그대로 들어가 ptr이라는 배열을 새로이 구성하는 것은 이해했습니다. 하지만 저는 arr 배열은 ptr 배열과는 별개의 배열이기에 ptr 배열의 값 변화는 arr에 반영되지 않는다고 생각했습니다. arr 배열 따로, ptr 배열 따로이기에 *arr + 1은 21인게 맞지 않나요? 제가 어디서 잘못 생각한건지 여쭙고자 합니다. 저는 ptr이 arr의 주소값을 가리키기에 일종의 종속적인 관계라고 생각해서 arr에는 ptr의 변화가 반영되지 않는다고 판단했습니다. 늘 좋은 강의에 감사드립니다. +) 방금 AI 답변으로 포인터의 증감 연산자의 효과 : ptr 에 증감 연산자(예: ++*ptr 또는 *ptr++ )를 사용하면 ptr 이 가리키고 있는 해당 위치의 메모리 값이 변경됩니다. 하지만, *arr + 1 같은 표현은 메모리 상의 값을 변경하지 않고 단순히 계산하는 것에 그칩니다. 라는 내용이 달렸는데 해당 답변이 맞는 내용인지도 질문드리고 싶습니다.
안녕하세요 선생님 강의 잘 듣고 있습니다. 소수 판별기 문제에서 2가 출력되는 것에 대해 의문이 있어 질문드리게 되었습니다. 저는 isP()에서 for문의 조건이 for (int i = 2; i < num; i++) 이기에 isP(2)의 경우 num이 2이고 이 경우 for문은 for (int i = 2; i < 2; i++) 으로 i가 2이지만 i가 2 미만이라는 조건이 있기에 2는 출력값에 포함되지 않는다고 생각했습니다. 혹시 제가 잘못 풀이한것인지, 어느 부분에서 잘못 생각한것인지 여쭙고자 합니다. 늘 좋은 강의에 감사드립니다.
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 어떤 알고리즘을 학습하고 계신가요? 여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 재귀함수 부분이 알려주신 문제에선 이해가 되는데, 제대로 이해가 안된 느낌이라서 혹시 연습문제를 풀면서 기본기와 감을 익힐만한 문제들 추천해주실 수 있으신가요? 코드의 어떤 로직이 이해가 안 되시나요? 재귀함수의 작동원리는 알겠으나, 실제로 구현하고자 할 때 어떻게 구현해야할지 문제마다 새롭게 다가오는 것 같습니다. 어떤 개념이 헷갈리시나요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 에러가 발생했다면 어떤 에러인가요? 현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
2:53 자바에서 업캐스팅 형태로 클래스가 구성되었을 경우, 부모 클래스에 존재하지 않는 메서드를 자식 클래스에서 정의할 수 없다고 배웠습니다. 생성자도 이와 동일하게, 업캐스팅에서 부모에 존재하지 않는 생성자를 자식 클래스가 가질수 없는게 맞나요? 그게 맞다면, class C의 생성자는 super(a/3)가 있기 때문에 에러가 발생하지 않는게 맞나요? 헷갈리는 부분입니다 ㅠㅠ
vs code를 깔려고 예전부터 시도해봤는데 어떻게 해야 할지 몰라서 물어봅니다. 지금까지는 강의가 vscode를 쓸 정도로는 안되서 신경을 안썼는데 (google colab 쓰고 있음) 이 번엔 vs를 써야하는 상황이 와서 vscode를 깔아야 할거 같습니다. 근데 제가 32bit,*64 기반 프로세서를 가지고 있는데 이 사향으로 어떻게 깔수 있을까요?
안녕하세요 강사님 혹시 vsc에서 airflow관련 함수들의 자동완성을 제공하는 익스텐션이 따로 있나요? 아니면 코드를 원래 전체 작성해야 하나요? 위 그림에 ti.xcom_pull의 경우 ti. 하고 자동완성을 하려고 봤더니 제공하는 함수가 없어서 질문드립니다 근데 뒤에 task_ids는 자동완성이 되네요
프로젝트 구성 Dockerfile FROM node:14 RUN apt-get update && apt-get install -y bash COPY ./package.json /myfolder/ COPY ./yarn.lock /myfolder/ WORKDIR /myfolder/ RUN yarn install COPY . /myfolder/ CMD ["yarn", "start:dev"] docker-compose.yaml version: "3.7" services: node-server: build: context: . dockerfile: Dockerfile volumes: - ./index.js:/myfolder/index.js - ./email.js:/myfolder/email.js ports: - 3000:3000 database-server: image: mongo:5 ports: - 27017:27017 Window 환경입니다. 위와 같을 때 index.js 파일을 수정하여도 docker로 연동된 nodemon 재 실행이 안됩니다. docker-desktop 에서 container 에서보면 mount 라고 표기되어있고 위의 새로고침 버튼을 누르면 제대로 적용 됩니다. 원인이 뭘까요?