묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
영화수집 문제) 카운팅트리에서 궁금한게 생겼습니다.
인덱스를 음수로 사용할 수 없으니까 처음의 값들을m최대값 10만이니 10만1 이상의 값에 값을 할당하셨는데.그런데 10만2부터 사용하시고 10만1은 사용하시지 않으셨더라구요. 그래서 이해하는 과정에서 중요한건가 싶어서 10만도 해보고 10만1부터도 해보았습니다.예로update_idx = 100000Update(update_idx , 1);mp[temp] = update_idx--;이렇게 수정해보았습니다. 범위에 딱 맞으니까 10만개까지 딱 정보가 들어올 수 있게되는데sum에서 잠시 생각해보니 tree[0] 인덱스에 10만번째 정보가 들어올 것이라고 생각이 들어서요while(i>=0) 으로 바꾸어보았는데 .. (ㅋㅋ 왜 [1] 부터 하시라는지 알았습니다..) 당연히 무한루프를 돌았고다시 while(i>0)으로 수정했는데 정답이 떴습니다.사실 오답이어야 하는게 아닌가 싶어 질문드립니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-M 백준 3986 질문 드립니다
안녕하세요 큰돌님:)백준 3986 문제에 대해서 질문드리고 싶은 게 있습니다!http://boj.kr/00e868dc6fea4a5cbcb0048b32aed50b위의 코드와 같이 st.push(s[0]); 을 먼저 한 다음 j=1 부터 반복문을 시작하면 왜 21112 segmentation fault 오류가 나오는지 궁금합니다..ㅜㅜ 그리고 제가 1주차 문제를 풀고 있는데 거의 3개 중에 하나 꼴로 틀리고 어떨 땐 연속으로 계속 틀리는데강의를 들으면 설명을 잘해주셔서 이해안되는 부분 없이 전부 이해가 가긴 합니다.. 접근법을 배우는 거에 의의를 두고 틀려도 계속 진도 나가면서 풀고있기는 한데 자꾸 틀리니까 위축이 되어서요..ㅠㅠ지금처럼 꾸준히 진도 나가는 것이 맞을까요?? 제 수준에서는 다시 교안으로 돌아가야 하는지.. 모르겠습니다 조언해주시면 감사합니다..!마지막으로 선생님께서 올려주신 추천문제들만 복습해서 봐도 코테 마스터 할 수 있을까요..? ㅜㅜ 아니면 다른 문제들도 함께 겸해서 공부해야하는지 궁금합니다감사합니다.
-
미해결
08. 퀴즈 fetchProduct 오류
섹션08 퀴즈를 풀고 있는데 상품등록 버튼을 누르면 오류가 떠요. try, catch 사용하면 오류 메세지가 떠서 확인해보니 apolloError가 뜨네요..뭔가 잘못 입력한게 있는 것 같은데 어느 부분이 잘못되었는지 모르겠어요ㅠㅠ 폴더 경로/section08/boardsimport { useMutation, gql } from "@apollo/client"; import { useState } from "react"; import { useRouter } from "next/router"; const CREATE_PRODUCT = gql` mutation createProduct($seller: String, $createProductInput: CreateProdutInput!){ createProduct(seller: $seller, createProductInput: $createProductInput){ _id number message }} ` export default function CreateProductQuizPage() { const router = useRouter() const [seller, setSeller] = useState(); const [name, setName] = useState(); const [detail, setDetail] = useState(); const [price, setPrice] = useState(); const [myProduct] = useMutation(CREATE_PRODUCT); const onClickSubmitProduct = async () => { try { const result = await myProduct({ variables: { seller: seller, createProductInput: { name: name, detail: detail, price: price } } }); console.log(result); router.push(`/section08/product/${result.data.createProduct.id}`) } catch (error) { alert(error.messege) } } const onChangeSeller = (event) => { setSeller(event.target.value) } const onChangeName = (event) => { setName(event.target.value) } const onChangeDetail = (event) => { setDetail(event.target.value) } const onChangePrice = (event) => { setPrice(event.target.value) } return ( <div> <div>판매자 : <input type="text" onChange={onChangeSeller} /> </div> <div>상품명 : <input type="text" onChange={onChangeName} /> </div> <div>상품내용 : <input type="text" onChange={onChangeDetail} /> </div> <div>상품가격 : <input type="text" onChange={onChangePrice} /> </div> <button onClick={onClickSubmitProduct}>상품등록</button> </div> ) } 폴더 경로/section08/product/[id]import { useQuery, gql } from "@apollo/client"; import {useRouter} from "next/router" const FETCH_PRODUCT = gql` query fetchProduct($productId: ID){ fetchProduct(productId: $productId){ seller name detail price } } ` export default function CreateProductQuizIdPage(){ const router = useRouter(); const {data} = useQuery(FETCH_PRODUCT, { variables : { productId: router.query.id } }); console.log(data) return( <div> <div>{router.query.id} 상세정보</div> <div>판매자 : {data?.fetchProduct?.seller}</div> <div>상품명 : {data?.fetchProduct?.name}</div> <div>상품내용 : {data?.fetchProduct?.detail}</div> <div>상품가격 : {data?.fetchProduct?.price}</div> </div> ) } productId: router.query.id 는 수업 내용 보며 입력했는데 아직 왜 이렇게 작성 되어야는지 이해가 되지 못했습니다..createProduct에서 등록된 아이디가 fetchProduct의 [id] (변수 id)가 되는게 맞나요? 너무 헷갈려서 다시 여쭤봅니다
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
refresh token 관련
안녕하세요 강의 잘듣고 있습니다!refresh token의 재발급 로직에서 궁금한 점이 생겼는데요,accessToken과 refreshToken이 모두 만료돼었을때 (오랫만에 앱을 들어간 경우) 만료된 refreshToken을 통해서 다시 refreshToken을 재발급 받는게 맞을까요?^ 위의 Guard가 들어가 있고 ^ Guard안에는 verifyToken이 들어 있어 accessToken을 발급받기위한 만료되지 않은 refreshToken이 들어있을땐 문제가 없지만 만료된 refreshToken이 들어가면 에러가 발생합니다.혹시 제가 강의중 놓친것이 있다면 알려주시면 감사하겠습니다!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
자바 코드에 직접 html을 작성하는것은 매우 불편한데 다른 방법으로는 할 수 없나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]지금 강의 방법처럼 html을 작성하여 반응해주는것은 매우 불펴난것 같은데 html파일 자체를 링크하여 반응해주는 방법도 있나요?
-
해결됨UXUI 디자인 비전공자를 위한 포트폴리오 제작방법
테스트케이스가 아닌 신규 제품 개발의 경우
안녕하세요, 포트폴리오 작성과 관련하여 질문이 있습니다. 강의 전체적으로 보여주신 테스트케이스 이외에,초반부 말씀하셨던 신규 제품(서비스) 개발의 경우에도 알려주시는 방식 또는 순서에 따라 하나 하나 진행해가면 될까요? 테스트케이스와 신규 개발 두 가지 모두를 포트폴리오에 넣고 싶을 경우에도 그 작업 방식에는 큰 차이가 없을지 궁금합니다! 감사합니다 :)
-
해결됨Next + React Query로 SNS 서비스 만들기
Type에서 줄바꿈시 콤마 혹은 세미콜론 둘 다 가능한가요?
type Props = { postId: number; userName: string, userId: number; }위 코드처럼 type에서는 끝에 ; 혹은 , 둘 다 섞어서 써도 괜찮은가요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Poolable 컴포넌트를 코드를 통해 넣어주려면
강의에선 Poolable 컴포넌트를 유니티 실행 전에 유니티에서 드래그앤드롭으로 미리 넣어줍니다.제 질문은 강의처럼 미리 넣어주는게 아닌 실행된 뒤에 코드에서 GetOrAddComponent함수를 통해 넣어주려고 합니다.그런데 코드에서 GetOrAddComponent함수를 통해 넣어주면 복제가 된 뒤에 넣어져 풀링이 되지 않습니다. ResourceManager의 Instantiate 함수를 보면 Object.Instantiate를 실행하기 전에 풀링된 오브젝트가 있는지 확인을 해서 그런거 같습니다.Pop()함수가 호출이 안되니 _pool Dictionary에 새로 생성되지 않습니다.제 생각에는 Push 함수에서도 CreatePool을 해주는 방식이나 ResourceManager의 Instantiate 함수 안에서 Object.Instantiate를 실행하기 전에 오브젝트의 이름이나 태그를 통해 미리 넣어주고 복사하는 방식이 생각이 나는데 전자는 강의에서 말씀하신 예외사항에 대처할 수 없고 후자는 그리 효율적이라고 생각되지 않습니다.혹시 다른 좋은 방법이 있을까요?강의에서 말씀한 내용이라면 죄송합니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
암호화관련 문제
알려주신대로 어찌어찌 수정을 해서 실행이 됐습니다!그런데 이번엔 암호화 관련해서 다음과 같은 오류가 생겨 질문 드립니다..Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:68:19) at Object.createHash (node:crypto:138:10) at module.exports (C:\Users\User\Documents\boiler-plate\client\node_modules\webpack\lib\util\createHash.js:135:53) at NormalModule._initBuildHash (C:\Users\User\Documents\boiler-plate\client\node_modules\webpack\lib\NormalModule.js:417:16) at handleParseError (C:\Users\User\Documents\boiler-plate\client\node_modules\webpack\lib\NormalModule.js:471:10) at C:\Users\User\Documents\boiler-plate\client\node_modules\webpack\lib\NormalModule.js:503:5 at C:\Users\User\Documents\boiler-plate\client\node_modules\webpack\lib\NormalModule.js:358:12 at C:\Users\User\Documents\boiler-plate\client\node_modules\loader-runner\lib\LoaderRunner.js:373:3 at iterateNormalLoaders (C:\Users\User\Documents\boiler-plate\client\node_modules\loader-runner\lib\LoaderRunner.js:214:10) at iterateNormalLoaders (C:\Users\User\Documents\boiler-plate\client\node_modules\loader-runner\lib\LoaderRunner.js:221:10) C:\Users\User\Documents\boiler-plate\client\node_modules\react-scripts\scripts\start.js:19 throw err; ^ Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:68:19) at Object.createHash (node:crypto:138:10) at module.exports (C:\Users\User\Documents\boiler-plate\client\node_modules\webpack\lib\util\createHash.js:135:53) at NormalModule._initBuildHash (C:\Users\User\Documents\boiler-plate\client\node_modules\webpack\lib\NormalModule.js:417:16) at C:\Users\User\Documents\boiler-plate\client\node_modules\webpack\lib\NormalModule.js:452:10 at C:\Users\User\Documents\boiler-plate\client\node_modules\webpack\lib\NormalModule.js:323:13 at C:\Users\User\Documents\boiler-plate\client\node_modules\loader-runner\lib\LoaderRunner.js:367:11 at C:\Users\User\Documents\boiler-plate\client\node_modules\loader-runner\lib\LoaderRunner.js:233:18 at context.callback (C:\Users\User\Documents\boiler-plate\client\node_modules\loader-runner\lib\LoaderRunner.js:111:13) at C:\Users\User\Documents\boiler-plate\client\node_modules\babel-loader\lib\index.js:59:103 { opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED' }
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
강의의 NamedLockStockFacade의 decrease()에서 @Transactional을 붙인 이유 질문
안녕하세요 강사님.제가 gpt를 통해 확인한 결과는, MySQL의 getLock(), releaseLock()은 트랜잭션 상태와는 무관하게 동작할 수 있다는 것이었습니다. 또한 NamedLockStockFacade에서 호출하는 StockService.decrease()는 REQUIRES_NEW에 의해 별도의 트랜잭션으로 관리되고 커밋 됩니다.따라서 StockService.decrease()에 의해 재고가 감소한 후,NamedLockStockService에서 releaseLock()으로 락을 반환할 때 예외가 터져도, 이미 커밋된 재고감소는 롤백되지 않을 것 같습니다.그럼에도 NamedLockStockFacade에서 @Transactional을 붙이신 별도의 의도가 있는지 궁금합니다.
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
파티션 복제
안녕하세요.카프카 클러스터 내에 여러 개의 브로커를 실행한 다음 토픽의 파티션을 복제하고 리더 파티션과 팔로워 파티션이 있는 구조를 구성해보고 싶습니다. 위와 같은 구조를 직접 구현해보고 싶은데 혹시 참고할 만한 게 있을까요?감사합니다.
-
미해결프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)
anaconda 검색 안됨.
강의 알려주신대로 anaconda 다운로드 받았는데 윈도우 검색창에서 anaconda 쳐도 안나오고 jupyter도 안나오네요.근데 파일은 다운로드 되었다고 뜹니다.
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
Security 단원에서 Dto와 인증 서비스 강의 관련입니다
loadUserByUsername 메서드에서 username 으로 조회잘되고 조회된 MemberDto는 log 출력도 잘되는데 다음 단계에서 "Encoded password does not look like BCrypt" 라는 warn 과 함꼐 "Failed to process authentication request" 로 자격증명에 실패했다고 합니다.DB의 패스워드는 암호화 되어 잘 저장된거 확인됩니다제가 무언가를 잘못 작성한건지파라미터로 보낸 password 는 어디서 encode해야 하는건지 아니면 다른 문제가 있는건가요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
모듈 경로 관련 오류 index.js 모듈을 찾을 수 없다고 해서 수정을 했는데 이번엔 User를 못찾네요..
어제까진 잘 실행이 되었는데 갑자기 이러니까 당황스러워요..먼저Error: Cannot find module 'C:\Users\User\Documents\boiler-plate\index.js' at Module._resolveFilename (node:internal/modules/cjs/loader:1048:15) at Module._load (node:internal/modules/cjs/loader:901:27) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:83:12) at node:internal/main/run_main_module:23:47 { code: 'MODULE_NOT_FOUND', requireStack: [] } Node.js v20.9.0 [nodemon] app crashed - waiting for file changes before starting...이런 에러가 떠서 package.json의 backend 쪽을"backend": "nodemon server/index.js"이렇게 수정했더니 이번엔Error: Cannot find module '../server/models/User' Require stack: - C:\Users\User\Documents\boiler-plate\server\middleware\auth.js - C:\Users\User\Documents\boiler-plate\server\index.js at Module._resolveFilename (node:internal/modules/cjs/loader:1048:15) at Module._load (node:internal/modules/cjs/loader:901:27) at Module.require (node:internal/modules/cjs/loader:1115:19) at require (node:internal/modules/helpers:130:18) at Object.<anonymous> (C:\Users\User\Documents\boiler-plate\server\middleware\auth.js:1:18) at Module._compile (node:internal/modules/cjs/loader:1241:14) at Module._extensions..js (node:internal/modules/cjs/loader:1295:10) at Module.load (node:internal/modules/cjs/loader:1091:32) at Module._load (node:internal/modules/cjs/loader:938:12) at Module.require (node:internal/modules/cjs/loader:1115:19) { code: 'MODULE_NOT_FOUND', requireStack: [ 'C:\\Users\\User\\Documents\\boiler-plate\\server\\middleware\\auth.js', 'C:\\Users\\User\\Documents\\boiler-plate\\server\\index.js' ] }이런 오류가 뜨네요.. 계속 찾아보는데 경로도 다 맞는 것 같은데 어디서 문제가 발생하고 어떻게 해결해야 하는 지를 모르겠어요..우선 혹시 몰라 package.json 전체 첨부 해놓겠습니다!그리고 강의는 21강 까지 들었습니다!{ "name": "boiler-plate", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "node index.js", "backend": "nodemon server/index.js", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "in-sik", "license": "ISC", "dependencies": { "bcrypt": "^5.1.1", "body-parser": "^1.20.2", "cookie-parser": "^1.4.6", "express": "^4.18.3", "index.js": "^0.0.3", "jsonwebtoken": "^9.0.2", "mongoose": "^8.2.1" }, "devDependencies": { "nodemon": "^3.1.0" } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceIntegrationTest 에서의 에러메세지
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]https://drive.google.com/file/d/1a7F2dfdI4MolHCpjYJRXUYxV1CsSjlsU/view?usp=sharing위와 같은 코드를 가지고 있었고, 아래와 같은 에러메세지가 나왔습니다. 어떻게 작업을 해야할 지 잘 모르겠어요 java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@46bb0bdf testClass = com.inflearn.hellospring.service.MemberServiceIntegrationTest, locations = [], classes = [com.inflearn.hellospring.HelloSpringApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@23c30a20, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@67f639d3, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@82de64a, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@506ae4d4, org.springframework.boot.test.context.SpringBootTestAnnotation@8acbd854], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:180) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260) at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:163) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining(StreamSpliterators.java:310) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:735) at java.base/java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) at java.base/java.util.Optional.orElseGet(Optional.java:364) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1231) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:949) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137) at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1454) at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:553) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:225) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:152) ... 17 moreCaused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:276) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) at org.hibernate.boot.model.relational.Database.<init>(Database.java:45) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:223) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:191) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:170) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1432) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1503) at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:388) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:364) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) ... 38 moreCaused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:191) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:87) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentWithDefaults(JdbcEnvironmentInitiator.java:143) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:348) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:107) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:68) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ... 53 more
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
다대다 관계에서의 연관계의 주인
@JoinColumn한 쪽이 연관관계의 주인이 되듯 다대다인 상황에서는 @JoinTable이 붙은 엔티티의 속성이 연관관계의 주인이 되는 것으로 이해했습니다. 이해한 것이 맞을까요?강의에서는 Category를 연관관계의 주인으로 설정하셨는데, 다대다 관계에서도 일대일 관계처럼 연관관계의 주인이 어느쪽이든 상관 없나요? JPA 기본편을 수강하고 와서 다대다를 피해야한다는 것을 알고 있지만 궁금증이 생겨 질문드립니다.
-
해결됨딥러닝 CNN 완벽 가이드 - TFKeras 버전
테스트 데이터셋 predict의 'NoneType' object has no attribute 'shape' 오류
안녕하세요.테스트 데이터셋을 predict하는 부분에서 오류가 나서 질문드립니다. test_path = test_df['path'].values test_ds = Plant_Dataset(image_filenames=test_path, labels=None, image_size=IMAGE_SIZE, batch_size=BATCH_SIZE, augmentor=None, shuffle=False, pre_func=xcp_preprocess_input) preds = xcp_model_01.predict(test_ds) --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In[40], line 7 3 test_path = test_df['path'].values 4 test_ds = Plant_Dataset(image_filenames=test_path, labels=None, image_size=IMAGE_SIZE, batch_size=BATCH_SIZE, 5 augmentor=None, shuffle=False, pre_func=xcp_preprocess_input) ----> 7 preds = xcp_model_01.predict(test_ds) File /opt/conda/lib/python3.10/site-packages/keras/src/utils/traceback_utils.py:123, in filter_traceback.<locals>.error_handler(*args, **kwargs) 120 filtered_tb = _process_traceback_frames(e.__traceback__) 121 # To get the full stack trace, call: 122 # `keras.config.disable_traceback_filtering()` --> 123 raise e.with_traceback(filtered_tb) from None 124 finally: 125 del filtered_tb File /opt/conda/lib/python3.10/site-packages/tree/__init__.py:435, in map_structure(func, *structures, **kwargs) 432 for other in structures[1:]: 433 assert_same_structure(structures[0], other, check_types=check_types) 434 return unflatten_as(structures[0], --> 435 [func(*args) for args in zip(*map(flatten, structures))]) File /opt/conda/lib/python3.10/site-packages/tree/__init__.py:435, in <listcomp>(.0) 432 for other in structures[1:]: 433 assert_same_structure(structures[0], other, check_types=check_types) 434 return unflatten_as(structures[0], --> 435 [func(*args) for args in zip(*map(flatten, structures))]) AttributeError: 'NoneType' object has no attribute 'shape' test_image_batch, test_label_batch = next(iter(test_ds))print(test_image_batch.shape, test_label_batch)의 출력이 (32, 224, 224, 3) Nonehistory.history['val_auc']의 출력이 [0.9417113065719604, 0.9647012948989868, 0.9738287925720215, 0.9816075563430786, 0.9799161553382874, 0.9804703593254089, 0.9877450466156006, 0.9854006767272949, 0.9803326725959778, 0.9843235611915588]학습도 완료됐고 Plant_Dataset도 제대로 작동하고 있습니다.AttributeError:'NoneType' object has no attribute 'shape'으로 어느 부분이 문제가 되는지 질문드립니다.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
OptimisticLockStockService에서 @Transactional을 붙이게 되면 무한루프에 빠지는 이유 질문
안녕하세요 강사님. 강사님 강의를 예전에 들었는데 , 현업에서 실제 동시성 처리를 하려고 다시 보니 예전에 안보이던게 보이는 것 같습니다. 감사합니다.제가 질문하고 싶은 부분은 강의를 들으면서 습관적으로 OptimisticLockStockService에서 @Transactional을 붙였는데 무한루프에 빠졌습니다. 앞의 질문에 대한 답변으로 강사님이 보내주신 답변을 힌트로 그 원인을 생각했는데 , 이부분에 대해 피드백을 주시면 감사하겠습니다.제가 이해한 바로는 OptimisticLockStockFacade에 @Transactional을 붙이게 되면,트랜잭션이 재시도 로직을 포함해서 묶이면서, version 차이로 재시도를 할 때 새로운 버전으로 Stock을조회해와야 하는데, 아직 Transactional이 유지되고 있으니깐, Entity Manager에 있는 이전에 실패한 version의 Stock을 가지고 다시 update를 실패해서 무한루프에 빠진다고 생각했습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
Async와 Job방식의 차이가 궁금합니다.
이전 강의에서 PacketHandller 부분에서 Async를 사용하지 않고 Blocking 방식을 사용하는 이유가 EAP 기반이기 때문에 이미 패킷마다 할당된 쓰레드에 의해 I/O가 이루어지기 때문이라고 이해했습니다.하지만 GameRoom같은 경우엔 GameRoom 담당 쓰레드가 존재하고 GameRoom 쓰레드의 동기화를 위해 JobSerialize를 이용하여 각 쓰레드가 GameRoom의 Job을 Push하여 동기화를 진행하는데이때 Job 안에서 DB I/O가 Blocking으로 이루어질 경우 GameRoom 쓰레드가 Blocking이 되고 그렇게되면 GameRoom이 느려지는 상황이 되기때문에 DB I/O 전용 쓰레드(JobSerialize)를 만들어 쓰는것으로 이해했습니다.결국 개념적으로 봤을때 GameRoom 쓰레드는 메인쓰레드 역할을 하고 DB I/O 처리는 서브쓰레드에게 맡기고 완료됐을때 결과만 다시 메인쓰레드에 돌려받는 NonBlocking I/O 방식인데Async/Await 역시 호출한 쓰레드를 Blocking 하지 않고 서브쓰레드에게 I/O를 맡긴뒤 작업이 완료되면 메인쓰레드에 결과를 반환하여 Await 이후에 처리한다고 이해하고 있습니다.그렇다면 복잡하게 DB I/O 전용 쓰레드를 만들어주지 않고 Async/Await만 사용해도 될것같은데 이렇게 하는 이유가 있을까요?아니면 이후에 강의에 이에 대한 개선이 나오는걸까요?
-
해결됨Jenkins를 이용한 CI/CD Pipeline 구축
sh 파일 없음..?
https://github.com/joneconsulting/jenkins_cicd_script/tree/master/pipeline_script 여기에 sh 파일이 다 사라진거 같은데 아닌가요?? success 되긴 하는데 없어서 그냥 성공하는건지 모르겠습니다..!