묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
CSS 정렬 강의 실습 중
코드 자동저장돼 있고 혹시몰라 수동저장 후 다시 라이브서버 켰는데 박스까지만 만들어지고 정렬이 전혀 되지 않으면서 아무 응답이 없는데 제가 혹시 코드를 잘못 쓴 부분이 있는걸까요?
-
미해결Practical Testing: 실용적인 테스트 가이드
ProductNumber 계산 로직
안녕하십니까! 먼저 항상 좋은 강의 감사드립니다.특히 이번 강의에서는 Transaction에서 readOnly 옵션을 사용하므로써 JPA 최적화를 통해 성능 향상을 이점을 얻을 수 있다와 함께,CQRS 측면을 말씀해 주셔서 좋았습니다!저의 경우는 아직 master/slave DB 구조를 다뤄본적이 없어서 몰랐는데, 이렇게 readOnly 옵션을 사용할 경우 DB endpoint를 구분하여 명시하므로써 master/slave DB 구조를 사용할 수 있다는 측면도 알게되어서 좋았습니다.본론으로 넘어가서, Q1. ProductNumber를 계산하는 로직을 DB에서 최신값을 읽어온 후에 ,그 값을 기반으로 다음 productNumber 값을 계산하는 로직을 저의 경우는 동시성 이슈를 고려하여 , 1.일단 SaveAndFlush()로 Id를 할당받고 2. 그 Id 값으로 만들자 라는 로직을 사용하였습니다.(IDENTITY 전략이므로 테이블당 1부터 Id가 할당되기 때문에 가능)이러한 저의 로직에 문제가 있는지 피드백 주시면 정말 감사하겠습니다.특히 calculateProductNumber() 메소드를 저의 경우는 도메인 주도 전략에 기반하여 서비스의 private Method로 정의하지 않고 , Entity 안에 정의하여 사용하는 편인데, 이러한 스타일에 대해서도 문제가 없을지 여쭤보고 싶습니다.Q2.두번째로 저의 경우는 createProduct() 메소드 테스트를 1.처음 생성일의자리 productNumber로 생성십의자리 productNumber로 생성백의자리 productNumber로 생성1000개를 넘어가면 예외발생으로 구분하여 테스트 하였습니다.그런데 이 테스트를 한꺼번에 돌렸을 땐 직전 테스트로 이미 저장된 Product에 의해 다음 테스트에 영향을 미쳐 일부 테스트가 실패하는 상황이 발생하였습니다.이상황을 어떻게 해결할 수 있을지 질문 드리고 싶고(sleep() 으로 간격을 주어야 할까요,,)또한 이 원인이 테스트를 한꺼번에 실행시킬 경우,각 테스트 메소드가 각 쓰레드로 동시에 실행되기 때문인지여쭤보고 싶습니다! 감사합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
도커 컴포즈 질문드립니다
yml파일,mongo 파일,Dockerfile 만들고docker-compose builddocker-compose up 하고 다른 쉘에서docker ps했는데 아무것도 안뜹니다 파일은 제대로 따라 적었는데도 오류 뜨고 몽고 db는 삭제했고 몽고db 컴패스는 오류걸려서 그냥 삭제했습니다
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
로그인 프로세스 설명 중 질문
해당 장을 설명해주실 때 철수가 1050번째, 영희가 2050번째라고 가정했을때, 수직 파티셔닝 된 데이터베이스 중 어디에 있는지는 미리 알 수 있는 방법이 있을까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
productsSalesLocation.service create method
create({productSalesLocation}): Promise<ProductSalesLocation>{ return this.productsSalesLocationsRepository.save({...productSalesLocation}); }강의 중 위와 같은 코드를 작성해주셨는데, create의 parameter type은 ProductSalesLocation(Entity)의 타입에서 id만 제외하고 사용하는 형태로 작성하는 것이 맞을까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
product entity의 deletedAt type
다음처럼 DeletedDateColumn 데코레이터를 붙인 deletedAt은 db에서 nullable이니까 optional 타입으로 하는 것이 맞을까요? @DeleteDateColumn()deletedAt?: Date; 공식 문서에서는 optional 타입으로 되어 있지는 않네요https://orkhan.gitbook.io/typeorm/docs/decorator-reference#deletedatecolumn
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
POJO 상품 등록 기능 구현하기 강의 질문
안녕하세요.POJO 상품 등록 기능 구현하기 강의의3:58 에서 throw new UnsupportedOperationException("Unsupported addProduct");가 제안으로 바로 뜬 이유를 여쭙니다..!
-
미해결Practical Testing: 실용적인 테스트 가이드
주문한 상품 개수만큼 Stock을 감소시키는 로직
안녕하십니까! 저의 경우는 해당 로직을 stockRepository.findByProductNumberIn()이 아니라,일일이 재고와 관련된 ProductNumber에 대하여 stockRepository.findByProductNumber()로조회하여 decreaseQuantity()를 수행하였습니다. 그렇게 하여도, 동일 Stock의 경우 EntityManager에서 조회해오기 때문에 중복된 쿼리가 나가지 않아 어느정도의 성능 감소를 막을 수 있다고 판단하였고, (물론 In절로 한꺼번에 가져오는것 보단 성능이 덜 나올 것 같습니다)그대신에 , 로직이 직관적이라는 장점이 있을 것 같아서 위와 같이 해당 로직을 작성하였습니다. 이에 대해서는 어떻게 생각하시는지 의견 남겨주시면 감사하겠습니다!
-
미해결Practical Testing: 실용적인 테스트 가이드
요청값으로 넘어온 productNumber의 Product가 재고와 관련있는 상품인지 확인하는 로직 질문
안녕하세요! 강의에서는 해당 로직을 ProductType이 BOTTLE이나 BAKERY인 경우에 한하여 true가 되도록 containsStockType() 메소드를 작성하여 판별 해주셨습니다!혹시 이 경우를 stockRepository.existsByProductNumber() 를 호출하여,재고가 있는 상품들만 필터링 해내는 로직으로 작성하게 되면,주문 상품수가 많을 경우 쿼리가 여러번 나가기 때문에 비효율적이어서,요구사항에 따른 검증 로직을 작성하셨는지 여쭙고 싶습니다!
-
미해결Practical Testing: 실용적인 테스트 가이드
@MockBean, @Mock
@MockBean, @Mock 두 개 사용이 계속 헷갈려서 질문 드립니다. 스프링 서버를 띄워서 테스트 할 때 @MockBean을 사용하는 걸로 알려주셨는데 @MockBean도 결국 Mock 객체를 사용하는 거니 @MockBean 대신 @Mock을 써서 테스트를 해도 될 것 같은데 왜 @SpringBootTest나 @WebMvcTest 어노테이션과 @MockBean을 같이 사용해서 테스트 하는 지 궁금합니다.Controller 테스트를 할 때 @WebMvcTest를 사용하기 위해서 @MockBean을 사용하는 걸까요? @WebMvcTest와 @MockBean이 짝궁(?)이어서 이렇게 사용하는걸까요?
-
해결됨부트캠프에서 알려주지 않는 것들 (리액트) 1편
공유소스 실행시 에러 문의 드립니다~
안녕하세요 다름이 아니라 공유해 주신 소스를 기반으로 코드 리포지토리: https://github.com/things-not-learn-from-bootcamp/form-practice/tree/use-reducer-fancy-typing 의 소스를 실행 시켜 보았는데요 위 와 같은 에러가 계속 발생해서요 아무리 구글 검색을 해도 해결이 안되어 문의 드립니다.또 한가지 더 문의 부탁드립니다 위 동일한 레파지토리 소스를 실행시켰을 빌드해서 실행시켰을 때 위 처럼 빨간줄이 생겨서요 좀처럼 이해가 안되어서 같이 문의 드립니다.바쁘신데 죄송하면 문의 부탁드립니다.감사합니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
WebMvcTest에서의 when
Controller 테스트를 하실 때어떤 경우에서는 when으로 값을 세팅해주고어떤 경우에는 사용을 안하시는데기준이 있으실까요
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
steps 클래스를 사용하는 이유
안녕하세요!강의 잘 듣고 있습니다! steps 클래스를 따로 만드는 이유는 뭐라고 할 수 있을까요?? 감사합니다.
-
미해결Practical Testing: 실용적인 테스트 가이드
강의 코드 질문 드립니다.
안녕하세요. 강의 코드는 혹시 제공 되나요?
-
미해결Practical Testing: 실용적인 테스트 가이드
OrderRepository에 @Repository
안녕하세요JPARepository에는 @Repository 를 안 붙여도정상 작동하는 걸로 알고 있는데따로 붙이신 이유가 있으실까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
mySql DB 는 생성하였는데 테이블이 생성이 안되는 경우가 어떤 게 있을 까요?
윈도우로 하려니 참 수업이 쫒아가기 힘드네요.어찌 어찌 구글링으로 계속 진행하고 있는데요.도커로 올린 후 DB 는 생성을 했는데 테이블 생성이 안되네요. 2. localhost:4000 로 접속을 하면 화면이 보이지도 않구요. 아..도커 참 그렇네요. ^^: 이것 저것 손 댄 코드 입니다. 14 버전이 안되어서 16버전으로 변경# 컴퓨터 만드는 설명서 # 1. 운영체제 설치(node 14버전과 npm과 yarn이 모두 설치되어있는 리눅스) FROM node:16 # 2. 내 컴퓨터에 있는 폴더나 파일을 도커 컴퓨터 안으로 복사하기 COPY ./package.json /myfolder/ COPY ./yarn.lock /myfolder/ WORKDIR /myfolder/ RUN yarn install COPY . /myfolder/ # 3. 도커안에서 index.js 실행시키기 CMD yarn start:dev DB 포트 충돌로 3307번 확인 후 3306 번 접근version: '3.7' services: my-backend: build: context: . dockerfile: Dockerfile volumes: - ./src:/myfolder/src ports: - 4000:3000 env_file: - ./.env.docker my-database: platform: linux/x86_64 image: mysql:latest environment: MYSQL_DATABASE: 'mydocker' MYSQL_ROOT_PASSWORD: '0000' ports: - 3307:3306 도움 좀 부탁드립니다.
-
해결됨부트캠프에서 알려주지 않는 것들 (리액트) 1편
[섹션 3. Form 컴포넌트로 배우는 실전 기술] 강좌의 소스를 부탁드립니다.
안녕하세요 저는 리액트만 4년차 개발자인데요.. 기존에 리액트 강좌를 무지 많이 수강했음에도 아직도 많이 부족하다 싶어서 강사님의 강좌를 듣게 되었는데 많은 도움이 되고 있어서 너무 감사합니다. 참고로 아래와 같은 과정을 수상신청을 아래와 같이 했습니다. 부트캠프에서 알려주지 않는 것들 (리액트 렌더링 최적화 편) 2편부트캠프에서 알려주지 않는 것들 (리액트) 1편클론코딩에서 알려주지 않는 것들 (시스템 이론과 DB) 1편실전 연습으로 익히는 고급 타입스크립트 기술 다만 부탁이 있어서요 다름이 아니라 좀더 세심하게 코드를 보구 싶어서요혹시 강좌중 부트캠프에서 알려주지 않는 것들 (리액트) 1편 에서 섹션 3. Form 컴포넌트로 배우는 실전 기술 강좌의 소스를 과정별로 브랜치로 구분한 레파지토리는 없는지 해서요..강좌별로 들으면서 분석하면 많은 도움이 될거 같아서 문의 드립니다.정 안되면 최종 소스라도 부탁드립니다. 위에 강좌 신청을 좋게 봐 주셔서 부탁드립니다.공개가 힘드시면 메일이라도 부탁드리면 안될런지요? manhattansky73@gmail.com 입니다.감사합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
redis 질문있습니다.
redis를 도커로 설치하는 이유가 따로 있을까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
brew 명령어를 찾을수 없음
몽고 DB root설정하는 부분에서 이런 오류가 나는데 어떻게 해결해야할까요?
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
랜덤 포트를 사용하는 이유
안녕하세요! 너무 좋은 강의 잘 보고 있습니다. 감사합니다! 강의를 듣다가 궁금한 것이 생겼는데,굳이 ApiTest 라는 클래스를 따로 만들어서 랜덤 포트로 설정해준 이유는 무엇인가요?? 감사합니다.