묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
Record 타입 질문
interface IProfile { name: string; age: number; school: string; hobby?: string; } type eee = "철수" | "영희" | "훈이"; type fff= Record<eee, IProfile>;fff가 key가 철수,영희,훈이고 value가 IProfile 인것은 이해하는데, 이게 철수,영희,훈이가 뭔 타입을 말하는 건지 모르겠고,이게 뭔 의미인지도 잘 모르겠어요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
강의를 다 듣고 어떻게 공부해야 할지 궁금합니다.
Q1. nest.js 같은 라이브러리들을 자유자재로 써야 하나요?Q2. docs를 따로 보면서 사이드 프로젝트를 만들며 공부해야 하나요? 아니면 또 다른 강의를 구매해서 공부해야하나요? 기초적인 지식은 어느정도 감이 잡힌 것 같은데, 세부적인 설정 부분이나 고급 기능들은 어떻게 접근할지 잘 모르겠습니다. 강사님은 어떻게 공부하시나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
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.tsimport { 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() 제가 찾은 방법은 여기까지 인데요.다른 방법을 찾지 못해 질문 드립니다.;;;;
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
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가 왜 뜬건지 모르겠어요.분명 선생님께서는 안 뜨는데
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
nestjs 해당 모듈을 찾을 수 없습니다
import {~} from '@nestjs/common' 에서 '@nestjs/common' 모듈 또는 해당 형식 선언을 찾을 수 없습니다.ts(2307) 라고 뜨는데 뭔가 설치해야 될게 있나요? vscode를 초기화 하고 yarn,express,node 필요한 것만 설치하고npx @nestjs/cli new qqq 만 설치했습니다혹시 누락된게 있나요
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
인젝션 스코프 에러
@injection() 안에 {scope:scope.)라고 입력하면 default,request,transient 를 선택하는 칸이 안 뜨고sco 라고 입력한 이 상태에서 ctrl +I 눌러도 scope가 안 나와요
-
미해결Practical Testing: 실용적인 테스트 가이드
@NotNull 관련 질문 드립니다.
안녕하세요.먼저, 강의 잘 듣고 있습니다. 강의 따라하던 중 아래 이슈가 발생해서 문의 드립니다. 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 내용은 어떻게 수정하면 된느지 궁금합니다. 확인 부탁드립니다~
-
해결됨Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
소형 테스트 실행 시 빌드 타임은 어떻게 극복하셨는지요
강의를 굉장히 감명 깊게 보고 Spring 기반으로 되어 있는 레거시 프로젝트에 도메인을 분리하고 유닛 테스트를 넣는 작업을 하고 있습니다. 여기에서 가장 답답한 게 단순한 유닛 테스트임에도 빌드 타임을 그대로 기다려야 한다는 점인데요. 비록 빌드 캐시 덕에 아주 오래 걸리는 건 아니긴 해도 몇십 ms면 끝날 테스트를 몇 초씩 기다려야 하는 점이 많이 답답합니다. 시간 상으로는 인메모리 db를 띄우는 것과 별 차이 없는 것 아닌가? 하는 생각이 들 정도예요. (물론 테스트 코드를 작성하기 쉬운 구조가 좋은 코드 구조라는 명제에는 이견이 없기 때문에 별 차이가 없다 하더라도 계속 진행할 예정입니다.)선생님께서도 담당하시던 시스템에 유닛 테스트를 붙이는 작업을 하셨다고 들었는데 이러한 부분은 어떻게 극복하셨는지 궁금합니다.
-
미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
summernote를 적용하고 이미지를 업로그하면 모바일에서 볼때는 이미지가 크게 나오는데 어떻게 해야 되나요?
안녕하세요.섬머노트 적용하는 방법을 알려주셔서 게시판을 만들었는데요. 컴퓨터로 볼때는 이미지가 화면에 꽉 차게 나오던데요. 모바일로 게시판에 접속하면 이미지파일이 엄청 크게 나오더라고요.이미지 크기가 변경이 안되고 그대로인것같은데요.이미지도 반응형으로 만들려면 어떻게 해야 되나요?검색하면 이미지를 반응형으로 만드는 방법이 있긴한데요. 섬머노트에는 어떻게 해야될지 모르겠더라고요. 화면이 작아지면 이미지 크기고 작아지게 할려면 어떻게 해야 되나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
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 안에서 전부 주황색으로 나오네요. 수업과 같이 예쁘게 표시 되려면 따로 설정해야하는 것이 있을까요?제 에디터 모습입니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
graphql에서 restapi로 변경
안녕하세요! 강의에서 nestjs와 graphql로 구현을 하셨는데요, 이 걸 restapi로 바꿔서 구현해보고자 합니다. 지금 일단은 강의코드에서 api를 rest로 하나씩 바꿔보는중인데 혹시 typeORM이나 nest내의 다른 설정들도 바꿔야만 하는지 간략하게나마 가이드해주시면 감사하겠습니다!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
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명이 테이블 명 처럼 사용되는 것이죠?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
async, await를 사용하는 이유?
product.service.ts에서 create, findOne, findAll을 만들때는 async, await를 사용하지 않았습니다. 그리고 create 만들 때 nest에서는 이걸 호출하는 곳(resolver)에서 자동으로 기다리고 있기 때문이라고 하셨는데요.다만, 시간이 걸리기 때문에 Return type은 Promise<Product>로 했고요. 근데 update, delete를 하실때는 async, await를 사용하셨는데요.어떤 이유가 있을까요??
-
미해결Practical Testing: 실용적인 테스트 가이드
궁금한게 있습니다.
언제 @MockBean 쓰고@Mock + @InjectMocks 을 이용하나요?? @MockBean은 자동으로 DI해주니 @MockBean 쓰는게 낫지 않나요?? 제가 설명해주신걸 놓친거 같은데..다시한번 설명 부탁드리겠습니다.미리 감사드릴게요.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
안녕하세요 선생님, 제가 강의를 다듣고 난후 코드랑 학습자료보고 복습식으로 공부하는게 좋을것 같아서요, 혹시 수업시간에 작성한 예제코드들은 어디서 받을수 있나요?
안녕하세요 선생님, 제가 강의를 다듣고 난후 코드랑 학습자료보고 복습식으로 공부하는게 좋을것 같아서요, 혹시 수업시간에 작성한 예제코드들은 어디서 받을수 있나요?
-
미해결Practical Testing: 실용적인 테스트 가이드
강의 내용 블로그 포스팅 문의 드립니다.
안녕하세요 강사님, 다름이 아니라 강의 내용을 블로그(벨로그) 글로 정리해서 기록해도 될까 여쭤봅니다. 코드, 내용을 사용하고 싶은데 허락해주실까요? ㅠ 출처글을 항상 남기겠습니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
안녕하세요!
훈훈한 Javascript섹션4-for문과 while문마지막 예제에서let i = 0; while(i < 10) { console.log(i) i = i + 1 }결과 10이 출력되는건 반복 횟수이고 0~9 까지 출력이 맞는거 같은데 확인 부탁드립니다!
-
미해결Practical Testing: 실용적인 테스트 가이드
공통관심사 테스트 가이드
안녕하세요. 우빈님질문이 있습니다! AOP, Interceptor... 와 같은 공통 관심사를 테스트할 때는 보통 어떤 전략을 갖고 테스트 코드를 작성하나요?예를 들어 아래와 같은 요구사항이 있다고 가정합니다.22시 이후에는 모든 요청에 대해서 예외를 발생시킨다. 저라면 모든 Controller에 check22hours()라는 로직을 AOP를 사용하여 적용할 것 같은데요.이때 순수하게 check22hours()라는 단위 테스트만 작성하면 되는 것 일까요? 아니면 AOP 자체가 의도한대로 동작하는지 테스트 코드를 작성하는 것이 바람직한 것 인가요? 감사합니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
테스트 환경 통합 질문
안녕하세요. 테스트 환경 통합 강의를 보다가 궁금한 사항이 있어서 질문드립니다. 강의 내용처럼 통합 테스트를 수행할 때 여러번 Spring 서버를 띄우는 것을 효과적으로 개선하기 위해 TestSupport 추상클래스를 상속받아 Repository/Service 계층 테스트시에 통합된 환경을 구축하는게 더 좋은 것은 이해했는데요.Controller 테스트의 경우, 강의 내용처럼 따로 스프링을 띄우지 않고 @WebMvcTest로만 테스트코드를 작성하는 경우라면 공통 추상 클래스를 구현하는게 비효율적일수도 있을 것 같아서 궁금증이 생겼습니다.@WebMvcTest(Controllers="Controller.class") 형식으로 컨트롤러 클래스들을 명시해 줘야 하는데, 클래스가 수십개로 많아질수록 매번 추가해야 하고, Controllers에 많은 클래스를 넣어야 하고(패키지 단위로 지정한다든가 등의 방식은 없는것 같더라구요), 각 클래스에서 사용하는 MockBean이 많아질수록 필드가 많아져서 본문이 길어 보기 힘들수도 있을 것 같아서요. @SpringBootTest처럼 서버를 띄우는 비용이 발생하지 않으므로, 각각의 컨트롤러 테스트마다 명시적으로 @WebMvcTest를 사용하고, 해당 클래스에서 사용할 Mockbean 또한 명시적으로 지정하는 방식도 괜찮을까요? 실무적인 관점으로 볼 때, 제 생각대로 Controller 클래스의 테스트는 통합하지 않고 각각 구현하는 건 어떨지 궁금합니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
TDD 질문입니다.!!
우빈님 커뮤니티나 유튜브에서 잘보고 있습니다.ㅎㅎTDD관련해서 질문이있는데, 프로덕션 코드 이전에 테스트 케이스를 먼저 작성할때 성공/실패 케이스에 대해서 미리 작성하고 "리팩토링"단계에서 앞서 작성한 케이스를 성공하도록 프로덕션 코드를 구현하는 순으로 하나요?아니면, 성공 케이스만 작성하고 리팩토링 단계에서 프로덕션 코드를 구현하고, 이후 실패 케이스를 작성하고 프로덕션 코드를 수정하는 순으로 하나요?!