inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

깃허브 코드 업로드

해결됨

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

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

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

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 조회수 493

Querydsl SQLExpressions에 listagg 관련 질문

미해결

안녕하세요, 김영한 님. Querydsl SQLExpressions에 listagg 관련하여 질문이 있습니다. 현재 Projections.constructoer 방식으로 조회한 결과를 Dto로 받고있는데요, SQLExpressions.listagg(컬럼, ",").withinGroup().orderBy(컬럼).getValue().as("listaggs") 로 select후 Dto에서 String으로 못받는데 String으로 받으려면 어떻게 해야 될까요? 방법이 없는걸까요? 이미 같은 질문을 남긴 글이 있는데 미해결 상태라 다시 한번 글 올려 봅니다. 이방법을 사용하는 이유는 A 테이블, B 테이블이 있는데 1:N의 관계 입니다) A테이블 조회시 Response에는 B테이블의 컬럼 하나도 추가로 목록에 보여줘야 하는데 그럴때 B테이블의 해당 컬럼의 값이 다른 데이터가 2개 이상일시 A정보가 2건이 나오게 되서 (페이징 처리시에도 총 카운트와 페이징 처리가 제대로 되지 않습니다.) 한 row로 보여지게 하기 위해 사용하려 Querydsl SQLExpressions에 listagg 사용하려는데, String으로 받을수가 없더군요... 혹 Querydsl SQLExpressions에 listagg 아니더라도 다른 방법이 있을까요?

  • jpa
  • querydsl
  • java
skyghy3342 댓글 1 좋아요 0 조회수 1027

트랜잭션 사용 유의점

해결됨

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

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

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

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

해결됨

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

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

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

deleteUser 관련 질문

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

현재 코드에서는 name을 기준으로 delete를 하는데요, findByName(name)을 이용한 코드에서 DB 안에 같은 이름의 회원이 2명 이상인 경우엔 오류가 생깁니다. 그 이유가 find는 return 개수가 1건이기 때문에 rollback 된다고 생각했습니다. 이 버그를 수정하기 위해서 deleteUser의 파라미터는 Long id 로 수정했는데, 또 안 되더라고요...? findAll을 쓰면 같은 이름을 가진 모든 회원이 삭제될 것 같고... 어떻게 하면 동명이인의 회원 중에서 내가 원하는 한 회원만 삭제할 수 있나요? + 추가 방금 다른 학생분의 질문과 답변을 읽었습니다. 같은 내용의 질문인 것 같네요! 그러면 파라미터를 Long id 로 변경하되, 현재 실습 중인 UI에서도 코드를 수정해야하는 부분이 있기에 삭제가 안 되는 게 맞다고 이해하면 될까요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
alstjs 댓글 1 좋아요 1 조회수 228

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

미해결

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

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

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

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 조회수 464

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

해결됨

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

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

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

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 조회수 522

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

미해결

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

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

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

안녕하세요 리액트에서 fetchUser를 이용해 로그인이 되어있는지 검증하려고 합니다

해결됨

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

리액트에서 fetchUser를 이용해 로그인이 되어있는지 검증하려고 하는데 로그인api를 호출 후 fetchUser를 호출하면 Unauthorized에러가 납니다 헤더에 토큰이 저장되지 않아서 그런걸까요?

  • javascript
  • node.js
  • docker
  • rest-api
  • nestjs
  • graphql
  • react
김선규 댓글 1 좋아요 0 조회수 324

getPostById를 다른 함수에서 사용

미해결

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

안녕하세요 강사님 CRUD를 위한 API를 생성하는 과정에서 의문이 생겨 질문 드립니다. Post부분에서 getPostById 함수를 구현을 했는데, 다른 함수들에서 getPostById와 동일한 로직이 필요한 것을 발견했습니다! 예를 들어, update 또는 delete 함수를 구현할 때, id에 맞는 post를 검색하고, 만약 존재하지 않는다면 에러를, 존재한다면 post를 반환하는 로직이 필요합니다. 근데 getPostById 함수가 그 로직을 그대로 갖고 있기 때문에 다른 함수들에서 getPostById 함수를 가져다 사용해도 되나 해서 여쭤봅니다. 이런식으로요! 코드 가독성 측면에서는 더 좋아보이긴 하지만, 이게 안티패턴인지 아닌지를 모르겠기도 하고, 제가 모르는 문제가 있나 싶어서 여쭤봅니다! 감사합니다!

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
복돌 댓글 2 좋아요 0 조회수 511

npm 대신 yarn을 사용하는 이유가 있나요?

미해결

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

