inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

몽고db compost 데이터베이스

해결됨

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

몽고db compose 에서 데이터베이스가 나타나지 않습니다..... localhost로도 했고 아이피로도 바꿔서 해봤는데도 안되고 근데 포스트맨에서는 동작이 잘 되는데 왜그런건가요.....

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

퀴즈06

해결됨

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

backend/index.js 안녕하세요. 퀴즈06을 푸는 도중에 제가 짠 코드가 맞는지 궁금해서 여쭤봅니다 ㅜㅜ.. 우선 signup.js에서 벡앤드 서버로 axios를 통해서 데이터를 보내고 거기서 폰번호가 맞는지 확인하고 토큰을 coolsms 서비스를 통해서 발송하는 코드를 짰습니다. 그 이후에 인증번호와 토큰을 매칭시키고 맞다면 success를 리턴하게 했구 이메일도 비슷한 과정으로 짰습니다. 너무 어렵게 느껴져서 GPT 도움을 통해 코드를 짰는데 이게 맞는지 의심이 되네요 휴.. 혹시 퀴즈에 대한 정답예시이런건 없나요? 아무래도 독학으로 온라인 부트캠프 과정을 밟다보니 포트폴리오는 혼자 해결하는데 좀 어려운 거 같습니다 맞는지도 잘 모르겠고.. 긴 글이지만 성의있게 봐주시면 정말 감사하겠습니다!

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

에러나서 시간을 많이 잡아먹어요

해결됨

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

window용이라서 에러가 나면 검색하느라 시간을 많이 잡아먹어요.기본 1시간 이상 걸리는거 같아요 이걸 감내해야되는 건가요?

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

@Valid 어노테이션에 대한 테스트 질문입니다.

미해결

Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트

안녕하세요. 강의에 매우 깊은 감명을 받고 토이 프로젝트에 말씀해주신 부분들 적용해보고 있습니다. 강의에서 가이드 주신대로 유효성 검증에 대한 테스트도 mock 라이브러리 없이 순수 자바 코드로 해보고 있습니다. 기존 코드에서는 입력값 유효성 검증을 위해 @Valid 어노테이션을 사용했는데요. 스프링부트를 실행시키지 않으니 @Valid 어노테이션이 정상작동을 안해서 테스트를 작성하는데 어려움을 겪고 있습니다....ㅎㅎ 그래서 유효성 검증을 하는 코드를 직접 작성해야 하나 고민하다가 질문을 남기게 되었습니다. 강사님께서는 유효성 검증에 대한 테스트 코드를 작성하는데 어떤 방법을 사용하시는지 궁금합니다. (@Valid는 자바 표준 스펙으로 알고 있어서 스프링을 실행시키지 않아도 방법을 잘 찾아보면 가능할 것 같다 라고도 생각하고 있습니다.)

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
베지밀 댓글 2 좋아요 0 조회수 685

컨트롤러 테스트의 Mock을 통한 Stubbing 관련 질문

해결됨

Practical Testing: 실용적인 테스트 가이드

