묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스Duplicate entry '' for key 'product.PRIMARY' 에러graphql로 상품등록 하고 mysql를 끄고 다시 키면 Duplicate entry '' for key 'product.PRIMARY' 에러가 발생합니다. 그래서 mysql에 있는 데이터를 삭제하고 다시 mysql를 키면 정상적으로 작동을 합니다. 데이터를 수동으로 삭제를 안하고 작동을 어떻게 시킬수 있나요? 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스section 29 update 함수 어떻게 수정하면 될까요?감이 안잡히는데 좀 도와주세요 ㅜㅜ힌트라도 주시면 감사하겠습니다.. async update({ productId, updateProductInput, }: IProductsServiceUpdate): Promise<Product> { const product = await this.findOne({ productId }); this.checkSoldout({ product }); const result = this.productsRepository.save({ ...product, // 수정 후 수정되지 않은 다른 결과값까지 모두 받고 싶을 때 사용 ...updateProductInput, }); return result; } 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스section 29 예제 코드 오류안녕하세요. section29까지 수강을 다 진행하였는데요.예제 코드 관련 오류가 있어 질문드립니다.예제코드가 데이터베이스 처음 만든 상태에서는 괜찮은데 데이터베이스에 데이터를 넣고 코드를 수정하면 아래와 같은 오류가 나옵니다.query failed: ALTER TABLE `product_saleslocation` ADD `id` varchar(36) NOT NULL PRIMARY KEY error: Error: Duplicate entry '' for key 'product_saleslocation.PRIMARY' query: ROLLBACK [Nest] 33022 - 05/21/2023, 12:47:43 PM ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)... QueryFailedError: Duplicate entry '' for key 'product_saleslocation.PRIMARY'그리고 DBeaver로 확인하면 product_saleslocation의 기본키인 "id"가 자동으로 삭제되어 있습니다. product_saleslocation의 비정상적인 데이터를 삭제해도 다른 테이블의 기본키에서도 동일한 오류가 발생합니다. 코드를 단순히 주석만 삭제하고 저장해도 프로젝트가 재실행되고 나서 저런 오류가 발생합니다. 프로젝트가 재실행될 때마다 DB에 자동적으로 뭔가 데이터 수정 작업을 하는거 같은데 아무 요청도 안 했는데 DB에 수정이 일어나는 이유를 모르겠습니다. 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스puppeteer 라이브러리 사용 중에 질문 드립니다.퍼펫티어 쪽 코드인데 미니프로젝트에서 요구한 30개 이상을 크롤링 하는 부분을 완성을 해서 추가적으로 전체 메뉴를 긁어오고 싶어서 위와 같이 코드를 추가했습니다.12번째 코드부터 15번째 코드까지가 총 데이터 길이를 구하는 코드인데해당 코드에서 console.log(cnt);콘솔로 cnt를 출력해보면위와 같이 숫자 10까지 밖에 출력이 안되어서 질문 드립니다. 퍼펫티어 docs에서도이렇게 설명이 되어있어서 해당 코드라면 스타벅스 내에 있는 모든 전체상품 이미지가 크롤링 되어야 될 거 같은데스타벅스 홈페이지에서 카피를 하면 nth-child 의 값은 10까지 밖에 찍히지 않고전체 메뉴가 크롤링 되는 것이 아닌 도중에 제주 말차 메뉴까지 밖에 크롤링이 되지 않는 것이 의문이라 질문 드립니다. 혹시 해당 코드에 문제가 무엇인지 조언을 부탁 드리고 싶습니다 ㅠㅠ 전체 코드는 아래와 같습니다.import puppeteer from "puppeteer"; import mongoose from "mongoose"; import { starbucks } from "../model/starbucksSchema.js"; export async function startCrawling() { const browser = await puppeteer.launch({ headless: false }); const page = await browser.newPage(); await page.setViewport({ width: 1920, height: 1080 }); await page.goto("https://www.starbucks.co.kr/menu/drink_list.do"); await page.waitForTimeout(2400); const cnt = await page.$$eval( `#container > div.content > div.product_result_wrap.product_result_wrap01 > div > dl > dd:nth-child(2) > div.product_list > dl > dd `, (data) => data.length ); console.log(cnt); for (let i = 1; i <= cnt; i++) { const second_cnt = await page.$$eval( `#container > div.content > div.product_result_wrap.product_result_wrap01 > div > dl > dd:nth-child(2) > div.product_list > dl > dd:nth-child(${i}) > ul > li`, (data) => data.length ); for (let j = 1; j <= second_cnt; j++) { const image = await page.$eval( `#container > div.content > div.product_result_wrap.product_result_wrap01 > div > dl > dd:nth-child(2) > div.product_list > dl > dd:nth-child(${i}) > ul > li:nth-child(${j}) > dl > dt > a > img`, (el) => el.src ); const name = await page.$eval( `#container > div.content > div.product_result_wrap.product_result_wrap01 > div > dl > dd:nth-child(2) > div.product_list > dl > dd:nth-child(${i}) > ul > li:nth-child(${j}) > dl > dd`, (el) => el.textContent ); console.log(`이름: ${name}, 이미지: ${image}`); const starbucks_db = await starbucks.updateOne( { name: name }, { img: image }, { upsert: true } ); } } await browser.close(); } startCrawling(); 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스backend폴더 복사 후, dist폴더의 위치안녕하세요.21-03 폴더를, 23-01/backend 폴더 내에 복사하였습니다.빌드 후, dist 폴더가 backend/backend/dist 에 위치합니다. 수업화면에서 처럼 backend/dist에 위치하게 하려면 어떻게 해야하나요?답변해주시면 감사하겠습니다~ 
- 
      
        
    미해결Practical Testing: 실용적인 테스트 가이드인증 관련 테스트 할 때 질문드립니다.안녕하세요. 수업 내용과는 관련 없지만 테스트 코드를 짤 때 벽을 만나서 물어볼 곳이 마땅하지 않아 이 곳에 질문을 하게 됐습니다. 문제 있다면 바로 삭제하도록 하겠습니다.프로젝트를 진행하고 있는데 Spring Security를 적용해서 하고 있습니다. Service 쪽에서 Authentication 객체를 생성을 하고 JWT 를 만들어 줄 때 Authentication authentication = authenticationManagerBuilder.getObject().authenticate(new UsernamePasswordAuthenticationToken(username, password));이렇게 생성을 하고 있습니다. 그래서 테스트코드를 짤 때 @Mockprivate AuthenticationManagerBuilder authenticationManagerBuilder;이런 식으로 Mocking 해주고 Authentication authentication = mock(Authentication.class);given(authenticationManagerBuilder.getObject().authenticate(any())).willReturn(authentication);이런 식으로 Stubbing 해주고 있는데요.java.lang.NullPointerException: Cannot invoke "java.util.concurrent.atomic.AtomicBoolean.get()" because "this.building" is null이런 에러가 나타나고 있습니다. AuthenticationManagerBuilder를 좀 살펴보니 타고타고 가다보면 AbstractSecurityBuilder 라는 것을 상속하고 있더군요. AbstractSecurityBuilder를 보면 private AtomicBoolean building = new AtomicBoolean(); 이런 필드가 있습니다. 에러에서 나온 building이 이걸 말하는 것 같습니다.여기 나오는 building이 null 이어서 public final O getObject() { if (!this.building.get()) { throw new IllegalStateException("This object has not been built"); } return this.object;}여기서 if 조건문을 탈 때 this.building이 null이기 때문에 NPE가 발생하는 것 같습니다. AuthenticationManagerBuilder를 Mocking을 해서 이런 결과가 생기는것인가 하는 의심이 들고 있는 상황입니다. 혹시 이런 경우에는 어떤 식으로 Mocking을 하고 Stubbing을 해줘야 테스트가 통과될 지 궁금합니다.구글링해도 자료가 거의 없고 gpt도 계속 이상한 말을 반복해서..ㅠㅠ 어쩔 수 없이 여기에 질문 올려봅니다.도움 주시면 감사하겠습니다..! 
- 
      
        
    미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석from .models import Question강의중에 나온건 아니지만views.py 에서 models의 함수를 가져오기 위해서import할때 왜 models가 아닌 .models인걸까요?models.py는 이렇습니다.심지어 . 을 붙이지 않으면 오류가 뜹니다.ModuleNotFoundError: No module named 'models'.이 현재 디렉터리를 뜻하는것 같은데 하지 않았을때와 했을때 다른 경로의 모듈을 import하는걸까요? 
- 
      
        
    미해결따라하며 배우는 리액트 A-Z[19버전 반영]styled-components 설치 에러styled-components version 6 이후로 강의에 나오는 npm install styled-components --save 명령어로 설치하면 에러가 발생해요npm install styled-components@5.3.10으로 5버전대로 설치했습니다//Use V5, npm install styled-components@5.3.10 //Use yarn yarn install styled-components //To use the beta version npm install styled-components@latest 
- 
      
        
    미해결Practical Testing: 실용적인 테스트 가이드섹션 7에서 완벽하게 제어하기 파트에서 질문이 있습니다!학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!먼저 유사한 질문이 있었는지 검색해 보세요.서로 예의를 지키며 존중하는 문화를 만들어가요.LocalDateTime. now(), 즉 현재 시간과 관련된 기능의 사용을 지양하자라고 말씀해주셨습니다!이 뜻이 현재시간과 관련된 요구사항이 넘어왔을 때 해당 요구사항을 현재시간과 관련 없이 다른 방법으로 풀어보자 라는 의미일까요?아니면 다른 기술적인 방법을 말씀하시는 걸까요~? 기술적인 방법이 있는 것이라면 어떤 방법이 있을지 궁금합니다! 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스OG 실습 중에 궁금한게 생겨 질문드립니다.불과 얼마전에 네이버가 사이트를 바꿨는데요오늘 OG 실습을 하던 중, 네이버 head / meta에 OG tag가 사라진 것을 확인했습니다.OG tag가 없이도 미리보기가 잘 구현되는데, 어떻게 가능한지가 궁금해 질문드립니다. 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스04-06 Mongoose 활용 강좌 21분 경에 포트포워딩 주석을 해제하고 진행했는데저는 주석 안풀고 그냥 네임 리졸루션으로 했는데 그렇게 진행해도 되나요? 그런데 이렇게 하면 compass 프로그램 주소를mongodb://my-database:27017/mydocker 이렇게 가야하는 건가요? 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스docker-compse volumes 관련 질문드립니다!docker-compose.yaml에 volumes 추가한 후 실행해봤지만 index를 바꿔도 refresh되지 않습니다.그래서 반대로 container의 값을 수정하면 local의 index.js가 바뀔까 했지만 위의 사진처럼 오류가 발생합니다. Mount되었다는 것으로 보아 연결은 된 것 같고, 제공된 파일과 강의 비교하면서 오탈자 찾아봤지만 모두 같습니다.이를 해결하기 위해 어떻게 접근해야할지 궁금합니다. 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스복습중 오류복습을 통해 다시 공부을 하던중 오류가 발생하였습니다.해당 오류가 기존 수업과 충돌되어서 발생한 오류 인지 궁금합니다. 해달 오류 해결 방법이 있을까요?? 해당 오류는 [Nest] 76304 - 2023. 05. 17. 오후 5:45:23 ERROR [ExceptionHandler] Table 'board' already exists QueryFailedError: Table 'board' already exists나왔습니다. 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스Docker hub를 보던 중 궁금한게 생겨 질문드립니다!수업에서 사용한 node docker image의 경우 linux, node, npm, yarn이 설치된 이미지라는 것을 어떻게 확인할 수 있는지 궁금합니다.즉 docker hub에 있는 이미지를 보고 그 이미지가 어떤 컴퓨터인지 어떻게 확인할 수 있는지가 궁금합니다. 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스구글로그인 review영상client id와 client secret 받는 과정에 대해 노션을 참고하라는 영상내용이 있는데 혹시 어디서 참고하면 될까요? 
- 
      
        
    미해결Practical Testing: 실용적인 테스트 가이드Cookie의 경우 RestDocs로 어떻게 해야할까요?강의 너무 잘듣고 사이드 프로젝트에 적용하고 있는데 cookie의 경우 restdocs로 어떻게 추출해야되는지 모르겠습니다.. 공식 문서에서는 requestCookies() 가 나와있는데 현재 저의 프로젝트에서는 적용이 안되네요. 저는 SpringBoot 2.6.12 버전이며 java 17, management의 경우 1.0.14 버전입니다. 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스마이크로 서비스 운영시 DB는 하나 써도 되는 건가요?마이크로 서비스로 다수의 서버들을 운영하려고 한다면 typeorm을 통해 entity 에서 1대1 관계 등에서 정의내린 것들은 어떻게 유지 해야 할까요? 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스section 22. CORS 파트에서 궁금증이 생겨 질문드립니다!origin이 같다는게 어떤 의미일까요? domain이 같다는 것인가요?같은 localhost인데 CORS가 발생한 이유가 궁금합니다. 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스섹션 22 3-05 강좌가 편집이 제대로 이루어진 것 같지않아 보입니다.40분에서 끊어져야 할 동영상 같은데 6시간이 넘어가게 업로드가 된 것 같습니다 빠르게 확인해야될 것 같은데요 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스[섹션 22]Quiz 5 axios 질문안녕하세요.프론트엔드와 api 를 연동하는 과정에서 axios를 import 하는 방법에 질문 있습니다. menu.js의 getCoffee 함수에서 axios를 이용해 /starbucks api를 호출하려는데,menu.js 파일에서 import axios from 'axios'를 하면 에러가 발생합니다.반면에 menu/index.html 에서 <script src="를">https://unpkg.com/axios/dist/axios.min.js"></script>를 하면 잘 작동합니다. 이렇게 index.html에서 axios를 다운받는게 맞는건가요?그렇다면, 실제로 axios를 사용하는 코드는 menu.js에 있는데, 왜 index.html에서 가져와야 하는 건가요? 감사합니다. 