yarn을 사용했을 때 compatibility 문제가 있을 수 있다고 아는데 그럼에도 불구하고 npm 대신 yarn을 사용하시는 이유가 궁금해서 질문 남깁니다. 질 좋은 강의 감사합니다.

  • javascript
  • typescript
  • rest-api
  • nestjs
  • backend
wonji shin 댓글 1 좋아요 0 조회수 728

트랜잭션 전파속성, 데이터 소스

해결됨

재고시스템으로 알아보는 동시성이슈 해결방법

안녕하세요. 강의 잘 보고 있습니다. 의문이 생겨 질문을 남깁니다. 트랜잭션 전파속성을 REQUIRES_NEW로 해서 새로 생성한 이유가 있을까요? 그냥 REQUIRED로 하면 안되나요?? 강의 내에서 데이터소스를 분리하는 것을 추천해주셨는데, 커넥션 풀 사이즈를 늘리면 안되나요?? 감사합니다.

  • java
  • spring
  • 동시성
rhkdals195 댓글 2 좋아요 0 조회수 665

안녕하세요 08-02-nestjs-with-graphql 폴더실행시에러

해결됨

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

안녕하세요 해당영역 학습중인데 서버실행시 자꾸 Error: Cannot find module '@apollo/server' 이런에러가 발생됩니다 그래서 node_modules 디렉토리 삭제후 다시 설치해보고 yarn add apollo-server 명령어를 사용해서 설치도해보았는데도 동일한 증상입니다..ㅠ 그래서 앞부분 학습을 못하고잇어요 ㅠ 현재 버전은 이러합니다 !

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

식별 관계랑 비식별 관계

해결됨

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

안녕하세요 강의 끝까지 잘봤습니다!!! 강의 시청 후 포트폴리오용 프로젝트 설계 중에 식별 관계에 대해 의문이 생겨서 질문합니다! 우선 식별 관계로 구성 시 자식 테이블에 데이터를 넣기 전에 부모 테이블에 데이터가 필수적으로 존재해야 한다고 알고 있습니다. 이는 개발자가 실수로 데이터를 입력하는 것을 막아줌으로써 데이터 정합성을 DB에서도 체크할 수 있지만, 만약 요구사항이 변경된다면 테이블의 데이터와 구조를 모두 변경해야하는 불상사가 발생할 수 있다고 알고 있습니다. 그렇다면 굳이 식별 관계로 설정할 필요가 있나요?? 그냥 전부 비식별 관계로 설정하면 안될까요? 포트폴리오에 올릴 프로젝트를 만드는 중이라 정석대로 식별 관계로 설정해야 하나 싶은데, 아직 뭐가 뭔지 잘 모르는 상태에서 괜히 복잡하게 식별 관계로 설정하는게 맞는건가 잘 모르겠어서요ㅜㅜ

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

Naver Login시 권한에 대해 질문이 있습니다

미해결

스프링 시큐리티 OAuth2

CustomAuthorityMapper 클래스에서 강사님과 코드는 동일하나 authorities가 넘어올시에 위와 같이 넘어옵니다. 그래서 강사님 영상과 다르게 ROLE_USER만이 authority에 대해서 담기게 되고 위의 사진은 hasRole 권한을 해제하여 찍어본것입니다. /api/user에 진입이 불가합니다 코드는 동일한데 뭐가 문제일까요,,,? 강사님의 네이버 로그인시는 response를 안벗기고도 진입이 가능해서 질문드립니다 package io.security.oauth2.sociallogin; import lombok.RequiredArgsConstructor; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.authority.mapping.GrantedAuthoritiesMapper; import java.util.Collection; import java.util.HashSet; import java.util.Set; public class CustomAuthorityMapper implements GrantedAuthoritiesMapper { private String prefix = "ROLE_"; @Override public Set<GrantedAuthority> mapAuthorities(Collection<? extends GrantedAuthority> authorities) { HashSet<GrantedAuthority> mapped = new HashSet<>(authorities.size()); for (GrantedAuthority authority : authorities) { mapped.add(mapAuthority(authority.getAuthority())); } return mapped; } private GrantedAuthority mapAuthority(String name) { if(name.lastIndexOf(".") > 0){ int index = name.lastIndexOf("."); name = "SCOPE_" + name.substring(index+1); } if (!this.prefix.isEmpty() && !name.startsWith(this.prefix)) { name = this.prefix + name; } return new SimpleGrantedAuthority(name); } }

  • java
  • spring
  • spring-boot
  • oauth
hangs0908 댓글 2 좋아요 0 조회수 591

인기 태그

인프런 TOP Writers

주간 인기글