inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

중간 테이블 질문

미해결

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

엔티티 작성할 때 @ManyToMany와 @JoinTable을 사용해서 중간 테이블을 설정해주고, 따로 또 ~Members엔티티를 작성해서 중간 테이블을 설정해줬는데 이게 겹치는 문제는 없나요? 워크 벤치에 생성된 중간 테이블은 하나밖에 없던데 그건 @JoinTable에 의해 생성된 중간 테이블인가요? 직접 작성한 중간 테이블인 ~Members엔티티인가요?

  • node.js
  • express
  • nestjs
  • typeorm
roider2316 댓글 1 좋아요 0 조회수 323

리프레시 토큰 관련 질문이 있습니다.

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

안녕하세요. 해당 강의에 대한 질문이라기 보다 현재 우리가 구현한 인증/인가 구현 방법에 대한 질문이 있습니다. accessToken은 만료되었을 시 refreshToken을 재발급 받을 수 있도록 우리가 API를 만들었습니다. 따라서 클라이언트 측에서 accessToken 만료 시 refreshToken을 재발급하는 API를 요청하고 갱신을 할 것이라고 생각됩니다. 하지만 refreshToken을 갱신하는 API는 refreshToken이 만료되었을 시에는 리프레쉬 토큰을 갱신하지 못합니다. 이 때 사용자에게 재로그인을 시킨다는 기획이라면 문제가 없을 것 같습니다. (재로그인이라면 리프레시 토큰 갱신 API는 불필요할 것으로 생각됩니다.) 그렇다면 리프레시 토큰을 갱신하는 API는 클라이언트 입장에서 언제 호출을 해야되나요? 사용자가 우리 서비스를 이용한다면 주기적으로 리프레시 토큰을 갱신하는 API를 호출하고 리프레시 토큰을 갱신을 해놔야하나요? 정답이야 없겠지만 스탠다드한 방법이 궁금합니다!

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
khmin3011 댓글 1 좋아요 0 조회수 634

access token 관련 질문드립니다.

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

안녕하세요 강의를 다 듣고 개인 포트폴리오 제작중에 있습니다. 현재 로그인 부분을 구현중인데, 포인트 충전이라던가 마이페이지 접근시, 비밀번호 변경 시 등의 경우에 인가(여기선 fetchUser)를 받아야 한다고 이해했습니다. 그러려면, 강의에선 아래 사진처럼 header에 토큰을 넣어서 보내었습니다. 하지만 직접 프론트엔드를 구축해서 api 호출하려고 하니 header에 토큰을 넣어줘야 하는데, 현재 로그인시 그냥 토큰 값인 문자열을 리턴할 뿐 엑세스토큰을 저장하는 곳이 없습니다. 보통 액세스토큰을 저장할 때 변수, 로컬스토리지, 세션스토리지, 쿠키 중 무엇을 가장 많이 사용하나요? 섹션 13-11의 강의에서 처럼 변수에 액세스토큰을 저장하는 경우를 생각해 봤습니다. 그러면 인증하는 컴포넌트(ex: login)와 인가를 받는 컴포넌트(ex: 포인트 충전)가 다를 때 컴포넌트에서 token을 변수로 저장하더라도 다른 컴포넌트에서는 사용 못할텐데 recoil같은 라이브러리를 사용해서 전역변수로 사용해야 하는지 궁금합니다. 아래는 프론트엔드의 login 컴포넌트를 예시를 적어보았습니다. const [token, setToken] = useState(""); await axios.post("http://localhost:5656/graphql", { query: ` mutation { login(id: "${inputId}", password: "${inputPw}") } `, }) .then(res => { setToken(res.data.data.login); } }) 감사합니다.

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
댓글 1 좋아요 0 조회수 532

서비스 중 API 수정이 어렵다는 부분에 궁금한 점이 있습니다

해결됨

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

7:47부터 말씀하시는 내용에 대한 질문입니다. API 설계가 잘못되었더라도 서비스 도중이면 수정하기가 어렵다고 하셨는데요. 예시로 보여주신 것처럼 API 내에서 쓰이는 함수는 섣불리 건들면 안된다는건 이해가 되었습니다. 그런데 (':url/members/:id')에서 (':url/users/:id')로 고치는 것과 같이 URL 수정에는 어떤 이유로 어려움이 있는지가 궁금합니다. 제가 생각하기에는 개발자가 아닌 일반적인 사용자들은 프론트엔드에서 버튼과 같은 UI를 클릭해서 이용하지, 위 URL을 전부 입력해서 사용하는 경우는 잘 없지 않을까? 라고 생각이 들거든요. 혹시 같이 작업 중인 동료 개발자들에게 혼란을 줄 수 있는 이유에서일까요?

  • node.js
  • express
  • nestjs
  • typeorm
