묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨QGIS 입문자 올인원 스타터팩 (이론/실습형)
라인 길이 측정 끄는 방법 문의
안녕하세요. 버퍼 반경 측정 시 '라인 길이 측정'(줄자 아이콘)을 사용하여 반경을 측정하는데, 측정 후 어떻게 끄는 건가요? esc를 클릭하거나 아이콘을 클리하는 것으로는 끄지를 못하겠네요.
-
해결됨카프카 완벽 가이드 - ksqlDB
Compact Topic에 대하여
안녕하세요 항상 좋은 강의 해주셔서 감사합니다.다름이 아니라 제가 프로젝트 중에 유저가 알림 설정한 데이터를 kafka로 받아서 시세 데이터와 조인하여알림 메세지를 생성하려고합니다. 유저 알림 데이터는 boolean값을 가진 활성화여부와 삭제라는 기능이있습니다.그래서 kafka내에서 유저 알림 데이터를 최신화하기 위해서 찾아본 결과 compact topic이라는것을 발견하였고 실습중에 있습니다만 결과가 좋지않아서 질문드립니다.sudo docker exec -it kafka-1 kafka-topics --create --bootstrap-server 192.168.56.101:29092 --topic user-alert-set --partitions 6 --replication-factor 2 --config "cleanup.policy=compact" --config "min.compaction.lag.ms=5000" --config "max.compaction.lag.ms=10000 " --config "delete.retention.ms=3000" --config "segment.ms=3000" --config "min.cleanable.dirty.ratio=0.01"이런식으로 토픽을 생성하여 실습한 결과1. Key A: value1 넣음 -> [A:value1] 2. Key A: value2 넣음 -> [A:value1, A:value2] 3. Key B: value1 넣음 -> [ A:value2, B:value1] 4. Key B: value2 넣음 -> [A:value2, B:value1, B:value2]이렇게 진행되었습니다. 삭제를 위한 tombstone메세지 또한 위와같은 형식으로 진행되었습니다.제가 이해한 바로는 같은 키의 값이 들어오면 들어온 값으로 최신화 혹은 삭제를 하는 설정으로 이해를 해서이 결과가 저는 이해가 되지않습니다. gpt한테 물어보니 로그 컴팩션은 "head"와 "tail" 두 부분으로 나뉩니다:Tail: 이미 컴팩션이 완료된 부분 (깔끔한 상태)Head: 아직 컴팩션되지 않은 활성 부분 (더티 상태)예시:1. A:value1 입력 -> [A:value1] 2. A:value2 입력 -> [A:value1, A:value2] (컴팩션 발생) -> [A:value2] // A는 tail 부분으로 이동 3. B:value1 입력 -> [A:value2, B:value1] // B는 head 부분에 위치 즉, A는 이미 컴팩션되어 tail 부분에 최신 값만 있고, B는 아직 head 부분에 있어서 컴팩션되지 않은 상태로 남아있는 것입니다.이는 정상적인 동작이며, B도 시간이 지나면 컴팩션될 것입니다.라는 답변을 받았지만 시간이 지나도 키가 B인 데이터는 여전히 두개로 남아있었습니다.혹시 이유를 아신다면 설명해주시면 감사하겠습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
일대다 페치 조인 데이터 뻥튀기
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의에서 컬렉션을 페치 조인했을때 컬렉션의 요소 만큼 결과 리스트가 증가한다 하였습니다. 하지만 아래와 같이 코드를 실행했는데 결과는 한번만 출력이 됩니다.찾아보니 JPA에서 내부적으로 중복을 없애준다는데 맞는 이야기 인가요??package jpashop.jpql; import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManagerFactory; import jakarta.persistence.EntityTransaction; import jakarta.persistence.Persistence; import java.util.List; public class Main { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); //트랜잭션 생성 EntityTransaction tx = em.getTransaction(); //트랜잭션 시작 tx.begin(); try { Team teamA=new Team(); teamA.setName("팀A"); em.persist(teamA); Team teamB=new Team(); teamB.setName("팀B"); em.persist(teamB); Member member1=new Member(); member1.setUsername("member1"); member1.setAge(10); member1.setTeam(teamA); em.persist(member1); Member member2=new Member(); member2.setUsername("member2"); member2.setTeam(teamA); member2.setAge(15); em.persist(member2); Member member3=new Member(); member3.setUsername("member3"); member3.setTeam(teamB); member3.setAge(20); em.persist(member3); em.flush(); em.clear(); String query="select t From Team t join fetch t.members where t.name='팀A'"; List<Team> result = em.createQuery(query, Team.class) .getResultList(); for (Team t:result){ System.out.println("member= " +t.getName()+"|members="+t.getMembers().size()); for (Member m:t.getMembers()){ System.out.println("- member ="+m); } } tx.commit(); }catch (Exception e){ e.printStackTrace(); tx.rollback(); }finally { em.close(); } emf.close(); } } String query="select t From Team t join fetch t.members";String query="select t From Team t"; 두 결과 사이즈를 찍어도 동일하게 2가 나옵니다.
-
미해결해외 빅테크 코딩 인터뷰: LeetCode 포기자의 합격 공부법
Mock Interview
마지막에 mock interview를 chatgpt를 가지고 하신것 같은데, 혹시 어떤 prompt를 사용하셨는지 공유해 주실 수 있나요?
-
해결됨비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)
Redis vs Memcached
안녕하세요. 강의 잘 듣고 있습니다!현재 개인 프로젝트에 Redis를 적용해보려고 합니다.구현하려는 기능은 주식 가격 요청 API로, 동일한 주식 종목을 여러 번 호출했을 때 캐시에서 값을 가져오는 로직입니다.Redis 외에도 Memcached라는 인메모리 캐시 서버가 있는데, 이 두 가지 서버 중 어떤 기준으로 선택하는 것이 좋을지 고민입니다.기술을 선택할 때, 근거를 명확히 하는 연습을 하는 것이 중요한가요?예를 들어, Redis는 리스트, 셋, 해시, 정렬된 셋 등 다양한 데이터 구조를 지원하고, 영속성 기능도 제공하는데, 이런 이유로 Redis를 선택해야 한다고 말할 수 있을까요?제가 구현하는 기능은 단순 조회 기능이라 Memcached도 적합할 수 있을 것 같지만, 이를 다른 사람들에게 설득할 근거와 이유는 어떻게 제시하는 것이 좋을까요?
-
미해결[2024년 개정]이것이 진짜 한글자동화다[기본편]
3:53부터 막혀요
3:53 부터 막혀요...
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
12.11 오류 관련
강의 19:07까지 따라하다가 오류가 갑자기 많이 뜨는데 어디에서 잘못된 것인지 모르겠습니다...DiaryList.jsximport "./DiaryList.css"; import Button from "./Button"; import DiaryItem from "./DiaryItem"; const DiaryList=({data})=>{ return <div className="DiaryList"> <div className="menu_bar"> <select> <option value={"latest"}>Newest</option> <option value={"oldest"}>Oldest</option> </select> <Button text={"write new diary"} type={"POSITIVE"} /> </div> <div className="list_wrapper"> {data.map((item)=><DiaryItem key={item.id} {...item}/>)} </div> </div>; }; export default DiaryList;DiaryItem.jsximport {getEmotionImage} from "../util/get-emotion-image"; import Button from "./Button"; import "./DiaryItem.css"; const DiaryItem=({id,emotionId,createdDate,content})=>{ return (<div className="DiaryItem"> <div className={`img_section img_section_${emotionId}`}> <img src={getEmotionImage(emotionId)}/> </div> <div className="info_section"> <div className="created_date"> {new Date(createdDate).toLocaleDateString()}; </div> <div className="content">{content}</div> </div> <div className="button_section"> <Button text={"수정하기"} /> </div> </div> ); }; export default DiaryItem;App.jsximport './App.css' import{useReducer,useRef,createContext} from "react"; import {Routes,Route} from "react-router-dom"; import Home from "./pages/Home"; import Diary from "./pages/Diary"; import New from "./pages/New"; import Edit from "./pages/Edit"; import Notfound from "./pages/Notfound"; const mockData=[ { id:1, createdDate:new Date("2025-02-18").getTime(), emotionId:1, content:"1번 일기 내용", }, { id:2, createdDate:new Date("2025-02-17").getTime(), emotionId:2, content:"2번 일기 내용", }, { id:3, createdDate:new Date("2025-01-15").getTime(), emotionId:3, content:"3번 일기 내용", }, ]; function reducer(state,action){ switch(action.type){ case "CREATE": return [action.data,...state]; case "UPDATE": return state.map((item)=> String(item.id)===String(action.data.id) ?action.data : item ); case "DELETE": return state.filter( (item)=>String(item.id)!==String(action.id) ); default: return state; } } export const DiaryStateContext=createContext(); export const DiaryDispatchContext=createContext(); function App() { const [data,dispatch]=useReducer(reducer,mockData); const idRef=useRef(3); //새로운 일기 추가 const onCreate=(createdDate,emotionId,content)=>{ dispatch({ type:"CREATE", data:{ id: idRef.current++, createdDate, emotionId, content, }, }); }; //기존 일기 수정 const onUpdate =(id,createdDate,emotionId,content)=>{ dispatch({ type:"UPDATE", data: { id, createdDate, emotionId, content, }, }); }; //기존 일기 삭제 const onDelete=(id)=>{ dispatch({ type:"DELETE", id, }); }; return ( <> <DiaryStateContext.Provider value={data}> <DiaryDispatchContext.Provider value={{ onCreate, onUpdate, onDelete, }} > <Routes> <Route path="/" element={<Home />} /> <Route path="/new" element={<New />} /> <Route path="/diary/:id" element={<Diary />} /> <Route path="/edit/:id" element={<Edit />} /> <Route path="*" element={<Notfound />} /> </Routes> </DiaryDispatchContext.Provider> </DiaryStateContext.Provider> </> ); } export default App
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
memory 자동 설정되는 부분 관련하여...질문있습니다.
10장 강의 내용 따라하다가 address editor부분에서 강의 내용에는 0x43c0_0000 , 64k ... 자동으로 할당되는것 같은데(밑에 라인도 같습니다.) 그런데 저는 0x4000_0000, 4k로 자동 설정되서 나옵니다. 그래서 매번 수정해줘야 하는데, 강의 내용대로 자동으로 설정되서 나오게 하는 방법 있나요?
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
매번 새로운 프로젝트를 실행할 때 cmd 설정문의
저희가 수업진행하면서 프론트엔드,백엔드에 많은 npm으로 설치하잖아요. 이런 라이브러리들을 매번 새로운 프로젝트마다설정해야할까요??비슷한 작업을 뽑아낸다고할때 기존 지금 폴더를 다시 연 다음에 이미지 및 텍스트 수정할때말고 다시 비슷한 프로젝트 폴더를 만들어서 한다고 하면 반드시 다시 전부 깔아야하는거죠? ㅠㅠ
-
해결됨[Unity6] 나만의 서바이벌 게임 만들기
TextMeshPro 폰트 깨짐
안녕하세요 4강 Key UI 학습 중에 질문이 있어서 글을 남깁니다.위의 사진과 같이 Game 화면에서 폰트가 깨져 알아볼 수 없는 형태가 됩니다.NotoSans와 Liberation 모두 저런 현상이 나타납니다. Atlas Resolution, Character Set, Render Mode 모두 재설정해봤는데 계속 깨집니다ㅠㅠ
-
미해결
강의 자막 처릭 기능이 없습니다.
저 다른 강의들은 자막기능이 있고 활성화가 되어 있는데 유독 하필 듣는 강의에서만 자막기능이 없고 ,단축키를 눌러도 단축키 처리가 안돼더라고요 ㅜㅜ 소플의 처음 만난 리액트 부분이며,그리고 문의하기 버튼 눌러도 페이지가 흰색바탕의 페이지로 로드만 되어있지 다른것을 찾아 보니 없습니다 ㅜㅜ
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"
v-pre는 설명이 없나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.v-once 설명하실 때 소스 코드에 v-pre가 남아있긴 한데 따로 설명은 필요 없나요?
-
해결됨아바타 커뮤니티앱 만들기 (React Native Expo)
백엔드 서버 실행하기에서 npm run start:dev입력후 에러가 떠요;
질문이 많아 죄송합니다 선생님 ㅠㅠ아래와 같이 오류메시지가 발생됩니다,,
-
해결됨Azure Native로 나만의 GPT 만들기
Azure function 트러블 슈팅 건
안녕하세요 , 수강 잘 들었습니다 ㅎㅎ강의 커리큘럼을 다 수강 완료 해서 Azure function을 활용한 SaaS 방식의 서비스를 쫌더 깊게 이해하는 시간을 가졌구요 제가 지금 기존 강의 내용에 살을 더 붙여 langChain 기반으로 Rag를 적용 시켜서 개발을 완료한 상태 입니다. 근데 여기서 문제가 되는 부분이 로컬에서는 기능을 잘 수행을 하는데 agent 함수를 배포를 하게 되면 에러가 뜨는지 , 기능을 수행하지 못합니다. 서비스 버스에 메시징은 잘 쌓이는데 agent function 에서 그 메시징 리퀘스트도 받질 못하는거 보니 , 런 타임에서 에러가 난거 같은데 해당 함수 Application Insights 대쉬 보드에서 확인하려니 뭐가 뭔지 알수가 없더라구요 ... 서버 로그를 확인 하고 싶은데 혹시 어떤 방법으로 이런 트러블을 해결할수 있을까요 ...
-
미해결팀 개발을 위한 Git, GitHub 입문
안녕하세요! 강의 자료 부탁드립니다!
안녕하세요강의 정말 잘봤습니다!!그 동안 필요할 때마다 서칭해서 깃과 깃허브에 대해 단편적으로만 알고 있었는데 이 강의를 통해 제대로 쉽고 빠르게 배울 수 있었습니다! 정말 감사합니다~강의 자료를 통해 다시 한 번 공부해보고 싶은데 강의 자료 받을 수 있을까요??ehdgus6503@naver.com 입니다!
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
생성자에서 로딩과, Init함수에서 로딩의 차이점이 궁금합니다.
안녕하세요.애셋을 로딩할 때 생성자와 Init함수의 차이 때문에 사용 API가 달라져야하는 이유가 궁금합니다. 생성자 단계에서 단순히 LoadObject<UStudent>(nullptr, *TopSoftObjectPath); 를 통해 로딩할 순 없는 정확한 이유를 모르곘습니다...! 또한 Init()의 LoadStudentObject()에서 LoadObject<>()로 TopStudent를 리턴 받은 후에, 포인터에 대한 nullptr 체크를 따로 하지 않는 이유는 LoadObject또한 해당 애셋이 무조건 있어야 올바르게 동작하기 때문인가요?
-
미해결
안드로이드 스튜디오로 flutter 실행 시 JAVA 오류
웹으론 잘 실행되는데 안드로이드 에뮬레이터나 핸드폰 연결해서 실행시 이런 오류가 뜹니다ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOMEPlease set the JAVA_HOME variable in your environment to match thelocation of your Java installation.Error: Gradle task assembleDebug failed with exit code 1 찾아보니 보통 환경변수 문제인 거 같던데 환경변수는 당연히 수도 없이 확인했고, 구글링하면서 해보라는 거 이것저것 싹 다 해봤는데도 해결이 안 됩니다... 환경 변수는 이렇게 입력되어 있구요java -version 입력 시openjdk version "17.0.14" 2025-01-21OpenJDK Runtime Environment Temurin-17.0.14+7 (build 17.0.14+7)OpenJDK 64-Bit Server VM Temurin-17.0.14+7 (build 17.0.14+7, mixed mode, sharing) flutter doctor 입력 시[√] Flutter (Channel stable, 3.29.0, on Microsoft Windows [Version 10.0.19045.5487], locale ko-KR)[√] Windows Version (10 Pro 64비트, 22H2, 2009)[!] Android toolchain - develop for Android devices (Android SDK version 35.0.1)X Cannot execute $JAVA_HOME\bin\java to determine the version[√] Chrome - develop for the web[X] Visual Studio - develop Windows appsX Visual Studio not installed; this is necessary to develop Windows apps.Download at https://visualstudio.microsoft.com/downloads/.Please install the "Desktop development with C++" workload, including all of its default components[√] Android Studio (version 2024.2)[√] VS Code (version 1.97.2)[√] Connected device (4 available)[√] Network resources 진짜 하루종일 여기저기 다 뒤져가면서 안 해본게 없는 거 같은데 뭘 해봐도 그대로라 미치겠습니다..
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
FArchive 포인터의 해제 질문, 직렬화 BufferArray 질문
안녕하세요.파일을 읽고 쓸 때 FArchive* 객체를 CreateFileWriter나 Reader함수를 통해 생성한 후, 해제를 꼭 해주시는데요.저 Create함수 내부적으로 동적 할당을 진행하는 것이기 때문인가요?또한, UObject클래스의 객체 정보를 직렬화 할 때 Buffer가 따로 필요한 이유가 궁금합니다.마지막으로, 직렬화 된 UObject 객체를 Read할 때만 FMemoryReader가 필요한지 궁금합니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
[해결완료] TodoItem을 import했지만, 코드에서 사용하지 않아서 발생하는 ESLint 경고
한 입 크기로 잘라먹는 리액트 책 잘 보고 있습니다.카운터앱 프로젝트는 완료 후,두 번째 할 일 관리 앱 실행 중에 문제가 발생해서 문의드려요. 1. 문제 : 326쪽까지 문제없이 잘 실행이 되었는데, 327쪽 <div>{it.content}</div> 이 코드를 넣었을때부터 327쪽 책과 동일하게 코드 넣었는데, 에러 문구가 아래처럼 나왔어요. WARNING in [eslint] src\component\TodoList.js Line 1:8: 'TodoItem' is defined but never used no-unused-vars webpack compiled with 1 warning TodoItem을 import했지만, 코드에서 사용하지 않아서 발생하는 ESLint 경고인 것 같은데, {todo.map((it) => ( <TodoItem key={it.id} content={it.content} /> ))}여기서 TodoItem이 개별 할 일을 나타내는 컴포넌트라고 가정하고 content를 props로 전달했습니다.(이때, key 값으로 it.id를 사용하여 React에서 리스트 렌더링 최적화를 도와야 합니다.)파란색 부분과 같은 조언을 받아 코드를 수정했더니 npm run start 실행하면 서버에서 지금까지 한 모든 화면이 안 보이고 백지화 되었어요. ㅠㅠ 기존에 html5로 이펍3 만들기 조금 배웠고, css개념 어느 정도 이해하는 수준의 초보인데,책 보고 프로젝트1 마치고, 프로젝트2도 거의 다 와가서 재미있게 하는 중에 날벼락이 ㅠㅠ; 혼자서는 도저히 해결이 안 될 거 같아서 강의등록 후 문의드려요.. 초보라 문의도 이렇게 하는게 맞는지 모르겠네요.답변 부탁드릴게요~ 참고 todoeditor.js return 이하App.js import "./App.css"; import Header from "./component/Header"; import TodoEditor from "./component/TodoEditor"; import TodoList from "./component/TodoList"; import { useState, useRef } from "react"; const mockTodo = [ { id: 0, isDone: false, content: "React 공부하기", createDate: new Date().getTime(), }, {id: 1, isDone: false, content: "빨래 널기", createDate: new Date().getTime(), }, {id: 2, isDone: false, content: "노래 연습하기", createDate: new Date().getTime(), }, ]; function App() { const idRef = useRef(3); const [todos, setTodos] = useState(mockTodo); const onCreate = (content) => { const newItem = { id: idRef.current, content, isDone: false, createDate: new Date().getTime(), }; setTodos([newItem,...todos]); idRef.current += 1; }; return ( <div className="App"> <Header /> <TodoEditor onCreate={onCreate} /> <TodoList todos={todos}/> </div> ); } export default App;
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링컨테이너에 대해서
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]스프링컨테이너는 그러면 단순히 브라우저에서 받은 요청을 컨트롤러에 매핑시켜주어 스프링컨테이너에 등록되어 있는 빈? 이라는 것과 매칭 시켜 존재한다면 viewResolver에 연결시켜 화면을 띄워주고 없다면 오류를 발생시켜 주는 역할인가요?