inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

학습자료 링크 강의에 해당하는 페이지로 연결

해결됨

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

수업자료 링크가 상단 디렉토리로 되있는데, 강의에 해당하는 페이지로 연결 되게, 해주시면 감사하겠습니다.

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

certbot과 git충돌 질문자 입니다.

미해결

비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지

안녕하세요. certbot 실행 이후 git clone이 되지 않아 질문을 남겼었던 질문자입니다! 당시 얼추 인도해주신 솔루션이 인스턴스 설정 초기화 후 새로 설치 였던터라 시간이 걸릴것으로 예상이 되어서 우선순위를 좀 뒤로 미루고, 다른 일들을 하다가 오느라 이제야 다시 질문의 일로 돌아왔습니다. 그런데 이제와 생각해보니 certbot 과 git의 충돌이 유력한 원인이라면... certbot을 재설치? 재실행? 하면 되지 않을까 싶어서 인터넷에 검색을 해봤는데 자동갱신에 관한 글뿐이 없더군요.. 해서 혹시 certbot을 날렸다가 다시 설치하거나 certbot의 설정파일들이 임시로 작동하지 않도록 하는 방법이 있을까요? 만약 임시 비활성화가 가능하다면 그 사이에 git clone을 진행하고, 다시 활성화 하면 될것 같아서.. 혹시 아시는 방법이 있으실지 여쭤봅니다

  • HTML/CSS
  • javascript
  • aws
  • git
  • mysql
  • rest-api
  • github
전예준 댓글 1 좋아요 0 조회수 321

강사님 accessToken만료시 html에서의 에러표시에 대한 질문입니다!

해결됨

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

강사님 제가 토스페이로 테스트를 진행중에 결제성공 메시지가 나오는데 db에 데이터 변경점이 없어서 확인해보니까 토큰이 만료된 상태더라구요. 토큰 만료됐을때 graphql에서는 unauthorization에러가 나왔는데 html liveServer에서는 따로 알 수 있는 방법 없을까요? 그리고 실제 서비스라면 accessToken이 만료되었을때 자동으로 refreshToken이 accessToken으로 변환되면서 고객이 느낄때는 결제 진행에 아무 무리없는 상태로 표시되나요? 테스트할때는 refreshToken도 직접 요청해서 받아오고 다시 header에 세팅하고 테스트하는거라서 이게 실제 서비스에서는 어떤 로직으로 자동화되는지 궁금합니다.

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
건태 댓글 1 좋아요 0 조회수 366

docker-compose build 했을때 에러

해결됨

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

섹션 27. Nest.js 08-06 Docker 패키징 강의를 따라서 docker-compose build 를 했더니 아래와 같은 에러가 나옵니다. > [5/6] RUN yarn install: #0 2.639 yarn install v1.22.19 #0 3.290 [1/4] Resolving packages... #0 5.360 [2/4] Fetching packages... #0 66.77 info There appears to be trouble with your network connection. Retrying... #0 100.1 info There appears to be trouble with your network connection. Retrying... #0 141.5 error @graphql-tools/merge@9.0.0: The engine "node" is incompatible with this module. Expected version ">=16.0.0". Got "14.21.3" #0 141.5 error Found incompatible module. #0 141.5 info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command. ------ failed to solve: process "/bin/sh -c yarn install" did not complete successfully: exit code: 1 챗gpt 한테 물어보니까 이 오류는 @graphql-tools/merge 모듈의 버전 9.0.0이 설치되지 않았으며, 해당 모듈은 Node.js 엔진의 버전이 16.0.0 이상이어야 작동한다는 것을 의미합니다. 그러나 현재 사용 중인 Node.js 버전은 14.21.3이기 때문에 설치할 수 없다는 오류입니다. 라고 하길래 Dockerfile 의 FROM node: 14 이 부분을 FROM node: 16 으로 수정하고 다시 docker-compose build 를 했더니 에러가 안나는데 이렇게 node를 16으로 수정하고 강의를 따라가도 문제가 없을까요?

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

TypeScript Utility 부분 질문드립니다

해결됨

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

Utility 부분 강의에서 type의 Partial, Required 등을 이용하여 모든 프라퍼티를 옵션으로 바꾸거나 필수로 바꾸는 방법을 가르쳐주셨는데, 특정 하나만 옵션으로 하거나, 특정 하나만 필수인자로 바꾸는 방법은 없을까요? interface IProfile { name: string; age: number; school: string; hobby?: string; friend:? string; } 으로 정의했다고 하면 여기서 school만 옵션으로 바꾸고 싶다면, 방법이 없을까요?

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
장정욱 댓글 1 좋아요 0 조회수 338