jeongho218 댓글 1 좋아요 1 조회수 236

docker build 시 이미지 생성부분 질문

미해결

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

현재 Docker 3 - package.json 강의 듣고 질문 드립니다 아래와 같이 index.js 파일을 3회 수정후, 수정할때마다 docker build 후 docker images 명령어로 확인해보니 이미지가 총 3번 생성 된것을 확인 할 수 있는데, express index.js 파일 import express from "express" const app = express() app.get("/qqq", function (req, res) { res.send("qqq1") }) app.listen(3000) import express from "express" const app = express() app.get("/qqq", function (req, res) { res.send("qqq2") }) app.listen(3000) import express from "express" const app = express() app.get("/qqq", function (req, res) { res.send("qqq3") }) app.listen(3000) 이미지 총 3번 생성 질문1 size가 915 mb 로 나오는데, 위에 915M * 3 만큼의 용량이 내 pc 어딘가에 저장되어 용량을 차지하고 있는게 맞나요? 질문2 그렇다면 왜 기존 이미지를 수정하는 방식이 아닌, 매번 새로운 이미지를 생성하는걸까요? 지금 윈도우에 wsl Linux 설치하여 학습중인데, 우클릭해서 용량을 확인할수가 없네요 뒤에 해당 내용을 알려주시나요? 답변 주시면 감사하겠습니다~

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
김주원 댓글 1 좋아요 0 조회수 388

배포 후, refreshToken 문제

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

안녕하세요! 현재 프론트앤드, 백엔드 강의를 들으며 포트폴리오를 진행하고 있고, 백엔드는 배포까지 완료하였습니다. 백엔드 배포후, 프론트앤드에서 백엔드api주소를 배포된 주소로 변경하였는데 refresh token이 쿠키에 저장되지 않아 자꾸 에러가 납니다ㅠㅠ배포 전 localhos t에선 문제없이 작동되었는데 배포된후엔 왜 문제가 될까요?? <Front-End=====> (apollo/index.tsx) (getAccessToken.ts) (useAuth.tsx) <Back-End=====> (main.ts)

  • javascript
  • node.js
  • docker
  • nestjs
댓글 1 좋아요 0 조회수 385

[기본 nodeJS 서버 만들기] res.send is not a function

해결됨

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

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 이런 에러가 발생하는데 이유를 알 수 있을까요?

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
jhreplay.lee 댓글 1 좋아요 0 조회수 546

Provider가 뭔가요?

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

기초적인 질문이긴 한데 Provider의 정의가 뭘까요??

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
SILENMUS 댓글 1 좋아요 1 조회수 422

깃허브 코드 업로드

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

학습한 내용(코드)을 깃허브에 올려도 괜찮은가요?

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
김영록 댓글 1 좋아요 0 조회수 336

app.use(passport.initialize()) 질문

미해결

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

궁금한거 있으면 일단 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())는 필요가 없나요?

  • node.js
  • express
  • nestjs
  • typeorm
roider2316 댓글 1 좋아요 1 조회수 411

[섹션30 인터셉터] 마지막 강의

해결됨

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

안녕하세요 선생님 [섹션30 인터셉터] 마지막 영상이 [섹션29 트랜섹션] 마지막이랑 겹쳐요! 따로 제보할 곳이 없어 질문 게시판에 올립니다.!

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
ㅂㄱ 댓글 1 좋아요 0 조회수 215

[BaseModel 적용하기] BaseModel에 작성된 id 프로퍼티를 OneToOne Relation의 외래키로 지정할 수 있나요?

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

// 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 값을 외래키로 지정해서 연결해줄 수 있는지 궁금합니다.

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
전은정 댓글 1 좋아요 0 조회수 494

트랜잭션 사용 유의점

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

