묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
선생님 추가적으로 새로운 페이지를 만드려고 하는데요...
지금은 마커만 눌르면 해당 정보만 보이는데,마커를 눌렀을때 html안에 해당 음식점의 상세 페이지 정보를 만들어보려고 하는데..너무 막막해서요.. 이럴때는 어찌해야 할지 조금 말씀 부탁드려도 될까요?
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
docker-compose up 명령 실행후에
services.postgres Additional property restrart is not allowed이런 내용이 뜨면서강사님 영상과 같은 로그들이 나오지 않는데 어떻게 하는 것이 좋을까요?
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
코드 질문 드립니다!
const {studentName} = req.query; const {studentIdx} = req.params;여기서req.query와 req.params의 차이가뭔가요?
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
혹시 강의자료 노션 내리셨나요?
들어가서 찾아보고 싶은게 있는데 새소식에 없어져서요..
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
new 와 그냥 클래스 차이에 대한 추가 질문
코팩님 강의 잘보고있습니다. :) 'DefaultValuePipe 사용해보기'라는 강의에서 궁금한 것이 있어서 질문드립니다.new와 그냥 클래스는 제가 이해한 바로는 그냥 클래스처럼 넣게 되면 DI를 통한 nest에서 싱글톤 패턴으로 ParseIntPipe를 주입해주는 것이고 new키워드를 붙이게 되면 인스턴스가 생성하게 됨으로 nest에서 DI로 주입해주는 것이 아닌 ParseIntPipe클래스의 인스턴스가 생성되는 방식인가요?감사합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
파일 업로드 질문
안녕하십니까혹시 graphql을 이용한 이미지 업로드 부분에서포스트맨 말고 클라이언트에서 요청하려고 할 때다른 설정들이 필요한가요?여러 방법들을 해봤는데 모두 안되서 질문 드립니다. await axios.post("http://localhost:5656/graphql", { query: ` mutation { uploadFile(file: ${file}) } `, })const file = files[0] await axios.post("http://localhost:5656/graphql", { query: ` mutation uploadFile($file: Upload!) { uploadFile(file: $file) }, `, variables: { file: file, }, })
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
배열을 스웨거로 작성하는 법을 모르곘어요
퀴즈 4 풀고 있는데 1개 이상의 배열을 스웨거로 작성하는 법을 모르겠습니다.예를 들면[{name:"철수",age:2},{name:"훈이",age:3}] 이런거를 이런 예시를 가지고 2개의 배열로 나타내는 법을 모르겠습니다
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
[모든 Route 기본 Private로 만들고 IsPublic Annotation 작업하기] IsPublic을 사용하면 RefreshTokenGuard도 무력화되지 않나요?
RBAC까지 다뤄주시다니 정말 흥미로운 내용이었습니다!다만 현재 로직상으로는 RefreshTokenGuard이 적용된 Access 토큰 갱신, Refresh 토큰 갱신 API에 IsPublic을 적용하면 RefreshTokenGuard도 미적용되지 않나요?실제 저 API들을 Access Token으로 호출해보면 Guard가 아니라 Service 단에서 Exception이 발생하는 것 같더라구요.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
포트폴리오 작성할 때 강의에서 배운대로 적어도 되나요?
포트폴리오 작성하고 있는데 강의에서 배운 내용들로 채워도 되나요? 아니면 선생님이 doc를 직접 찾아보라고 일일히 강의에서 설명하지 않은 내용들을 써야하나요?
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
포스트 컨트롤러에서 UseGuard를 추가하면 디펜던시 에러가 나타납니다.
영상에서는 단순히 포스트 컨트롤러에서 @UseGuards(AccessTokenGuard)를 추가한 후 잘 작동하는 것 같은데 저는 디펜던시 에러가 나타나네요.. ERROR [ExceptionHandler] Nest can't resolve dependencies of the RefreshTokenGuard (?, UsersService). Please make sure that the argument AuthService at index [0] is available in the PostsModule context.디펜던시 에러 해결하는 강의를 다시 보고 포스트 모듈에서 필요한 부분들을 추가하여 해결은 했습니다. AuthService, UsersService와 JwtModule.register({}), UsersModel까지 추가해주니까 영상처럼 토큰을 보내줬을 때 포스트 기능이 잘 작동합니다.. 궁금한 것은 영상에서는 포스트 모듈에 별다른 수정 없이 단순히 포스트 컨트롤러에서 @UseGuards만 추가해도 잘 작동하는 것 같은데.. 저는 왜 포스트 모듈에서 필요한 부분을 추가해 주어야 했는지 모르겠네요.. 제가 놓친 부분이 있었을까요..? 감사합니다.
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
이미 구매해서 문의에는 안써져서 여기에 물어봅니다
1. 배포에 관한 부분은 아직 없는 것 같은데 업데이트 중인가요? 아니면 Part2로 나눠서 나올까요?2. 강의 구매 인증을 하면 우선 답변을 받을 수 있는 채널로 초대하신다고 했는데 어디서 구매 인증을 해야 할까요?
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
노드몬 에러 참조하세요
nodemon : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\~~~~~\AppData\Roaming\npm\nodemon.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오.위치 줄:1 문자:1+ nodemon+ ~~~~~~~+ CategoryInfo : 보안 오류: (:) [], PSSecurityException+ FullyQualifiedErrorId : UnauthorizedAccess 이런거 뜨면https://velog.io/@kimy/VS-CODE-supervisor-nodemon-%EC%98%A4%EB%A5%98-ps1-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EB%A1%9C%EB%93%9C%ED%95%A0-%EC%88%98-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4이 방법대로 참조하세요 혹시 안되시는분들
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
깃허브에서 다운받지 않고 생성하는 방법 여쭤보고 싶습니다.
저 강의에서는 vpm init 등등을 활용해 노드js 기타등등을생성하셨는데 이번강의에선 깃허브에서 다운을 통해 선생님께서 이미 준비하신 node.js파일들을 제공받았는데..만약 제가 스스로 혼자서 셋팅하고 만들어보고 싶은 경우에는 어찌해야 할까요...? 아니면 그냥 선생님이 만들어주신 저 다운패키지들을 활용해도 별 문제 없을까요...?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
테이블 관계
안녕하세요예를 들어 MockUserRepository를 만들고 그 안에 mydb라는 데이터가 있습니다.만약 기존 User 테이블이 Post 테이블과 관계가 맺어져 있다면 Post까지 mydb에 담아야 하나요?mydb = [{ id= '', name:='', password= '' }] 이렇게 해야 하는 건지아니면 mydb = [{ id: '', name:'', password: '', post: { id: '', title: ''}] 이렇게 작성해야 하는 건지 궁금합니다!! 그리고 userService에서 postService를 사용하는 로직이 있는데 userService 테스트시 MockPost 테이블까지 같이 구현해야 하는 건지..아니면 다른 방법이 있는 건지ㅜㅜ 궁금하네요 하나만 더 여쭤보자면.. ㅜㅜ 제가 이해가 잘 안가서 그러는데 controller.ts를 테스트할 때는 service를 mock하고, service.ts를 테스트할 때는 데이터베이스를 mock해서 사용하는 건가요??
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
yarn start:dev 실행시 에러
포스트맨에서 요청하려는데 어느 부분이 문제여서 에러가 난걸까요?일단 어느부분을 보셔야 해결해주실 수 있으실지 모르겠어서 캡처를 2개 했습니다.
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
확인부탁드리겠습니다.
module.exports = { jwtsecret : "jwt_secret_key_9312", host : "3.38.61.157", user : "root", port : "3306", password : "~~~", detabase : "enrolment", };이렇게 하고 index.js를 해줬는데선생님처럼 aws아이피는 안 뜨고 그냥PS C:\Users\YOONJUNHO\Documents\Test\Node-Template-For-Food-Map-main> node index.js2023-11-15 02:38:07 info: undefined - API Server Start At Port 3000이것만 뜨는데 이것도 연결된건가요?
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
refresh 토큰이 만료됐는데 만료된 refresh 토큰으로 새로운 refresh 토큰을 발급받는 것인가요..?
access token이 만료되었을 떄 refresh 토큰을 통해 access token을 새로 발급 받는 것은 이해가 되는데.. refresh 토큰이 만료되어서 새로운 refresh 토큰을 발급받기 위한 시점에서 만료된 refresh 토큰을 사용할 수 있는 것인가요..? 조금 헷갈리내요..
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
[토큰 재발급 로직 코딩하기] 토큰 재발급 후 sub 정보 사라짐
signToken(user: Pick<UsersModel, 'email' | 'id'>, isRefreshToken: boolean) { const payload = { email: user.email, sub: user.id, type: isRefreshToken ? 'refresh' : 'access', }; return this.jwtService.sign(payload, { secret: JWT_SECRET, // seconds expiresIn: isRefreshToken ? 3600 : 300, }); } async rotateToken(token: string, isRefreshToken: boolean) { const decoded = this.jwtService.verify(token, { secret: JWT_SECRET, }); if(decoded.type !== 'refresh'){ throw new UnauthorizedException('토큰 재발급은 Refresh 토큰으로만 가능합니다!'); } return this.signToken({ ...decoded, }, isRefreshToken); }토큰 생성 시 payload에서 sub에 user.id를 할당하고 있는데 재발급시 decoded 객체를 그대로 할당하면 sub 정보가 사라지지 않나요?
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
async와 await 로직을 사용해야 하는 기준을 잘 모르겠어요
비동기 로직을 호출만 하고 끝나는게 아니라 결과값을 활용해야할 때 async, await를 활용해야 한다고 이해하고 있는데요. 한가지 이해가 잘 가지 않는 부분이Auth Service에서async registerWithEmail( user: Pick<UsersModel, 'nickname' | 'email' | 'password'>, ) { const hash = await bcrypt.hash(user.password, HASH_ROUNDS); const newUser = await this.usersService.createUser({ ...user, password: hash, }); return this.loginUser(newUser); }async 함수는 결국 Promise를 반환하니까Auth Controller에서@Post('/register/email') registerByEmail( @Body('nickname') nickname: string, @Body('email') email: string, @Body('password') password: string, ) { return this.authService.registerWithEmail({ nickname, email, password, }); }async, await를 사용하지 않으면 제대로 동작하지 않을 줄 알았는데 비동기 호출의 결과인 token이 잘 반환되더라구요. 혹시 이유를 알 수 있을까요?async, await를 판단하는 강사님 만의 기준이 혹시 있으신지, 그리고 굳이 async, await가 필요 없는 곳에도 사용하게되면 성능의 차이가 생기는지도 궁금합니다.
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
Follow Count Incremet & Decrement 작업하기 - 2 강의 제목과 내용이 맞지 않는 것 같습니다.
안녕하세요.강의 덕분에 많은 것을 배우고 좀 더 nestjs에 익숙해질 수 있었습니다. 그런데 Follow Count Incremet & Decrement 작업하기 - 2 강의에서 다룬 내용이 comment count 작업과 관련한 내용이었습니다. Follow Count Incremet & Decrement 작업하기 - 1 마지막에는다음 시간에 followee count 증가 감소 내용을 다룰 것이라 하셨었거 든요.강의가 누락된 것 같습니다.참고해 주세요! ㅎ좋은 강의 감사합니다. 이어지는 강의도 많이 기대됩니다. 힘내세요!