묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
배포 후, refreshToken 문제
안녕하세요! 현재 프론트앤드, 백엔드 강의를 들으며 포트폴리오를 진행하고 있고, 백엔드는 배포까지 완료하였습니다. 백엔드 배포후, 프론트앤드에서 백엔드api주소를 배포된 주소로 변경하였는데 refresh token이 쿠키에 저장되지 않아 자꾸 에러가 납니다ㅠㅠ배포 전 localhost에선 문제없이 작동되었는데 배포된후엔 왜 문제가 될까요?? <Front-End=====>(apollo/index.tsx)(getAccessToken.ts)(useAuth.tsx)<Back-End=====>(main.ts)
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
[기본 nodeJS 서버 만들기] res.send is not a function
const http = require('http'); const host = 'localhost'; const port = 3000; const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/html'}); res.send('<h1>Hello World</h1>'); }); server.listen(port, host, () => { console.log('Server running on http://localhost:3000...'); });TypeError: res.send is not a function이런 에러가 발생하는데 이유를 알 수 있을까요?
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
Provider가 뭔가요?
기초적인 질문이긴 한데 Provider의 정의가 뭘까요??
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
깃허브 코드 업로드
학습한 내용(코드)을 깃허브에 올려도 괜찮은가요?
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
app.use(passport.initialize()) 질문
궁금한거 있으면 일단 ChatGPT에 검색해서 보고 있는데"NestJS의 Passport 통합에서는 PassportModule의 설정을 사용하여 Passport 초기화 및 세션 관리를 추상화합니다. 즉, PassportModule을 사용하면 내부적으로 passport.initialize()는 처리됩니다.그러나 passport.session()과 관련하여서는 다르게 동작합니다. passport.session() 미들웨어는 세션을 관리하기 위해 필요한 작업을 수행합니다. 이 미들웨어는 사용자의 요청마다 Passport를 통해 세션에서 사용자 정보를 복원하는 역할을 합니다. NestJS에서 세션 기반 인증을 사용할 때는 passport.session() 미들웨어를 수동으로 추가해주어야 합니다.따라서, 당신의 질문에 답하면, NestJS에서 passport.initialize()는 PassportModule을 사용함으로써 내부적으로 처리되지만, passport.session()은 명시적으로 추가해주어야 합니다.즉, app.use(passport.session())는 필요하며, app.use(passport.initialize())는 PassportModule 사용시에는 필요하지 않습니다."라고 하더군요. app.use(passport.initialize())는 필요가 없나요?
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
[섹션30 인터셉터] 마지막 강의
안녕하세요 선생님[섹션30 인터셉터] 마지막 영상이 [섹션29 트랜섹션] 마지막이랑 겹쳐요!따로 제보할 곳이 없어 질문 게시판에 올립니다.!
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
[BaseModel 적용하기] BaseModel에 작성된 id 프로퍼티를 OneToOne Relation의 외래키로 지정할 수 있나요?
// Base.entity.ts export abstract class BaseEntity { @PrimaryGeneratedColumn('increment') id: number; @CreatedDateColumn() createdAt: Date; @UpdatedDateColum() updatedAt: Date; } // User.entity.ts @Entity() export class User extends BaseEntity { @Column({ unique: true, }) email: string, @Column() password: string, @OneToOne(() => UserGrade, (userGrade) => userGrade.id) @JoinColumn() grade_id: number; } // UserGrade.entity.ts @Entity() export class UserGrade extends BaseEntity { @Column() grade: string; } BaseModel이 되는 BaseEntity가 있고, User와 UserGrade가 각각 BaseEntity를 상속받고 있는 형태입니다. 따라서, 각 엔티티의 기본키가 되는 id를 BaseModel에 생성되어 있습니다. 제가 궁금한 점은, User 엔티티 내에 `grade_id` 라는 프로퍼티를 만들고, 이것을 UserGrade의 id와 OneToOne 관계를 맺어주고 싶은데 id 프로퍼티를 찾지 못해 연결을 못했습니다. 제가 시도했던 방법은 추상 클래스가 아니라 생성자를 통해 자식 클래스(엔티티)로부터 id 값을 받아오는 방식을 사용해서 아래와 같이 작성해 봤습니다. 말은 안되지만 이런저런 시도를 해보았는데, 각각 연결이 안되었습니다... export class BaseEntity { constructor(obj: BaseEntity) { this.id = obj.id; this.createdAt = obj.createdAt; this.updatedAt = obj.updatedAt; } @PrimaryGeneratedColumn('increment') id: number; @CreatedDateColumn() createdAt: Date; @UpdatedDateColum() updatedAt: Date; } // User.Entity.ts @Entity() export class User extends BaseEntity { constructor(obj: User) { super(obj); Object.assign(this, obj); } ...... 생략 @OneToOne(() => UserGrade, (userGrade) => userGrade.id) @JoinColumn() grade_id: number; }// UserGrade.Entity.ts @Entity() export class UserGrade extends BaseEntity { constructor(obj: UserGrade) { super(obj); Object.assign(this, obj); @OneToOne(() => User, (user) => user.grade_id) super.id } } 혹시 이렇게 BaseEntity에서 공통되는 프로퍼티들을 관리하는 경우에, id 값을 외래키로 지정해서 연결해줄 수 있는지 궁금합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
트랜잭션 사용 유의점
안녕하세요. 지난번 질문에 빠른 답변감사합니다. 트랜잭션 공부 중 주의사항에 대한 블로그 글을 짧게 봤는데요, 트랜잭션은 꼭 필요한 최소의 코드에만 적용하는 것이 좋다는 내용이었습니다. 결제 부분만 트랜잭션을 사용하고 나머지 게시판, 채팅 등 다른 기능 구현시 굳이 트랜잭션 사용 안해도 되는거죠?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
포트폴리오는 몇개가 좋을까요?
프론트 엔드 강의에 있는 포트폴리오 1개백엔드 강의에 있는 포트폴리오 1개이 강의에 총 포트폴리오가 2개 있는데2개 다 하는게 좋을까요?
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
로그로 남겨야하는 항목을 어디까지로 해야할까요?
안녕하세요 제로초님.강의 잘 보았습니다.유저가 http request를 보냈을 때 해당 요청에 대한 로깅을 하려고 하는데 남겨야하는 정보에대한 고민이 있어 문의드립니다.한번의 요청에는 수업시간에 기재해주신 정보 이외에 여러정보가 있는걸로 알고있습니다.header(jwt token정보 등), body, param, query, response body 등 여러정보중 어떤 것을 로그에 포함해서 남겨주는게 좋을지 가늠이 되지 않아서 조언을 구하고 싶습니다!
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
Basic 토큰을 API 서버가 받아서 어떤식으로 검증을 하는지 궁금합니다
안녕하세요 코드팩토리님!! Flow chart보다가 궁금증이 생겨서 질문드립니다~ 토큰 발급 과정에서 클라이언트가 "username:password" 정보를 인코딩 후 API 서버로 전송하면 API 서버는 Basic 토큰을 받아서 디코드 후 "username:password" 정보를 추출해서 사용자가 유효한지 검증한다고 하는데플로우 차트 보면 데이터베이스에 사용자 정보를 요청하지 않는데 API 서버가 어떤 방식으로 지금 이 사용자가 유효한지를 검증하는 건가요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
ElasticSearch 개념 내용은 어디서 볼 수 있나요?
ElasticSearch 개념을 학습할 수 있는 부분이 검색 섹션에 있을 거 같은데 보이지 않아 여쭤봅니다.
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
login Cookie 전송에 관해 질문이 있습니다.
현재 Sleact 프로젝트를 Nestjs로 백앤드 개발을 완료하여 개인 도메인으로 배포중 이고 현재 Sleact 프론트단을 Vite 와 React-query 를 이용해서 다시 제작중에 Login의 쿠키가 정상적으로 넘어 오지 않는 에러가 있었습니다.해당 에러는 배포중인 api는 개인 도메인이고 프론트 단은 localhost 여서 sameSite 에러가 발생 한거였는데아래와 같이 secure: true 설정을 하게되면 Api 서버는 https 이고 localhost 는 http 여서 실패하게되고 cookie: { httpOnly: true, sameSite: 'none', secure: true, },아래와 같이 secure: false 설정을 하게되면 인용구 문구가 뜨면서 실패하게 됩니다. cookie: { httpOnly: true, sameSite: 'none', secure: false , },samesite none 속성은 있지만 samesite=none 을 사용하는데 필요한 secure 속성은 없으므로 set-cookie 헤더를 통해 쿠키를 설정하려는 시도가 차단되었습니다현재는 api를 localhost로 추가로 실행하여 front 단에서 현재 개발환경에 따라 dev 일때는 localhost 개발 단에서는 개인도메인으로 요청하도록 해서 해결햇는데, localhost 에서 배포된 api를 받아 사용할때 어떻게 처리하는게 올바른 방법인가요?
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
강좌가 현재 업데이트 되고 있는지가 궁금합니다 !
안녕하세요 이틀전에 강의 수강을 시작하여 너무나도 유익한 강의에 늘 놀라면서 듣고 공부하고 있는 학생입니다.현재 팔로우 시스템이 39강으로 마지막으로 올라와있는데 이후 40,41,42 등등에서 댓글 및 게시글 좋아요 같은 기능도 업데이트 예정인가요 ?혹은 이미 현재 파트 1 강좌는 끝이난 것인지 궁금합니다 !++++게시글과 댓글의 권환 관련 가드에서 auth모듈에 있는 Bearer토큰 을 활용하여 사용자의 id만 사용해서 권한을 사용할수 있을꺼라고 생각 드는데 맞을까요 ?게시글,댓글 가드를 따로 만드신게 코드를 깔끔하고 유지보수를 편하게 하기 위함인지 아니면 제가 생각한대로 bearer토큰만 사용한 가드로만 게시글과 댓글 까지 권한 확인을하면 다른 문제점이 있는지가 궁금합니다 !!++++현재 깃허브 코드에 채팅 가드 관련 코드는 빠져있는데 혹시 추가된 코드가 따로 있는지 알수 있을까요 ?혹은 채팅 관련 가드에 대한 코드가 빠진 이유가 있는지도 궁금합니다.!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
안녕하세요 리액트에서 fetchUser를 이용해 로그인이 되어있는지 검증하려고 합니다
리액트에서 fetchUser를 이용해 로그인이 되어있는지 검증하려고 하는데 로그인api를 호출 후 fetchUser를 호출하면 Unauthorized에러가 납니다 헤더에 토큰이 저장되지 않아서 그런걸까요?
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
getPostById를 다른 함수에서 사용
안녕하세요 강사님 CRUD를 위한 API를 생성하는 과정에서 의문이 생겨 질문 드립니다. Post부분에서 getPostById 함수를 구현을 했는데, 다른 함수들에서 getPostById와 동일한 로직이 필요한 것을 발견했습니다! 예를 들어, update 또는 delete 함수를 구현할 때, id에 맞는 post를 검색하고, 만약 존재하지 않는다면 에러를, 존재한다면 post를 반환하는 로직이 필요합니다. 근데 getPostById 함수가 그 로직을 그대로 갖고 있기 때문에 다른 함수들에서 getPostById 함수를 가져다 사용해도 되나 해서 여쭤봅니다.이런식으로요!코드 가독성 측면에서는 더 좋아보이긴 하지만, 이게 안티패턴인지 아닌지를 모르겠기도 하고, 제가 모르는 문제가 있나 싶어서 여쭤봅니다!감사합니다!
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
npm 대신 yarn을 사용하는 이유가 있나요?
yarn을 사용했을 때 compatibility 문제가 있을 수 있다고 아는데 그럼에도 불구하고 npm 대신 yarn을 사용하시는 이유가 궁금해서 질문 남깁니다. 질 좋은 강의 감사합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
안녕하세요 08-02-nestjs-with-graphql 폴더실행시에러
안녕하세요 해당영역 학습중인데 서버실행시 자꾸 Error: Cannot find module '@apollo/server' 이런에러가 발생됩니다 그래서 node_modules 디렉토리 삭제후 다시 설치해보고 yarn add apollo-server 명령어를 사용해서 설치도해보았는데도 동일한 증상입니다..ㅠ 그래서 앞부분 학습을 못하고잇어요 ㅠ 현재 버전은 이러합니다 !
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
식별 관계랑 비식별 관계
안녕하세요 강의 끝까지 잘봤습니다!!!강의 시청 후 포트폴리오용 프로젝트 설계 중에 식별 관계에 대해 의문이 생겨서 질문합니다! 우선 식별 관계로 구성 시 자식 테이블에 데이터를 넣기 전에 부모 테이블에 데이터가 필수적으로 존재해야 한다고 알고 있습니다.이는 개발자가 실수로 데이터를 입력하는 것을 막아줌으로써 데이터 정합성을 DB에서도 체크할 수 있지만, 만약 요구사항이 변경된다면 테이블의 데이터와 구조를 모두 변경해야하는 불상사가 발생할 수 있다고 알고 있습니다. 그렇다면 굳이 식별 관계로 설정할 필요가 있나요?? 그냥 전부 비식별 관계로 설정하면 안될까요? 포트폴리오에 올릴 프로젝트를 만드는 중이라 정석대로 식별 관계로 설정해야 하나 싶은데, 아직 뭐가 뭔지 잘 모르는 상태에서 괜히 복잡하게 식별 관계로 설정하는게 맞는건가 잘 모르겠어서요ㅜㅜ
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
gcp gke configmap관련 질문드립니다
gcp gke configmap관련 질문드립니다지워도 보고 docker-compose file에서 envfile 주석처리되어있는데도 막상 디플로이하면 항상 env에 localhost로 나와버리네요configmap에선 정상적으로 제가 입력한값으로 뜨는데 적용이 안됩니다로컬에서 도커이미지 전부다 지워봤는데도 계속 그럽니다, 어떻게 해야할까요?