Cannot resolve symbol 'EntityModel' (+ RepresentationModel)

미해결

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

두 가지 질문이 있습니다. EntityModel을 찾을 수 없다고 나오는데 도움을 받을 수 있을까요?? 공식문서에는 RepresentationModel를 상속하여 기능을 추가하라고 가이드하고 있는데, EntityModel와 다른가요? 1. cannot resolve symbol 'EntityModel' 제 코드와 설정은 아래와 같습니다. build.gradle plugins { id 'java' id 'org.springframework.boot' version '3.0.0' id 'io.spring.dependency-management' version '1.1.0' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' repositories { mavenCentral() } dependencies { // web 라이브러리 implementation 'org.springframework.boot:spring-boot-starter-web' // JPA implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // JDBC implementation 'org.springframework.boot:spring-boot-starter-jdbc' // 타임리프 implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' // TEST testImplementation 'org.springframework.boot:spring-boot-starter-test' developmentOnly 'org.springframework.boot:spring-boot-devtools' // VALIDATION implementation 'org.springframework.boot:spring-boot-starter-validation' // 롬복 compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' } tasks.named('test') { useJUnitPlatform() } pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.1.0</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>dateanu</artifactId> <version>0.0.1-SNAPSHOT</version> <name>dateanu</name> <description>dateanu</description> <properties> <java.version>17</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-hateoas</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.4.4</version> </plugin> </plugins> </build> </project> application.properties # DATABASE spring.h2.console.enabled=true spring.h2.console.path=/h2-console # spring.datasource.url=jdbc:h2:~/local spring.datasource.url=jdbc:h2:~/local;AUTO_SERVER=true spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa spring.datasource.password= # PORT server.port=9090 # JPA spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect # USE THIS spring.jpa.hibernate.ddl-auto=create # spring.jpa.hibernate.ddl-auto=update // OR THIS # AVOID THIS # spring.jpa.hibernate.ddl-auto=create # spring.jpa.hibernate.ddl-auto=create-drop spring.messages.basename=messages spring.messages.fallback-to-system-locale=false Controller package com.example.dateanu.rest_api; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.support.ServletUriComponentsBuilder; import java.net.URI; import java.util.List; @RestController @RequiredArgsConstructor public class UserController { private final UserDaoService service; // 싱글톤 객체를 생성자주입을 하기 위해 꼭 final이 붙어야한다. @GetMapping("/users") public List<User> retrieveAllUsers() { return service.findAll(); } // GET /users/1 @GetMapping("/users/{id}") public User retrieveUser(@PathVariable int id) { User user = service.findOne(id); if(user == null){ throw new UserNotFoundException(String.format("ID[%s] not found",id)); } // HATEOAS return user; } @PostMapping("/users") public ResponseEntity<User> createUser(@Valid @RequestBody User user){ User savedUser = service.save(user); URI location = ServletUriComponentsBuilder.fromCurrentRequest() .path("/{id}") .buildAndExpand(savedUser.getId()) .toUri(); return ResponseEntity.created(location).build(); } @DeleteMapping("/users/{id}") public ResponseEntity<User> deleteUser(@PathVariable int id){ User user = service.deleteById(id); if(user == null){ throw new UserNotFoundException(String.format("ID[%s] not found")); } return new ResponseEntity<>(user, HttpStatus.OK); } @PutMapping("/users/{id}") public ResponseEntity<User> replaceUser(@PathVariable int id,@RequestBody User user){ User replacedUser = service.replace(id,user); return new ResponseEntity<>(replacedUser, HttpStatus.OK); } @PatchMapping("/users/{id}") public ResponseEntity<User> updateUser(@PathVariable int id,@RequestBody User user){ User updatedUser = service.update(id,user); return new ResponseEntity<>(updatedUser, HttpStatus.OK); } } 어떤 것 때문인지 몇 시간을 구글링하고 디버깅해봐도 해결되지가 않네요 ㅠㅠ ** 2.4.4 version에 hateoas 의존성 추가했으며, Gradle, Maven 모두 refresh 하였습니다. 2. 공식문서에서는 RepresentationModel 을 상속받아 쓰게끔 가이드가 되어있는 것을 확인했습니다. https://spring.io/guides/gs/rest-hateoas/ EntityModel을 사용하는 것과 다른 것인지, 어떤 것이 best practice 인지 알려주실 수 있나요?? ** 이 또한 cannot resolve symbol 'representationmodel' 에러가 발생하네요 ㅠㅠ 감사합니다 :-)

  • rest-api
  • spring-boot
1026baby 댓글 3 좋아요 0 조회수 778

타입명 T, U, V

해결됨

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

// 6. generic 타입 - 3 function getGeneric3<T, U, V>(arg1: T, arg2: U, arg3: V): [V, U, T] { return [arg3, arg2, arg1]; } const result6 = getGeneric3<string, number, boolean>("철수", 123, true); 타입명을 T1, T2, T3 에서 T, U, V 로 줄일 수 있다고 보여주셨는데 T, U, V 는 무엇의 줄인 말인가요? 그냥 의미 없는 알파벳인가요?

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
alice 댓글 1 좋아요 1 조회수 394

export default 함수 예외

해결됨

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

const aa=function (){} const aa=() =>{} const로 시작하는 함수에는 default가 안 붙습니다 이거는 예외사항이라서 오류가 아닌가요?

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

nodemon 실행할 떄

해결됨

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

소스 코드를 수정할 때 nodemon 이용할려면 ctrl + s 눌러서 저장해야 nodemon도 수정된 소스코드를 읽어오나요? 그냥 ctrl +s 안눌러도 소스코드 수정하면 알아서 저장되나요?

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

복습할 때 html,css 공부

해결됨

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

완강하고 다시 복습했을 떄 자바스크립트만 복습해도 되나요? 그리고 깃허브에 올릴떄 배운거 복습한거 올리는 것도 자바스크립트만 올려도 되나요?

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

강사님 graphql과 swagger 관련된 질문입니다!

해결됨

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

RestAPI로 배울때 swagger를 만들었던 경험이 있는데, graphql은 그 자체로 swagger의 역할까지 한다고 생각하면 될까요? 뭔가 swagger가 보기에 더 직관적이고 더 설명서 같은 느낌이 있어서 graphql을 사용하면서도 swagger처럼 만들 수 있는 방법이 있는지 여쭤봅니다!

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
건태 댓글 1 좋아요 0 조회수 761

섹션 20 이메일 템플릿 질문합니다

해결됨

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

섹션 20. 01-07 이메일 템플릿 생성 4 , 23분 35초에서 createUser은 객체를 중괄호에 넣어줬는데 sendTemplateToEmail 하고 checkPhone은 왜 중괄호 안 넣어주나요?

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

리스토어엑세스토큰할때 질문있습니다.

해결됨

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

리프레시를 이용해 엑세스를 재발급할때 메서드가 Post인데 Post를 쓰는 이유가 있을까요? 새로운 리소스를 생성하는것이니까 Post를 쓰는것으로 이해하면될까요?

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

docker 실행시에 에러발생 질문드립니다!

해결됨

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

위에 이미지처럼 에러가 계속 발생하는데 원인을 모르겠습니다 ㅠ..ㅠ

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
건태 댓글 3 좋아요 0 조회수 460

restapi사용시에는 gql-auth.guard와 같이 별도로 가드폴더에 파일을 만들필요없이 그냥 스트레티지폴더에있는거 그대로 쓰면 되는건가요?

해결됨

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

restapi사용시에는 gql-auth.guard와 같이 별도로 가드폴더에 파일을 만들필요없이 그냥 스트레티지폴더에있는거 그대로 쓰면 되는건가요? restapi사용시에는 contxet 변환이 필요가 없어서 이럴경우 가드를 별도로 만들지않고 그냥 스트레티지 그대로 쓰면 되나요?

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

Docker 관련 질문 드립니다

해결됨

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

Dockerfile 에 FROM node 또는 FROM mongo 를 입력하여 도커를 만드는 걸로 배웠습니다. 그런데 FROM node나 FROM mongo라는 명령어를 통해 어떤 운영체제에 어떤 것이 설치되고 실행되는지지 등 해당 명령어에 대한 정보를 어떻게 알 수 있나요? 예를 들면 Dockerfile.mongo 파일에서는 따로 RUN과 같이 프로그램을 실행시키는 명령어를 입력하지 않더라구요. FROM node에서도 따로 yarn이나 우분투를 설치하지 않고서도 이미 포함이 되어있었구요. 도커허브 사이트 들어가서 mongo를 검색해봐도 그냥 mongo 자체에 대한 설명만 있더라구요 ㅠ

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
장정욱 댓글 1 좋아요 0 조회수 351

String cannot represent value 에러 여쭤봅니다!

해결됨

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

강사님 파일 업로드 시에 파일은 정상적으로 다 업로드가 되는데 에러메시지가 계속 표시되서 여쭤봅니다!!

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
건태 댓글 2 좋아요 0 조회수 836

아랫글 질문자입니다.

미해결

비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지

구체적인 에러코드 알려달라 하셔서 대답글에 알려드렸는데 못보신거 같아서 다시 올려봅니다. fatal: unable to access ' https://github.com/깃유저명/깃프로젝트명.git/ ': Failed to connect to {EC2 PUBLIC IP} port 3000: Connection timed out 이라는 에러메시지 발생했으며, 위 사진에서는 git clone으로 인한 에러이지만 pull로 당겨도 동일 에러가 발생합니다. 답변 기다리는동안 틈틈히 찾아봤는데 결국 해결이 안돼서 다시 여쭤보는점 죄송합니다 ㅠㅠ

  • HTML/CSS
  • javascript
  • aws
  • git
  • mysql
  • rest-api
  • github
전예준 댓글 2 좋아요 0 조회수 270

로드밸런서 관련 질문

해결됨

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

안녕하세요. 로드 밸런서 관련 질문드립니다. 현재 구글 클라우드로 배포를 진행하며 하나의 인스턴스만 사용 중인데 로드밸런서로 어떻게 부하를 분산시켜줄 수 있나요? 강의에서는 그냥 로드밸런서의 사용법을 학습하기 위해 큰 의미는 없지만 사용한 것인지 아니면 인스턴스가 하나라도 로드밸런서를 적용하면 좋은 점이 있는 것인지 궁금합니다.

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
Haewoong Lee 댓글 1 좋아요 0 조회수 251

쿠키 세팅하고 return할때 질문이 있습니다.

해결됨

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

import { Body, Controller, Post, Res } from '@nestjs/common'; import { AuthService } from './auth.service'; import { LoginUserValue } from './dto/cats.request.dto'; import { Response } from 'express'; @Controller('auth') export class AuthController { constructor(private readonly authService: AuthService) {} @Post() async login(@Body() val: LoginUserValue, @Res() res: Response) { const result = await this.authService.login(val); //cookie에 토큰을 담아서 보내줌 다음과 같이 console.log(result.refreshToken); console.log('여기서 못나가네'); res.setHeader( 'Set-Cookie', `refreshToken=${result.refreshToken}; path=/; `, ); console.log('뭐야 여기오네?'); // res.setHeader( // 'Set-Cookie', // `refreshToken=${result.refreshToken}; path=/; domain=localhost; SameSite=None; Secure; HttpOnly`, // ); // res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000'); res.json({ accesstoken: result.accessToken }); } } 먼저, 저는 지금 그래프큐엘을 사용하지않고 restAPI를 사용하며 진도를 따라가고 있습니다. 질문드릴 코드는 위와같이 되어있습니다. 원래는 return을 해주고있었는데 res설정하고 쿠키세팅하고나니까 return이 안먹고 클라이언트에서는 무한대기에 빠집니다. 그래서 혹시나해서 res.json으로 하니까 응답이 또 정상적으로 가더라구요.. 그래서 일단 다음과 같이 코드를 수정해두고 원래대로 return을 사용하고있는데 혹시 정석은 어떻게 해야하는지 알려주시면 감사하겠습니다. 임시 수정 코드 import { Body, Controller, Post, Req, Res } from '@nestjs/common'; import { AuthService } from './auth.service'; import { LoginUserValue } from './dto/cats.request.dto'; import { Response } from 'express'; @Controller('auth') export class AuthController { constructor(private readonly authService: AuthService) {} @Post() async login( @Body() val: LoginUserValue, @Res({ passthrough: true }) res: Response, ): Promise<any> { const result = await this.authService.login(val); //cookie에 토큰을 담아서 보내줌 다음과 같이 res.setHeader( 'Set-Cookie', `refreshToken=${result.refreshToken}; path=/; `, ); // res.setHeader( // 'Set-Cookie', // `refreshToken=${result.refreshToken}; path=/; domain=localhost; SameSite=None; Secure; HttpOnly`, // ); // res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000'); return { accesstoken: result.accessToken }; } }

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

인기 태그

인프런 TOP Writers

주간 인기글