묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨김영한의 실전 자바 - 기본편
메서드 추출 시 매개변수
public static void volumeUp(MusicPlayerData data) { data.volume++; System.out.println("음악 플레이어 볼륨: " + data.volume); } 반복되는 기능을 이후에 재사용하기 위하여 메서드를 추출할 때매개변수에 (MusicPlayerData data)라고 적어주셨어요. 1) 이때 [MusicPlayerData]라는 것은 클래스(틀, 설계도, 붕어빵틀)인가요?이게 맞다면,, 그럼 이건 매개변수(파라미터)안에 클래스를 넣은것이라 볼 수 있나요??? 2) MusicPlayerData 클래스 안에 있는 int 변수[volume]이라는 것은 객체(붕어빵 틀에서 만들어진 붕어빵)라고 하는 것인가요? 용어 정리가 되지 않아 질문드립니다.답변 감사합니다..
-
해결됨독하게 시작하는 C 프로그래밍
fgets() 함수 사용관련
리눅스에서는 fgets() 함수를 쓴다고 하는데, 제 컴퓨터랑 강사님 컴퓨터는 Windows 환경인데 어떻게 fget()함수가 동작하나요?
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
중단점에 대한 질문 있습니다.
실습과장에서 중단점을 클릭 했고 디버그 했는데 중단점에서 멈추지 않고 텍스트 찍어준다면 어떤 문제가 있는 것 일까요. 구글링 해도 정확한 해답을 찾지 못해 이렇게 질문을 남기게 되었습니다.
-
미해결김영한의 실전 자바 - 중급 1편
정적 중첩 클래스 질문
외부 클래스안에 정적 중첩 클래스가 있고, 중첩 클래스 안에 정적 멤버와 인스턴스 멤버들이 있다고 가정할때, 다른클래스의 메인함수에서 외부클래스의 인스턴스를 생성하면, 이 때, 외부클래스의 대한 정보와, static멤버에 대한 정보가 메서드 영역에 저장되는데, 이때 정적 중첩 클래스도 static이라 같이 메서드영역에 정보가 저장되나요? 그리고 별개로 정적 중첩 클래스의 인스턴스를 생성해야만 중첩 클래스의 인스턴스를 생성해야만 중첩 클래스의 인스턴스 멤버들을 사용할 수 있는거죠??
-
미해결
리엑트 무한스크롤기능 ㅠㅠ 5일째 안되고있어요...
useQuery를 이용해서, apple검색api를 활용한 페이지를 만들고있는데요.apple검색api에는 'page, offset'이라는 옵션이 없어요ㅠㅠ그래서 slice해서 하고있는데ㅠㅠ분명 로그는 나오는데 observerTarget의 height값을 아무리 크게 100, 500px이렇게 해도 무한스크롤기능이 안돼는데ㅠㅠ...정말 5일째 이것만 붙잡고 끙끙앓고있어요 아무리 로그찍어도 왜 안되는질 모르겠어요ㅠ...도와주세요ㅠㅠ... List컴포넌트는import React, {useEffect, useState, useRef} from 'react' import Header from './inc/Header' import Star from './Star' import {useLocation} from 'react-router-dom' import { useQuery } from '@tanstack/react-query' import { fetchSearchWord } from '../api/searchApi' const List = () => { // 로딩상태 const [isLoading, setIsLoading] = useState(true); const location = useLocation() const dataFromState = location.state?.data // search컴포넌트에서 전달받은 데이터 // 만약state에 데이터가 없다면, 캐시에서 데이터를 가져오기 위해 useQuery사용 const {data: cacheData} = useQuery( { queryKey: ['resultSearchWord', location.state?.data?.searchQuery], // 캐시된 데이터를 위한 key(location.state.data객체의 속성 중 하나가 searchQuery임) queryFn: async() => { if(!dataFromState) { // state에 데이터가 없으면 캐시에서 데이터를 불러옴 const result = await fetchSearchWord(location.state?.data?.searchQuery) return result } return dataFromState }, enabled: !!location.state?.data // 데이터가 있을때만 쿼리실행 } ) const initialData = dataFromState || cacheData // state에서 데이터가 없으면 캐시된 데이터를 사용 // INF[s] const observerRef = useRef() const [displayData, setDisplayData] = useState([]) const [currentPage, setCurrentPage] = useState(1) useEffect(() => { console.log('currentPage:', currentPage); if (initialData) { const newData = initialData.slice(0, currentPage * 10); console.log('newData:', newData); setDisplayData(newData); // 새 데이터를 덮어쓰는 방식 } }, [initialData, currentPage]); // console.log(`displayData = ${JSON.stringify(displayData)}`); useEffect(() => { if (!initialData || initialData.length === 0) { console.log('observerRef.current is null'); return; } const observer = new IntersectionObserver( (entries) => { console.log('Observer entries:', entries); // 스크롤 이벤트가 발생하는지 확인 if (entries[0]?.isIntersecting) { console.log('Target is intersecting'); setCurrentPage((prev) => { const nextPage = prev + 1; console.log('nextPage:', nextPage); // nextPage 값을 확인 if (nextPage > Math.ceil(initialData.length / 10)) { console.log('모든 데이터가 로드되었습니다.'); return prev; // 모든 데이터가 로드되었을 때는 현재 페이지 유지 } return nextPage; // 새로운 페이지로 증가 }); } }, { threshold: 0, // 더 민감하게 설정 rootMargin: '100px', // 더 넓게 감지 } ); if (observerRef.current) { observer.observe(observerRef.current); } return () => observer.disconnect(); }, [initialData, observerRef]); // INF[e] useEffect(()=> { setIsLoading(true) // 검색 결과 로딩이 끝난 후 로딩 상태를 false로 변경 const timer = setTimeout(() => { setIsLoading(false) }, 500) // 임의의 딜레이(0.5초)를 추가해 로딩 표시 return () => clearTimeout(timer) // 컴포넌트 언마운트 시 타이머 정리 }, [initialData]) if(!initialData) { return <p>No data found. Please perform a search first.</p> } if(isLoading) { return <div id="container"> <div className="stick"></div> <div className="stick"></div> <div className="stick"></div> <div className="stick"></div> <div className="stick"></div> <div className="stick"></div> <h1 className="tit-Loadng">Loading...</h1> </div> } // console.log(`displayData = ${JSON.stringify(displayData)}`); // console.log('initialData:', initialData); return ( <> <Header></Header> <div className='box-wrap'> {displayData.length === 0 && <p>Loading more items...</p>} { displayData.map((item, idx) => { const sliceImg = item.screenshotUrls.slice(0,3) // 0번째부터 2번째까지(원본배열 안건드림) return <div className='box' key={idx}> <div className='top'> <div className='left'> <img src={item.artworkUrl60} alt={item.trackName}/> <div className='center'> <span className='title'>{item.trackName}</span> {/* <span className='subtext'>{item.shortDescription}</span> */} <span className='genre'>{item.primaryGenreName}</span> </div> </div> <div className='right'><button type='button'>받기</button></div> </div> <div className='middle'><Star item={item}></Star></div> <div className='bottom'> <ul className='imgbox'> { sliceImg.map((value, idx) => { return <li key={idx}><img src={value} alt=""/></li> }) } </ul> </div> </div> }) } <div ref={observerRef} className="observerTarget"></div> </div> </> ) } export default List scss는 @charset "utf-8"; .observerTarget { height: 1px; background-color: red; position: relative; } api기능은 let currentData = []; // 받은 데이터를 저장할 변수 let currentLimit = 10; // 요청할 데이터의 개수 export const fetchSearchWord = async (query, country = 'KR', entity = 'software', media = 'software', limit = currentLimit) => { const response = await axios.get(`https://itunes.apple.com/search`, { params: { term: query, country, entity, media, limit } }); // 받은 데이터를 현재 데이터에 추가 currentData = [...currentData, ...response.data.results]; return response.data.results; }
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
MyListEx 질문드립니다.
MyListEx 생성자에서 UserData를 매개변수로 받도록 설계한 이유에 대해 궁금합니다.MyNode라는 추상 자료형(ADT)을 정의해 두셨는데, 생성자에서 특정 구현체인 UserData를 직접 받는 방식이 추상화의 장점을 제한할 수 있다고 생각합니다.또한, onRemoveNode 메서드에서도 UserData 타입으로 변환하지 않고 MyNode에 정의된 메서드만으로도 충분히 기능 구현이 가능해 보이는데, 혹시 MyListEx는 UserData를 위한 전용 자료구조로 설계된 것인가요?그렇지 않다면, MyNode를 기반으로 유연성을 유지하도록 설계하는 것이 더 적합하지 않을까 하는 생각이 들어 질문드립니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
14강 입력 비활성화에 대해 궁금한 게 있습니다.
안녕하세요. 14강에서 CharacterPlayer에서 SetDead 함수를 오버라이드 하여 추가적으로 코드를 작성하셨는데, PlayerController를 가져와서 입력을 비활성화를 한 게 만약 이걸(입력 비활성화) 하지 않으면 게임이 끝난 후에도 애니메이션 동작은 하기 때문에 하신 건가요? 공격을 한다던가 회전을 할 수 있기 때문에 하신건지 궁금합니다..!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Zipkin Dependencies 화면 안나옴...
문제Zipkin Dependencies 화면만 안나옴... (Chrome 에서만 안됨... Firefox 에서는 됨...) 1) 개발자도구 확인 - NetworkYou need to enable JavaScript to run this app 확인https://support.google.com/adsense/answer/12654?hl=en위 링크를 확인해서 크롬에서 JavaScript 가 활성화 되어있는지 확인→ 이미 되어있었음... 2) 개발자 도구 확인 - ConsoleError creating WebGL context. 확인chrome://flagsANGLE graphics backend 옵션 확인 > OpenGL 설정 → 그래도 안됨… 3) 마지막..chrome://settings시스템 탭 클릭"가능한 경우 그래픽 가속 사용" 설정 켜기... → 성공… 같은 문제가 발생하시는 분들에게 도움이 되면 좋겠습니다. 참고 사이트입니다.https://help.lucid.co/hc/ko/articles/17480912789908-문제-해결-WebGLhttps://support.google.com/chrome/thread/25018979/status-could-not-create-a-webgl-context?hl=en
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
onclick이 쿼리 파라미터 전송을 하는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상품 수정 버튼을 클릭했을 때 이동하는 경로를 Thymeleaf 템플릿 엔진을 써서 작성했는데<button class="w-100 btn btn-primary btn-lg" onclick="location.href='editForm.html'" th:onclick="|location.href='@{/basic/items/{itemId}(itemId=${item.id})/edit}'|" type="button">상품 수정</button> 이런 경우에 실제 주소 뜨는걸 보면http://localhost:8080/basic/items/%7BitemId%7D(itemId=$%7Bitem.id%7D)/edit이렇게 뜨고 만약 다음과 같이 작성하면<button class="w-100 btn btn-primary btn-lg" onclick="location.href='editForm.html'" th:onclick="|location.href='@{/basic/items/{itemId}/edit(itemId=${item.id})}'|" type="button">상품 수정</button> http://localhost:8080/basic/items/2/edit 이렇게 경로가 뜨는데 왜 이런 차이가 발생하는 건가요? 제가 처음 이렇게 한 이유가(itemId=${item.id}) 이게 치환되는 주체는 {itemId}여야 하는 거고 그러면 선언 위치는 사실 상관없는 거 아닌가 해서 저렇게 했는데실제 url을 까보니까 아예 다르게 나와서 왜 이렇게 되는건지 궁금합니다. 그리고 또 하나의 궁금증으로는강사님께서 수정 부분 컨트롤러 메서드를 작성하실 때 다음과 같이 작성하셨는데public String editForm(@PathVariable Long itemId, Model model)그러면 위 코드를 보았을 때 아까 보았던 코드를 기반으로 생각했을 때th:onclick="|location.href='@{/basic/items/{itemId}/edit(itemId=${item.id})}'|" ItemId가 쿼리 파라미터 형식으로 전송되면서 서버로 넘어가는 지 그것도 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 관련 질문있습니다.
안녕하십니까 http://boj.kr/ec5eb19fa58d4c81a3b511d53ee8bf34위 풀이는 제가 푼 코드인데 통과는 했지만 효율적인 코드인지는 판단이 안 되어 이렇게 풀어도 괜찮은지 여쭙고자 질문 남깁니다. 그리고, 배열을 사용할 때 array를 써야할지 vector를 써야할지 감이 안 잡히는 경우가 종종 있는데.. 어떤 기준을 잡고 쓰면 좋을까요?? 좋은 강의 감사드립니다.답변 기다리겠습니다:)
-
해결됨독하게 시작하는 C 프로그래밍
문자열 입출력 코드설명에서
char szName[32] = {0} ;이렇게 변수를 만들면1바이트의 메모리가 32개가 할당된다고 이해가 되는데이게 맞나요?
-
해결됨[백문이불여일타] 데이터 분석을 위한 중급 SQL
CustomerID가 중복되서 나타나요
안녕하세요, 강의 중 선생님께서 예시들어주신 그대로 작성하면 저는 customerid 가 양쪽에 중복되서 나타나는데 왜그럴까요? 방지하기 위해서는 어떻게 해야할까요? 감사합니다.
-
미해결태블로 대시보드 기초
강의 자료 문의
안녕하세요. 해당 수업의 강의자료 어디서 다운로드 할 수 있는지가 궁금합니다. 감사합니다.
-
미해결[매출과 수익성장이 쉬워지는] 실무재무강의
수업자료는 어디서 받을수 있나요?
수업자료 있다고 되어있는데 못찾겠습니당
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
C++ 클래스를 레퍼런스로 가져오는 것이 의존성이 줄어든 코드인가요?
1강 후반부 내용 질문입니다..C++ 클래스에서도 헤더 인클루드 후 StaticClass()로 지정하는 것보다 ConstructorHelpers::FClassFinder를 사용하는 것이 더 바람직한 구조인가요? 아니면 그냥 둘 다 가능하다는 예시인건가요?
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
섹션4 5실습 컨테이너 실행X
안녕하세요 강사님, 강의를 재밌게 보고있는 학생입니다. 다름이 아니라 실습과정을 쭉 따라오다가 빌드도 다 되고, 이미지 생성과 컨테이너 생성까지는 모두 잘 되지만, 컨테이너 실행이 자꾸 중간에 막혀버리는 일이 발생하여 문의 남깁니다. 계속 다시 실행을 해봐도 이 상태이며 포트충돌도 없는 거 같은데 자꾸 오류가 납니다. 저의 노트북은 macM4pro입니다.
-
해결됨비전공자도 이해할 수 있는 DB 설계 입문/실전
카테고리 테이블의 색깔 컬럼에 #325645 이런 걸 넣는다면
만약 이렇게 색깔 컬럼에 RED 같은 걸 넣지 않고, #325645 를 위와 같이 중복해서 넣는다면, 이건 진짜 중복이라고 봐야 하나요? 진짜 중복이라는 생각은 드는데, #325645는 이미 특정 색을 지정하고 있어서 이것도 true, false처럼 생각해야 하나?라는 생각도 들고 뭔가 조금 헷갈려서 확인차 질문드립니다.
-
해결됨실전! Redis 활용
분산 락에 대해 질문 있습니다.
이전에 분산 락을 구현해본 경험이 있습니다.그때는 간단하게 구현을 하다보니 분산 락에 대해 꼬리 질문이 들어 온다면 어떤 질문들이 들어올지 궁금합니다.강사님께서 생각하시기에 분산 락 관련하여 질문을 한다면 혹시 어떤 식으로 질문을 하실지 궁금합니다.
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
반응형 디자인 만들기 -> imagePlaceholder 배리어블
안녕하세요 볼드님!반응형 디자인 만들기 14:00쯤 레이어 눈 아이콘 우클릭을하면 로컬 배리어블이 나와야하는데 나오질 않습니다.... ㅠㅠTimeFrame은 눈모양 우클릭 배리어블 적용이 잘되는데imagePlaceholder 홀더에는 우클릭 적용이 안됩니다... 어디서 부터 잘못된건지 모르겠네요ㅜㅜ 도와주세요..
-
미해결[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
Stack.navigator오류가 있어요
똑같이 해도 어떨떄는 문제가 있다고 하고 어떨떄는 문제가없다고 하는데[{ "resource": "/c:/Porject/ReactNative/pr/acliet/src/app/stack/AuthStackNavigator.tsx", "owner": "typescript", "code": "2741", "severity": 8, "message": "Property 'id' is missing in type '{ children: Element[]; }' but required in type '{ id: undefined; }'.", "source": "ts", "startLineNumber": 17, "startColumn": 6, "endLineNumber": 17, "endColumn": 21, "relatedInformation": [ { "startLineNumber": 63, "startColumn": 5, "endLineNumber": 63, "endColumn": 7, "message": "'id' is declared here.", "resource": "/c:/Porject/ReactNative/pr/acliet/node_modules/@react-navigation/core/lib/typescript/module/src/types.d.ts" } ]}] 오류로 id가 없다고 하네요import React from 'react'; import {createStackNavigator} from '@react-navigation/stack'; import AuthHomeScreen from '../../pages/AuthHomeScreen'; import LoginHomeScreen from '../../pages/LoginHomeScreen'; import SignupHomeScreen from '../../pages/SignupHomeScreen'; import {authNavigator} from '../../config/AuthNavigator'; export type AuthStackParams = { [authNavigator.AUTH_HOME]: undefined; [authNavigator.LOGIN]: undefined; [authNavigator.SIGNUP]: undefined; }; const Stack = createStackNavigator<AuthStackParams>(); const AuthStackNavigator = () => { return ( <Stack.Navigator> <Stack.Screen name={authNavigator.AUTH_HOME} component={AuthHomeScreen} /> <Stack.Screen name={authNavigator.LOGIN} component={LoginHomeScreen} /> <Stack.Screen name={authNavigator.SIGNUP} component={SignupHomeScreen} /> </Stack.Navigator> ); }; export default AuthStackNavigator; 대한 정보가 없을경우 답변이 어렵습니다.