묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 배치
jdbcCursorReader, jdbcPagingReader 질문
안녕하세요 jdbc 를 통해 데이터를 읽어오는 점에 대해 질문이 있습니다.@Bean public ItemReader<Customer> jdbcCursorItemReader() { return new JdbcCursorItemReaderBuilder<Customer>() .name("jdbcCursorItemReader") .fetchSize(10) .dataSource(dataSource) .sql( "select id, firstName, lastName, birthDate from customer where firstName like ? order by lastName, firstName") .beanRowMapper(Customer.class) .queryArguments("A%") .build(); }여기서 fetchSIze 는 db 에서 한번에 가져올 레코드 수이고 @Bean public ItemReader<Customer> jdbcPagingReader() throws Exception { Map<String ,Object> paramMap = new HashMap<>(); paramMap.put("firstName", "H%"); return new JdbcPagingItemReaderBuilder<Customer>() .name("jdbcPagingReader") .dataSource(dataSource) .fetchSize(3) .pageSize(3) .queryProvider(pagingQueryProvider()) .parameterValues(paramMap) .beanRowMapper(Customer.class) .build(); }여기 페이징 방식에는 fetchSize, pageSize 두개를 둘 다 사용할 수 있던데 차이가 정확인 뭔가요? pageSize는 설정 시 쿼리에 Limit 설정 수가 추가되어 나가는 것은 확인했습니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
데드락 탐지에서 강의 극후반에 LLockStack 관련한 질문입니다!
안녕하세요.나중에 프로젝트 진행하실 땐 lock stack을 TLS로 관리해서 스레드마다 스레드 id가 관리되도록 하신다 말씀하셨습니다. 여기에서 생긴 궁금증입니다. 스레드 id가 부여될 때, 감소하지 않고 증가하는 nameToId().size()로 만들어지는 이상 모든 id가 고유할 거라고 생각합니다.id를 통해서 lockHistory에서 value(set객체)를 꺼냅니다. lockHistory는 TLS에서 관리되지 않는 전역 객체입니다(애초에 그러면 안 되겠죠. 전역적으로 사이클 여부를 탐지해야 하니까요!).스레드 id가 유일한 이상 lockStack을 TLS에서 관리하나 전역으로 관리하는 것이 차이가 없을 것 같은데, 강의 후반에 새로 영상을 추가하시어 '스레드마다 잡고 있는 락이 다르기 때문에 TLS로 관리해야 한다'고 말씀하신 이유가 궁금합니다!id가 전역적으로 1,2,3,4,5,6..이렇게 증가하거나 스레드 별 공간에서 {1,2..} {1,2...} {1,2...} 의 차이 정도로만 생각되어 어떤 본질적인 차이가 있는지 알고 싶습니다!p.s 수업에서 진행한 테스트 코드에서도 문제가 없었던 이유도 궁금증에 한몫을 했습니다.
-
해결됨서류합격률 4%를 탈출하는 개발자 이력서 작성법(실습 포함)
디스코드 채널에 입장이 안됩니다
안녕하세요, 강의 잘 수강하고 있습니다.다름이 아니라, 강의 맨 마지막에 있는 채널 참여하기 링크를 통해 들어갔는데 수락이 안됩니다.확인해주시면 감사하겠습니다!
-
미해결앱 개발 입문자를 위한 플러터 네컷일기 만들기 with 피그마
앱개발-입문자-플러터-네컷일기-with피그마 소스 다운로드
안녕하세요 [제로투원] 의 포레스트 입니다 :)제 강의를 선택해주셔서 감사합니다 !청강하시는 도중 질문사항이 있으시다면 언제든지 코멘트로 질문 바랍니다 소스 및 강의 자료 다운로드 받는 github url 이 있는지요? 좋은하루되세요 !
-
해결됨SQL Server 컨설턴트가 알려주는, 쿼리 능력 레벨업(고급 T-SQL 쿼리)
연장 문의의 건
선생님 안녕하세요.열심히 보다가 몸이 아파 더 공부를 못하고 있었는데요.내년2025년 1월까지로 늘려주신다면 이 은혜 평생 잊지 않겠습니다.제발 부탁드립니다!감사합니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
STOP_WATCH Vitis 에러
안녕하세요 맛비님Season1 프로젝트부분인 STOP_WATCH를 공부하고 있는데 절차대로 모두 하고 vitis에서 build 후 run을 실행하면 다음과 같은 에러가 나오는데 해결을 계속 해보다가 결국 안되서 어떤 부분이 잘못되면 해당 에러가 나올 수 있을지 여쭤봐도 될까요? vivado와 vitis는 2023.2 버전을 사용중이고 해당 보드(Cora-z7)를 다른 사람 컴퓨터로 테스트 해봤을 땐 괜찮았습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
3:16초에 근데 이렇게 해가지고 부분에 "{}"를 만들어서 자식 node들을 생성하던데 왜 중괄호로 감싸게 만드는 건가요?
static TreeNode<string> MakeTree() { TreeNode<string> root = new TreeNode<string>() { Data = "R1 개발실" }; { { TreeNode<string> node = new TreeNode<string>() { Data = "디자인팀" }; node.Children.Add(new TreeNode<string>() { Data = "전투" }); node.Children.Add(new TreeNode<string>() { Data = "경제" }); node.Children.Add(new TreeNode<string>() { Data = "스토리" }); root.Children.Add(node); } { TreeNode<string> node = new TreeNode<string>() { Data = "프로그래밍팀" }; node.Children.Add(new TreeNode<string>() { Data = "서버" }); node.Children.Add(new TreeNode<string>() { Data = "클라" }); node.Children.Add(new TreeNode<string>() { Data = "엔지" }); root.Children.Add(node); } { TreeNode<string> node = new TreeNode<string>() { Data = "아트팀" }; node.Children.Add(new TreeNode<string>() { Data = "배경" }); node.Children.Add(new TreeNode<string>() { Data = "캐릭터" }); root.Children.Add(node); } } root노드를 만들고 그 아래에 {}를 열어서 내용을 작성하는 이유가 궁금해요.
-
해결됨CloudNet@ - AWS 네트워킹 입문
강의가 오늘까지라
강의가 오늘까지라 열심히 남은 강의를 듣고있는데강의 선택을 해도 해당 강의가 진행이 안되는데 무슨 이유일까요?!뭔가 인프런 자체 문제일 거 같은데 ㅠㅠㅠ강의가 몇 개 안 남아서 다 들어야 하는데 어떡하나요ㅠㅠ
-
해결됨[LLM 101] LLM 초보를 위한 Llama SFT 강의 (feat. ChatApp Poc)
런타임 유형 변경 및 토크나이저 관련 에러
안녕하세요 코랩 실습 과정 중하드웨어 가속기 선택할 때 V100이 비활성화 되어있을경우 어떤 것을 선택해야 하는지 문의 드립니다.아울러 모델튜닝 실습 중 tokenizer.default_chat_template 부분에서 에러가 뜨는데 다음 단계로 넘어갈 수 있도록 하는 방법이 있을까요? 이후 패스하고 넘어간다고 해도 PEFT - LoRA부분에서도 에러가 뜹니다. 혹시 위 부분에서 pip install flash-attn===1.0.4 부분을 처리하지 않아서 오류가 난 것일까요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
프로젝스 생성 충돌 에러
프로젝트를 만들었는데 코드와 파일들에 빨간 줄이 그어져있습니다.버전이 안 맞아 안드로이드 스튜디오를 3번 정도 재 설치 한 것 빼고는 영상 그대로 따라했습니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 리포지토리와 회원 서비스
[질문 내용]회원 리포지토리는 인터페이스와, 메모리 구현체로 이루어져 있습니다. 그런데 회원 서비스는 회원 리포지토리와는 반대로 클래스로만 이루어져 있는데 왜 회원 리포지토리는 회원서비스처럼 클래스로 만들지 않고 인터페이스와 메모리구현체 클래스로 나뉘었는지 궁금합니다.
-
미해결김영한의 실전 자바 - 중급 1편
StringTokenizer에 대한 개념은 영상에 없을까요
알고리즘 문제풀고있는데 이 개념은 영상에서 본적이없는거가타서요...
-
미해결비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)
캐싱 객체 직렬화/역직렬화
안녕하세요! 강의를 수강하고 제 프로젝트에서 캐싱을 적용하고 싶어서 따라 적용해보고 있습니다. package com.ecommerceproduct.api.controller.product.dto.response; import com.ecommerceproduct.domain.product.repository.dao.ProductDetailDao; import com.ecommerceproduct.domain.product.type.OptionType; import com.ecommerceproduct.domain.product.type.ProductCategory; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import lombok.Builder; @Builder public record ProductDetailResponse( Long id, String name, StoreInfo store, int quantity, ProductCategory category, String thumbnailImgUrl, int basePrice, @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") @JsonSerialize(using = LocalDateTimeSerializer.class) @JsonDeserialize(using = LocalDateTimeDeserializer.class) LocalDateTime createdDateTime, List<ProductOptionInfo> options ) { public static ProductDetailResponse from(List<ProductDetailDao> daos){ List<ProductOptionInfo> options = new ArrayList<>(); daos.forEach(dao -> options.add(ProductOptionInfo.from(dao.option()))); ProductDetailDao dao = daos.get(0); return ProductDetailResponse.builder() .id(dao.id()) .name(dao.name()) .store(StoreInfo.from(dao.store())) .quantity(dao.quantity()) .category(dao.category()) .thumbnailImgUrl(dao.thumbnailImgUrl()) .basePrice(dao.basePrice()) .createdDateTime(dao.createdDateTime()) .options(options) .build(); } public record StoreInfo( Long storeId, String name ) { public static StoreInfo from(ProductDetailDao.StoreInfo daoStore){ return new StoreInfo(daoStore.storeId(), daoStore.name()); } } public record ProductOptionInfo( Long optionId, String name, int count, int price, OptionType optionType ){ public static ProductOptionInfo from(ProductDetailDao.ProductOptionInfo option){ return new ProductOptionInfo( option.optionId(), option.name(), option.count(), option.price(), option.optionType() ); } } } 해당 클래스를 반환하는 메서드에 @Cacheable을 적용하려고 합니다.@Cacheable(cacheNames = "getProduct", key = "'product:productId:' + #productId", cacheManager = "매니저이름") public ProductDetailResponse get(Long productId) { return ProductDetailResponse.from(productRepository.findWithOptions(productId)); }강의에서 알려주신 매니저와 동일하게 매니저를 bean으로 등록해서 사용해본결과직렬화/역질렬화가 안되는것으로 보입니다. 매니저에 설정을 serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer( new Jackson2JsonRedisSerializer<>(objectMapper, ProductDetailResponse.class)))처럼 명시적으로 타입을 지정해주면 문제가 없는 것 같은데 record여서 안되는 걸까 싶어서 class로 바꾸어도 되지는 않더라고요! 강의에서의 Board 클래스는 문제없이 직렬화/역직렬화가 되는데 제가만든 dto가 안되는 이유는 강의의 Board가 @Entity클래스여서 인걸까요??그렇다면 dto로 쓰려면 매니저를 각각의 dto마다 매니저를 하나씩 만들어주어야할까요?
-
해결됨[초급] QML 프로그래밍 2편
설명이 가려서 보이질 않습니다.
매번 좋은 강의 감사드립니다.Chess Game 구현 Part1 에서 영상 뒷부분 좌표 설명 시 강사님 모습에 가려서 설명이 보이질 않는데요.혹시 해당 부분 수정이 가능할까요?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
RSC Payload에 대해 궁금합니다.
앱 라우터에서 RSC Payload파일은 초기 접속 요청 이후에페이지 이동이나 프리패칭시일때만 서버에서 받아오는걸까요?아니면 초기 접속 요청시에 초기 접속 페이지가 서버 컴포넌트로 되어있으면 초기 접속 요청때도 rsc payload파일을 서버에서 받아오나요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
[군인입니다] 클라우드 환경 gitpod에서 진행하고 있는데, 실행 시 Unable to locate persister 에러가 발생합니다.
<질문요약>Gitpod 환경에서 실습을 진행 중인데, 데이터베이스에 연결은 되지만, 엔티티가 Persist 되질 않습니다. [필자 개발환경]군대 사지방에서 GitPod 클라우드 개발환경에서, VS Code IDEA 기반 Java 프로젝트를 생성해 JPA 기본편 강의를 듣고 있습니다.Gitpod 프로젝트 셋팅 값- Java 17 버전- Gradle java 프로젝트[이슈사항]build.gradle 파일plugins { id 'java' id 'org.springframework.boot' version '3.3.4' id 'io.spring.dependency-management' version '1.1.6' } group = 'com.inflearn' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.hibernate:hibernate-core' // JPA 하이버네이트 implementation 'javax.xml.bind:jaxb-api' implementation 'com.h2database:h2' runtimeOnly 'com.h2database:h2' // H2 DB 드라이버 같은 역할 testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' } tasks.named('test') { useJUnitPlatform() } persistence.xml 파일<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"> <persistence-unit name="hello"> <properties> <!-- 필수 속성 --> <property name="jakarta.persistence.jdbc.driver" value="org.h2.Driver"/> <property name="jakarta.persistence.jdbc.user" value="sa"/> <property name="jakarta.persistence.jdbc.password" value=""/> <property name="jakarta.persistence.jdbc.url" value="jdbc:h2:~/jpa-basic"/> <property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.JtaPlatform" /> <!-- 옵션 --> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/> <property name="hibernate.hbm2ddl.auto" value="create" /> </properties> </persistence-unit> </persistence> > 위와 같이 build 파일과 resources/META-INF 폴더에persistence.xml 파일까지 셋팅을 해주었습니다.JpaMain 클래스 / Member 클래스 구현한 후,JpaMain 클래스 실행 시EntityManager 로 H2 Database에 Connection은 되지만, 아래와 같은 에러코드로 Persist 가 되지 않습니다. 여건 상 클라우드 환경에서 개발할 수 없기에, 이를 수행할 수 있는 방법을 알려주시면 감사드립니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
useEffect 사이클
function App() {const [count, setCount] = useState(0);const [input, setInput] = useState("");const isMount = useRef(false);// 1. 마운트 : 탄생useEffect(() => {console.log("mount"); }, []);// 2. 업데이트 : 변화, 리렌더링useEffect(() => {if (!isMount.current) {isMount.current = true;return; }console.log("update"); });// 3. 언마운트 죽음const onClickButton = (value) => {setCount(count + value);// console.log(count + value); };return (... );} 위 코드를 작성하고 새로고침을 하면위 처럼 콘솔에 모든 mount, unmount, update가 뜹니다....코드상 update도 안떠야하는데 왜 뜨는걸까요?
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
postgre 설치에 대해서 window 에서 설치하는 법 조금 더 리뷰 가능하신가요?
여건이 되신다면 postgre 설치에 대해서 window 에서 설치하는 법 조금 더 리뷰 가능하신가요? connection 에러가 발생해서 진도를 못나가네요. ㅠㅠ 우여곡절을 거쳐서 Server 는 생성했지만, npm run start:dev 실행후 [Nest] 62440 - 2024. 10. 03. 오후 8:22:15 ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)...error: "matzip-app" �����ͺ��̽� ���� at Parser.parseErrorMessage (C:\rna\server\node_modules\pg-protocol\src\parser.ts:369:69) at Parser.handlePacket (C:\rna\server\node_modules\pg-protocol\src\parser.ts:188:21) at Parser.parse (C:\rna\server\node_modules\pg-protocol\src\parser.ts:103:30) at Socket.<anonymous> (C:\rna\server\node_modules\pg-protocol\src\index.ts:7:48) at Socket.emit (node:events:519:28) at addChunk (node:internal/streams/readable:559:12) at readableAddChunkPushByteMode (node:internal/streams/readable:510:3) at Socket.Readable.push (node:internal/streams/readable:390:5) at TCP.onStreamRead (node:internal/stream_base_commons:191:23) 이에러가 계속 뜹니다. 도대체 몇시간 째 검색을 하고 있는지. ....
-
해결됨Next + React Query로 SNS 서비스 만들기
QueryClientProvider의 use client관련해서 궁금한게 있습니다
안녕하세요. Next에서 Tanstack-query 를 사용하실 때 궁금한게 있어서 질문드립니다.QueryClientProvider를 생성하실 때 아래와 같이 진행하신 다음에 layout.tsx 에서 감싸주고 있는데,QueryClientProvider에 use client를 사용하게 되면 결국 모든 하위 컴포넌트가 클라이언트 컴포넌트가 되는게 아닌가요?즉, layout.tsx 부터 모든 컴포넌트가 전부 클라이언트 컴포넌트로 사용되는게 맞는건가요...?'use client'; import React, { ReactNode, useState } from 'react'; import { QueryClientProvider, QueryClient } from '@tanstack/react-query'; import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; function RQProvider({ children }: { children: ReactNode }) { const [client] = useState( new QueryClient({ defaultOptions: { // react-query 전역 설정 queries: { refetchOnWindowFocus: false, retryOnMount: true, refetchOnReconnect: false, retry: false, }, }, }), ); return ( <QueryClientProvider client={client}> {children} {/* 개발 모드일때만 데브툴 사용*/} <ReactQueryDevtools initialIsOpen={process.env.NEXT_PUBLIC_MODE === 'local'} /> </QueryClientProvider> ); } export default RQProvider;
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
사전렌더링에 대해서 궁금합니다.
서버에서 사전렌더링(js 실행)할때 모든 react 컴포넌트들을 html로 변환한다고 하셨는데 서버에서 렌더링할때는 특정 경로에 있는 js만 html으로 렌더링 하는게 아니라 프로젝트의 모든 js코드를 html으로 렌더링하고 js bundle파일만 특정 경로에 있는 js bundle파일을 받아오는게 맞나요?