문자열과 배열은 &를 생략하고 처음 *는 포인터 변수 선언에 사용되는 것 까지는 이해가 됐는데, 출력할 때, printf("입력된 문자열: %s\n", str); 이부분에서 문자열의 값을 출력하기 위해서는 printf("입력된 문자열: %s\n", *str ); 이렇게 *를 붙여야 하는게 아닌가요? &처럼, 주소가 담고있는 값을 출력할 때 쓰이는 *도 문자열과 배열에서는 생략하는건가요??
[코드팩토리] [초급] 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에서만 오류가 있습니다.
안녕하세요 선생님 강의 잘 듣고 있습니다. 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. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 스스로 생각해본건데 int a = 10; int b = a++ + ++a; 이 코드에서 흐름은 b +=10 a = 11 a=12 b+=12 이렇게 되는건가요...?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네 검색해도 안보이네요 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네 [질문 내용] 섹션2. 프로세스와 스레드 소개를 들은 후에, CPU 스펙에서 말하는 쓰레드와 강의에서 말하는 스레드(아마 소프트웨어 쓰레드)는 서로 다른건가? 에서 궁금증이 시작되었습니다. 예를 들어 최근 인기있는 게이밍 CPU의 경우 8코어 16스레드의 스펙을 가지고 있습니다. 강의에선 16개보다 많은 갯수의 스레드가 나와서 혼동이 왔습니다. 이래저래 AI질문과 구글링을 통해 알아본 결과 소프트웨어 스레드(강의에서 말하는 스레드)를 프로그램등에서 생성하고 분배하면 이 분배된 스레드를 CPU스레드(하드웨어 스레드)에서 처리하는 느낌으로 이해되는데 맞게 이해한건지 궁금하여 질문드립니다
2:53 자바에서 업캐스팅 형태로 클래스가 구성되었을 경우, 부모 클래스에 존재하지 않는 메서드를 자식 클래스에서 정의할 수 없다고 배웠습니다. 생성자도 이와 동일하게, 업캐스팅에서 부모에 존재하지 않는 생성자를 자식 클래스가 가질수 없는게 맞나요? 그게 맞다면, class C의 생성자는 super(a/3)가 있기 때문에 에러가 발생하지 않는게 맞나요? 헷갈리는 부분입니다 ㅠㅠ
최대한 자료를 찾아봐서 이해해보려고 했는데, 너무 헷갈려서 도움을 구하고자 질문을 올립니다. 강의에서 search page에는 페이지 이동 시 javascript bundle로써 전달 될 client component가 없기 때문에 그냥 rsc payload만 전달되는 것이라고 하셨는데, searchpage만 보면 client component가 없는 것이 맞지만, (with-searchbar)폴더 안에 layout으로 Searchbar component를 포함시킨 것은 어떻게 되는 것인지 궁금합니다. Searchbar component가 client component이므로 search page에서 직접적으로 import를 하지는 않았지만, 레이아웃으로써 사용되었기에 어쨌든 search page안에 client component가 포함되는 것은 아닌가요? 이해가 명확하게 되지 않아 질문조차 조금 난해하게 쓴 것 같아서 죄송합니다! 감사합니다.