@JoinColumn() @OneToOne(() => ProductSalesLocation) productSaleslocation: ProductSalesLocation; 코드가 들어가면 import { JoinColumn, JoinTable } from 'typeorm/browser'; 위 처럼 import가 되고 아래와 같은 오류가 뜹니다. Join Column OneToOne 부분만 지우고 코드를 돌리면 잘 돌아가는데, 저것을 추가하는 순간 아래와 같은 오류가 뜹니다. 이유를 알 수 있을까요? 16-01-mysql-relation2/node_modules/typeorm/browser/index.js:3 import "reflect-metadata"; ^^^^^^ SyntaxError: Cannot use import statement outside a module at internalCompileFunction (node:internal/vm:73:18) at wrapSafe (node:internal/modules/cjs/loader:1176:20) at Module._compile (node:internal/modules/cjs/loader:1218:27) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1308:10) at Module.load (node:internal/modules/cjs/loader:1117:32) at Function.Module._load (node:internal/modules/cjs/loader:958:12) at Module.require (node:internal/modules/cjs/loader:1141:19) at require (node:internal/modules/cjs/helpers:110:18) at Object.<anonymous> (/Users/hychoi/WebstormProjects/backend-study/class/16-01-mysql-relation2/src/apis/products/entities/product.entity.ts:3:1) at Module._compile (node:internal/modules/cjs/loader:1254:14)
안녕하세요. 부트캠프 백엔드 강의를 수강하고 있습니다. 강의 [섹션8. ORM활용 API구현 > 상품카테고리 등록 API] 에서 질문이 있습니다. ProductCategory 생성 API를 실행하면, ProductCategory의 Metadata가 없다는 오류가 뜹니다 강의자료(노션)의 코드를 그대로 copy&paste 해줘도 동일한 오류가 나옵니다. 상품카테고리 등록 API 통하여 {name} 인수는 제대로 서버에 들어옵니다. (Console.log에 제대로 나와요) 디버깅해보니 아래 코드에서 에러가 발생합니다. const result = await this.productCategoryRepository.save({ name }); => 위 코드를 주석처리하면 오류발생 없이, DB 테이블들이 정상적으로 생성됩니다. {name} 에 인수도 잘 들어오는데, 터미널에서 보면 mysql 쿼리문도 생성이 안됩니다. 제가 어떤 부분에서 수정을 해줘야할까요? 댓글 부탁드립니다~ 좋은강의에 항상 감사드립니다!
MySQL이나 H2 에서 TRUNCATE TABLE 시 AUTO_INCREMENT 컬럼값도 1로 초기화되는 걸로 알고 있습니다. 그런데 강의에서는 TRUNCATE 후 AUTO_INCREMENT 컬럼인 ID 를 1부터 다시 시작하게 하는 쿼리를 추가하셔서 어떤게 맞는건지 헷갈립니다 좋은 강의 감사합니다
안녕하세요, 강의를 모두 들었고 정말 알차고 재밌게 다 들었습니다. 감사드립니다! 복습을 하다보니 실무 관점에서 몇가지 궁금한 부분들이 있는데요!! 1) JpaRepository 를 구현하는 구현체로 기본적인 CRUD 등 (ex. save(), saveAll() 등) 사용한다면, 이 부분도 별도 테스트를 작성하시나요? 전 이미 제공된 기본 메소드라 테스트 안해도 될 것 같다고 생각드는데 강사님은 실무에서 이부분도 하시는지 궁금합니다. 2) update/delete를 하게되면 저는 보통 void로 리턴값 없이 HttpStatus.ok 코드 정도만 보내곤했는데요. ApiResponse<Void> 이렇게 해서 보내도 무관할지 아니면 처리된 id값 정도라도 응답데이터에 실어서 보내는게 좋은가요? 3) 클라이언트에게 response하고 싶은 데이터가 API마다 다를 수 있는데 그럴때 서로 다른 Response DTO를 각자 만들어서 반환하시는 편인가요?? 제가 질문한 부분들은 할려면 다 할 수 있지만 좀 더 실무적인 관점에서의 방법이 궁금해서 여쭤봅니다! 감사합니다!
안녕하세요 데이터 통신 실습 중에 질문이 생겨 남깁니다. create board 실행 시 리턴값으로 number를 지정했을 때 나오는 게시물의 수와 fetchboardscount 실행 시 리턴값이 다른 이유가 궁금합니다. createboard의 리턴값도 몇 번째 게시물로 생성된 것인지 알려주므로 둘 다 게시물의 개수를 알려주는 게 아닌가요 ?
안녕하세요! PresentationLayer 테스트(1) 수강하며 문득 든 궁금증이 있어서 질문을 드립니다. 강의 36:03 쯔음에서 Product 가 하나도 저장되지 않은 상태를 테스트할 때, 새로운 Product 의 최신 번호를 조회하게 되면 "001" 이 되는 과정에서 ActiveProfile 을 test 로 해주지 않아 DB에 데이터가 임의로 들어가 있던 것 때문에 테스트 통과가 되지 않았는데요. 그러면 그 전에 진행했던 createProduct 테스트의 given에서 Product 를 하나 저장한다면 여기서도 ActiveProfile 이 test 이지 않았던 상태였기 때문에 저장한 데이터가 4번째 데이터가 되어야 하고 그랬다면 테스트 통과가 안 되어야 하는게 맞지 않았나..? 하는 갑작스러운 의문이 들었습니다. 제가 놓치고 있는게 무엇일까요?
안녕하세요 강사님, 우선 꿀팁 가득차있는 강의 너무너무 잘 들었습니다. Spring REST Docs 관련해서 질문이 있습니다. 강의에서는 이미 레이어별로 테스트 코드를 작성하였는데요. Spring REST Docs 적용하면서 별도의 ProductControllerDocsTest 클래스를 만들어 createProduct()의 동일한 테스트 코드가 문서를 위해 또 들어가는 것 같아 관리해야할 테스트 코드가 두배가 되는게 아닌가 궁금해서 질문드립니다! 실무에서는 이렇게 테스트 전용 테스트코드와 문서용 테스트 코드를 별도 분리하는지, 아니면 둘을 함께 포함하여 하나로 작성하는 방식인가요? ~ 감사합니다.
안녕하세요~ 양방향 매핑을 사용하면 엔티티 간의 결합도를 높이기 때문에 가급적 단방향으로 만들면 좋다는 의견도 많은 것 같더라구요. 심지어는 양방향 매핑을 만들어야 한다면 엔티티가 아니라 id 값을 넣어서 참조를 하는게 더 좋다는 의견도 있구요. 강의에서는 양방향 매핑을 사용하셨는데 실무에서도 자주 양방향 매핑으로 설계하시나요? 사용하신다면 이러한 단점이 있지만 편의성이 더 크기 때문인가요?
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요 선생님. 강의 정말 재밌게 잘 듣고 있습니다. 이번 강의에서는 실제 비즈니스 로직으로 사용 될 createOrder() 로직을 작성하고 오로지 test 를 위한 createOrder(LocalDateTime currentDateTime) 메소드를 추가로 작성하였는데 이처럼 오로지 테스트를 위한 메소드를 작성해도 괜찮은 것인지 궁금 해서 질문을 남겨봅니다 ! 다른 개발자라면 처음 봤을 때, 같은 이름의 메소드가 두개라서 만약 해당 메소드를 호출하는 경우 직접 코드를 확인해봐야 하는 불편함이 있을 것 같은데 이런 경우 어떻게 해결하나요??
유익한 강의 만들어주셔서 감사합니다. 무분별하게 FakeRepository를 만들면서 실제 프로덕션 코드에서 작동하는것과 똑같이 내가 FakeRepository를 만들었을 거란 확신이 없이 테스트를 작성하던 와중에 이 강의를 보고 좀 깨우친 바가 많았습니다. 해당 강의를 듣다가 이 케이스에서는 어떻게 검증하기 쉽도록 개선해볼 수 있을까 해서 질문드립니다. 인증 코드라는 도메인 객체가 있습니다. 인증코드는 만료시간이라는 속성을 가지고 있고, isExpired()라는 메서드를 통해 해당 인증코드가 만료되었는지 확인할 수 있습니다. public boolean isExpired() { return LocalDateTime.now().isAfter(expirationTime); } 강의를 듣기 전에는 이런 식으로 작성했습니다. 그런데 이런 식으로 작성하니 테스트 코드를 짜려고 하면 Fixture 설정 시 LocalDateTime.now ()를 사용해서 만료일자를 설정해야 한다는 생각이 듭니다. 이런 경우에도 만료되었는지 검증할 수 있는 시간을 파라미터로 받도록 리팩토링해주는 것이 맞을지 궁금합니다!