안녕하세요. 우빈님! 먼저 우빈님의 테스트 강의가 너무나 재미있어, 테스트에 대한 막연한 지식을 구체화하고 테스트 작성 열망을 크게 키울 수 있어 서 감사하다는 말씀을 드리고 싶습니다! 다름이 아니라, Controller 테스트를 위해 @WebMvcTest 를 통해 Service와 Repository를 Mocking하여 단위 테스트의 형식으로 작성 한다는 것을 배웠습니다. 이렇게 배운 것을 사이드 프로젝트에 적용해보며, 의문점이 생겼는데 능력 부족으로 인해 의문이 해결되지 않아 질문을 드리려 합니다. 상황 강의에서 작성한 컨트롤러 테스트 중 일부인 OrderControllerTest의 테스트 메서드는 다음과 같습니다. @DisplayName("신규 주문을 등록한다.") @Test void createOrder() throws Exception { // given OrderCreateRequest request = OrderCreateRequest.builder() .productNumbers(List.of("001")) .build(); // when & then mockMvc.perform( post("/api/v1/orders/new") .content(objectMapper.writeValueAsString(request)) .contentType(MediaType.APPLICATION_JSON) ) .andDo(print()) .andExpect(status().isOk()) .andExpect(jsonPath("$.code").value("200")) .andExpect(jsonPath("$.status").value("OK")) .andExpect(jsonPath("$.message").value("OK")); } 또한, 해당 메서드의 실행 로그를 보면 MockHttpServletResponse 이 다음과 같다는 것을 볼 수 있었습니다. MockHttpServletResponse: Status = 200 Error message = null Headers = [Content-Type:"application/json"] Content type = application/json Body = {"code":200,"status":"OK","message":"OK","data":null} Forwarded URL = null Redirected URL = null Cookies = [] 이후, 저의 사이드 프로젝트의 컨트롤러 테스트를 위와 동일한 방식으로 작성하였지만, 아래와 같이 MockHttpServletResponse의 Body가 빈 채로 응답 이 되어 테스트가 실패하게 되는 문제가 발생했습니다. MockHttpServletResponse: Status = 200 Error message = null Headers = [X-Content-Type-Options:"nosniff", X-XSS-Protection:"0", Cache-Control:"no-cache, no-store, max-age=0, must-revalidate", Pragma:"no-cache", Expires:"0", X-Frame-Options:"DENY"] Content type = null Body = Forwarded URL = null Redirected URL = null Cookies = [] 이때, given()을 통해 Service에 대한 행위를 Stubbing해주니 정상적으로 테스트가 성공 하는 것을 확인했습니다. 문제 파악을 위해 조사한 결과 추측되는 차이점은 다음과 같습니다. 강사님의 프로젝트에서 Controller의 응답 타입은 커스텀 응답 객체인 ApiResponse 를 사용합니다. 저의 사이드 프로젝트에서 Controller의 응답 타입은 HttpEntity를 상속하는 ResponseEntity 를 사용합니다. 질문 Q1. 강사님의 코드를 보면, 아래와 같이 createOrder 메서드에 대한 Stubbing 없이도 정상적으로MockHttpServletResponse의 Body가 응답되어 테스트가 성공합니다. // given ... given(orderService.createOrder(any())) .willReturn(OrderResponse.builder() ... // 생략 .build() ); // 없어도 테스트는 성공한다. 저는 given() 절에 @MockBean을 통해 Mock 객체로 설정한 OrderService가 어떤 행위를 해야할지 Stubbing 해주어야 하는 것으로 이해하고 있었는데, 어떻게 Stubbing 없이 Body가 정상적으로 채워져 테스트가 성공한 것인지 궁금 합니다. Q2. Q1과 연관하여 강사님의 코드에서는 ApiResponse 라는 커스텀한 응답 객체를 컨트롤러 메서드의 응답으로 사용하는데, 제 사이드 프로젝트에서의 응답 타입은 ResponseEntity 를 사용하고 있습니다. 이 차이 때문에 발생하는 문제인지 궁금합니다. Q3. 이번 의문점을 통해 컨트롤러 테스트에서 메서드의 행위에 대한 기댓값을 Stubbing하여 검증하는 것이 일종의 답정너(?)와 같은 테스트를 작성하는 것은 아닐까? 라는 생각과 함께, 컨트롤러 테스트 방식에 많은 고민을 해야 하겠다는 다짐을 하게 되었습니다. 이에 대한 우빈님의 생각은 어떠하신지 궁금합니다. 질문이 수준이 다소 떨어지지만, 이 의문점을 해결하고 싶은 마음에 장황하게 나열할 수 밖에 없었음을 양해 부탁드립니다. 답변 기다리겠습니다. 감사합니다!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
  • @webmvctest
  • stubbing
  • @mockbean
lango 댓글 1 좋아요 0 조회수 558

안녕하세요 환경 관련 질문드립니다

해결됨

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

현재 컴퓨터에 업무로 인한 파일들이 많아 용량으로 인해서 파티션을 나누는 용량을 포함해서 아무리 해도 용량 확보가 어려운 상황에.. 본체에 추가적으로 SSD를 추가할 수 없는 상황인데 혹시 현 상황에서 우분투를 외장 SSD에 설치한 뒤에 학습을 진행하여도 문제가 없을까요 ? 혹은 vm웨어를 통한 가상환경에서도 학습에 문제가 없을지 궁금합니다.

  • javascript
  • node.js
  • express
  • docker
  • tdd
  • rest-api
  • nestjs
이종언 댓글 1 좋아요 0 조회수 281

Record 타입 질문

해결됨

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

interface IProfile { name: string; age: number; school: string; hobby?: string; } type eee = "철수" | "영희" | "훈이"; type fff= Record<eee, IProfile>; fff가 key가 철수,영희,훈이고 value가 IProfile 인것은 이해하는데, 이게 철수,영희,훈이가 뭔 타입을 말하는 건지 모르겠고,이게 뭔 의미인지도 잘 모르겠어요

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

강의를 다 듣고 어떻게 공부해야 할지 궁금합니다.

해결됨

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

Q1. nest.js 같은 라이브러리들을 자유자재로 써야 하나요? Q2. docs를 따로 보면서 사이드 프로젝트를 만들며 공부해야 하나요? 아니면 또 다른 강의를 구매해서 공부해야하나요? 기초적인 지식은 어느정도 감이 잡힌 것 같은데, 세부적인 설정 부분이나 고급 기능들은 어떻게 접근할지 잘 모르겠습니다. 강사님은 어떻게 공부하시나요?

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

CORS 에러

해결됨

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

결제 API를 테스트 하던 중 CORS에러를 발견하여 나름대로 수정을 해보려고 했으나.... 헤매고 있어서 질문 드립니다. 우선 에러 메시지가 아래처럼 나왔습니다. (현재 쓰고 있는 에디터가 webstorm이라 혹시나 해서 vscode로 실행했는데요 결국 동일한 에러가 발생했습니다.) 결국 preflight에서 CORS에러가 난건데요. 이를 찾아보니... 프론트/백엔드 모두에서 설정해야 해서 다음과 같이 했습니다. Front --------------------------------------------- 테스트 해보려고 변수를 하드코딩 했습니다. axios.defaults.withCredentials = true; axios.post( 'http://localhost:3000/graphql', // 쿼리 작성 { query: ` mutation { createPointTransaction(impUid: "imp_12345678", amount: 100) { id impUid amount status } } ` }, // headers { headers: { "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhNmQ3NjU5Yy05NzA2LTQ4MDgtOTA0OC02ZjI4YWY4NmNhN2UiLCJpYXQiOjE2OTQwNzI1MjQsImV4cCI6MTY5NDA3NjEyNH0.Uch2B5ewPc6yVsy4LuyOJzAUXEhnypbTxKmtQt6hRBw", } } ) Backend ------------------------------------------------- main.ts import { NestFactory } from '@nestjs/core' import { AppModule } from './app.module' import { ValidationPipe } from '@nestjs/common' import { HttpExceptionFilter } from './commons/filter/http-exception.filter' async function bootstrap() { const app = await NestFactory.create(AppModule) // cors설정 추가 app.enableCors() app.useGlobalPipes(new ValidationPipe()) app.useGlobalFilters(new HttpExceptionFilter()) await app.listen(3000) } bootstrap() 제가 찾은 방법은 여기까지 인데요. 다른 방법을 찾지 못해 질문 드립니다.;;;;

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

utilty 타입 undefined

해결됨

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

interface IProfile { name: string; age: number; school: string; hobby?: string; } type aaa = Partial<IProfile>; aaa에다가 마우스 올려 놓으면 type aaa = { name?: string | undefined; age?: number | undefined; school?: string | undefined; hobby?: string | undefined; } 이렇게 뜨는데 저 undefined가 왜 뜬건지 모르겠어요. 분명 선생님께서는 안 뜨는데

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

nestjs 해당 모듈을 찾을 수 없습니다

해결됨

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

import {~} from '@nestjs/common' 에서 '@nestjs/common' 모듈 또는 해당 형식 선언을 찾을 수 없습니다.ts(2307) 라고 뜨는데 뭔가 설치해야 될게 있나요? vscode를 초기화 하고 yarn,express,node 필요한 것만 설치하고 npx @nestjs/cli new qqq 만 설치했습니다 혹시 누락된게 있나요

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

인젝션 스코프 에러

해결됨

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

@injection() 안에 {scope:scope.)라고 입력하면 default,request,transient 를 선택하는 칸이 안 뜨고 sco 라고 입력한 이 상태에서 ctrl +I 눌러도 scope가 안 나와요

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

@NotNull 관련 질문 드립니다.

미해결

Practical Testing: 실용적인 테스트 가이드

안녕하세요. 먼저, 강의 잘 듣고 있습니다. 강의 따라하던 중 아래 이슈가 발생해서 문의 드립니다. Q1. @NotNull 지정 시, Not-null fields must be initialized 라고 경고창이 뜨며.. Q2. 테스트를 진행하면 아래와 같이 메세지 부분에 기대했던 값 외에.. 추가 적인 스트링이 들어가서 테스트 성공이 되지 않는 것 같습니다. Body = {"code":400,"status":"BAD_REQUEST","message":"Field error in object 'productCreateRequest' on field 'type': rejected value [null]; codes [NotNull.productCreateRequest.type,NotNull.type,NotNull.sample.cafekiosk.spring.domain.product.ProductType,NotNull]; arguments [ org.springframework.context.support .DefaultMessageSourceResolvable: codes [productCreateRequest.type,type]; arguments []; default message [type]]; default message [상품 타입은 필수입니다.]","data":null} 그 외에 @NotBlank, @Postivie 도 유사한 에러가 발생하고 있습니다. Expected :상품 가격은 양수여야 합니다. Actual :Field error in object 'productCreateRequest' on field 'price': rejected value [0]; codes [Positive.productCreateRequest.price,Positive.price, Positive.int ,Positive]; arguments [ org.springframework.context.support .DefaultMessageSourceResolvable: codes ... Q2 의 경우 하여.. 우선은 아래와 같이 문자열을 포함하는지로 수정해서 테스트는 넘어갔습니다. .andExpect(jsonPath("$.message", "상품 가격은 양수여야 합니다.").exists()) Q1 내용은 어떻게 수정하면 된느지 궁금합니다. 확인 부탁드립니다~

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
illhumored 댓글 2 좋아요 0 조회수 793

소형 테스트 실행 시 빌드 타임은 어떻게 극복하셨는지요

해결됨

Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트

강의를 굉장히 감명 깊게 보고 Spring 기반으로 되어 있는 레거시 프로젝트에 도메인을 분리하고 유닛 테스트를 넣는 작업을 하고 있습니다. 여기에서 가장 답답한 게 단순한 유닛 테스트임에도 빌드 타임을 그대로 기다려야 한다는 점인데요. 비록 빌드 캐시 덕에 아주 오래 걸리는 건 아니긴 해도 몇십 ms면 끝날 테스트를 몇 초씩 기다려야 하는 점이 많이 답답합니다. 시간 상으로는 인메모리 db를 띄우는 것과 별 차이 없는 것 아닌가? 하는 생각이 들 정도예요. (물론 테스트 코드를 작성하기 쉬운 구조가 좋은 코드 구조라는 명제에는 이견이 없기 때문에 별 차이가 없다 하더라도 계속 진행할 예정입니다.) 선생님께서도 담당하시던 시스템에 유닛 테스트를 붙이는 작업을 하셨다고 들었는데 이러한 부분은 어떻게 극복하셨는지 궁금합니다.

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
auguster 99 댓글 2 좋아요 1 조회수 833

summernote를 적용하고 이미지를 업로그하면 모바일에서 볼때는 이미지가 크게 나오는데 어떻게 해야 되나요?

미해결

Do It! 장고+부트스트랩: 파이썬 웹개발의 정석

안녕하세요. 섬머노트 적용하는 방법을 알려주셔서 게시판을 만들었는데요. 컴퓨터로 볼때는 이미지가 화면에 꽉 차게 나오던데요. 모바일로 게시판에 접속하면 이미지파일이 엄청 크게 나오더라고요. 이미지 크기가 변경이 안되고 그대로인것같은데요. 이미지도 반응형으로 만들려면 어떻게 해야 되나요? 검색하면 이미지를 반응형으로 만드는 방법이 있긴한데요. 섬머노트에는 어떻게 해야될지 모르겠더라고요. 화면이 작아지면 이미지 크기고 작아지게 할려면 어떻게 해야 되나요?

  • HTML/CSS
  • javascript
  • python
  • django
  • bootstrap
  • aws
  • docker
  • tdd
하용우 댓글 2 좋아요 0 조회수 943

GraphQL Docs 작성부분 백틱 내부 색깔

해결됨

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

const typeDefs = `#graphql input CreateBoardInput { writer: String title: String contents: String } type MyResult { number: Int wrtier: String title: String contents: String } type Query { fetchBoards: [MyResult] #배열 안에 객체 1개 이상을 의미 } type Mutation { # createBoard(writer: String, title: String, contents: String): String createBoard(createBoardInput: CreateBoardInput!): String } `; 이 백틱 사이의 부분이 VSCode 안에서 전부 주황색으로 나오네요. 수업과 같이 예쁘게 표시 되려면 따로 설정해야하는 것이 있을까요? 제 에디터 모습입니다.

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

graphql에서 restapi로 변경

해결됨

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

안녕하세요! 강의에서 nestjs와 graphql로 구현을 하셨는데요, 이 걸 restapi로 바꿔서 구현해보고자 합니다. 지금 일단은 강의코드에서 api를 rest로 하나씩 바꿔보는중인데 혹시 typeORM이나 nest내의 다른 설정들도 바꿔야만 하는지 간략하게나마 가이드해주시면 감사하겠습니다!

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

Join시 정의하는 테이블 명이 entity에 있는것이 맞을까요?

해결됨

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

product.service.ts에서 join을 하기 위해 return this.productsRepository.find({ relations: ['productSaleslocation']}) 이렇게 해주었는데요. 여기에 들어가는 productSaleslocation이라는 테이블 명이 product.entity.ts에서 조인이 되는 대상 컬럼 @JoinColumn() @OneToOne(() => ProductSaleslocation) @Filed(() => ProductSaleslocation) productSaleslocation: ProductSaleslocation 이 부분의 정의 때문에 그렇게 명명하는 것일까요? relation에 들어가는 테이블명은 딱히 정의한 곳을 못찾아서요. 실제 DB상의 테이블 명이랑은 다르고... 만약 제 추측이 맞다면 @OneToOne, @MayToOne을 붙인 Filed명이 테이블 명 처럼 사용되는 것이죠?

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

async, await를 사용하는 이유?

해결됨

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

product.service.ts에서 create, findOne, findAll을 만들때는 async, await를 사용하지 않았습니다. 그리고 create 만들 때 nest에서는 이걸 호출하는 곳(resolver)에서 자동으로 기다리고 있기 때문이라고 하셨는데요. 다만, 시간이 걸리기 때문에 Return type은 Promise<Product>로 했고요. 근데 update, delete를 하실때는 async, await를 사용하셨는데요. 어떤 이유가 있을까요??

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

궁금한게 있습니다.

미해결

Practical Testing: 실용적인 테스트 가이드

언제 @MockBean 쓰고 @Mock + @InjectMocks 을 이용하나요?? @MockBean은 자동으로 DI해주니 @MockBean 쓰는게 낫지 않나요?? 제가 설명해주신걸 놓친거 같은데.. 다시한번 설명 부탁드리겠습니다. 미리 감사드릴게요.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
dev 댓글 2 좋아요 0 조회수 544

인기 태그

인프런 TOP Writers

주간 인기글