안녕하세요. 지난번 질문에 빠른 답변감사합니다. 트랜잭션 공부 중 주의사항에 대한 블로그 글을 짧게 봤는데요, 트랜잭션은 꼭 필요한 최소의 코드에만 적용하는 것이 좋다는 내용이었습니다. 결제 부분만 트랜잭션을 사용하고 나머지 게시판, 채팅 등 다른 기능 구현시 굳이 트랜잭션 사용 안해도 되는거죠?

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
웨스 댓글 1 좋아요 0 조회수 268

포트폴리오는 몇개가 좋을까요?

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

프론트 엔드 강의에 있는 포트폴리오 1개 백엔드 강의에 있는 포트폴리오 1개 이 강의에 총 포트폴리오가 2개 있는데 2개 다 하는게 좋을까요?

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
kql 1 댓글 1 좋아요 0 조회수 380

로그로 남겨야하는 항목을 어디까지로 해야할까요?

미해결

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

안녕하세요 제로초님. 강의 잘 보았습니다. 유저가 http request를 보냈을 때 해당 요청에 대한 로깅을 하려고 하는데 남겨야하는 정보에대한 고민이 있어 문의드립니다. 한번의 요청에는 수업시간에 기재해주신 정보 이외에 여러정보가 있는걸로 알고있습니다. header(jwt token정보 등), body, param, query, response body 등 여러정보중 어떤 것을 로그에 포함해서 남겨주는게 좋을지 가늠이 되지 않아서 조언을 구하고 싶습니다!

  • node.js
  • express
  • nestjs
  • typeorm
김영욱 댓글 1 좋아요 0 조회수 403

Basic 토큰을 API 서버가 받아서 어떤식으로 검증을 하는지 궁금합니다

해결됨

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

안녕하세요 코드팩토리님!! Flow chart보다가 궁금증이 생겨서 질문드립니다~ 토큰 발급 과정에서 클라이언트가 "username:password" 정보를 인코딩 후 API 서버로 전송하면 API 서버는 Basic 토큰을 받아서 디코드 후 "username:password" 정보를 추출해서 사용자가 유효한지 검증한다고 하는데 플로우 차트 보면 데이터베이스에 사용자 정보를 요청하지 않는데 API 서버가 어떤 방식으로 지금 이 사용자가 유효한지를 검증하는 건가요?

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
5km 댓글 1 좋아요 0 조회수 466

ElasticSearch 개념 내용은 어디서 볼 수 있나요?

해결됨

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

ElasticSearch 개념을 학습할 수 있는 부분이 검색 섹션에 있을 거 같은데 보이지 않아 여쭤봅니다.

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
흥푸 댓글 1 좋아요 1 조회수 263

login Cookie 전송에 관해 질문이 있습니다.

해결됨

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

현재 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를 받아 사용할때 어떻게 처리하는게 올바른 방법인가요?

  • node.js
  • express
  • nestjs
  • typeorm
최석우 댓글 1 좋아요 0 조회수 523

강좌가 현재 업데이트 되고 있는지가 궁금합니다 !

미해결

[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core

안녕하세요 이틀전에 강의 수강을 시작하여 너무나도 유익한 강의에 늘 놀라면서 듣고 공부하고 있는 학생입니다. 현재 팔로우 시스템이 39강으로 마지막으로 올라와있는데 이후 40,41,42 등등에서 댓글 및 게시글 좋아요 같은 기능도 업데이트 예정인가요 ? 혹은 이미 현재 파트 1 강좌는 끝이난 것인지 궁금합니다 ! ++++ 게시글과 댓글의 권환 관련 가드에서 auth모듈에 있는 Bearer토큰 을 활용하여 사용자의 id만 사용해서 권한을 사용할수 있을꺼라고 생각 드는데 맞을까요 ? 게시글,댓글 가드를 따로 만드신게 코드를 깔끔하고 유지보수를 편하게 하기 위함인지 아니면 제가 생각한대로 bearer토큰만 사용한 가드로만 게시글과 댓글 까지 권한 확인을하면 다른 문제점이 있는지가 궁금합니다 !! ++++ 현재 깃허브 코드에 채팅 가드 관련 코드는 빠져있는데 혹시 추가된 코드가 따로 있는지 알수 있을까요 ? 혹은 채팅 관련 가드에 대한 코드가 빠진 이유가 있는지도 궁금합니다.!

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
최영철 댓글 1 좋아요 0 조회수 426

인기 태그

인프런 TOP Writers

주간 인기글