묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결레트로의 유니티 C# 게임 프로그래밍 에센스
텍스트 드래그 앤 드롭
게임매니저 2/2 에 이제 텍스트가아닌 텍스트메쉬프로를 쓰게되었는데요 선생님강의처럼 드래그엔 드롭이안되네요 ㅠㅠ 아시는분계실까요score text 랑 best score text가 드래그 드롭이안됩니다..
-
해결됨비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
전체 핀이 조회되지 않습니다.
15개 장소db가 있는데 5개만 조회 됩니다.코드가 잘못된 부분이 있을까요? 아무리 찾아도 잘 모르겠습니다;;function getContent(data) { // 유튜브 섬네일 id 가져오기 console.log(data); let replaceUrl = data.videoUrl; let finUrl = ""; replaceUrl = replaceUrl.replace("https://youtu.be/", ""); replaceUrl = replaceUrl.replace("https://youtube.com/embed", ""); replaceUrl = replaceUrl.replace("https://youtube.com/watch?v=", ""); finUrl = replaceUrl.split("&")[0]; // 인포윈도우 가공하기 return ` <div class="infowindow"> <div class="infowindow-img-container"> <img src="https://img.youtube.com/vi/${finUrl}/mqdefault.jpg" class="infowindow-img" /> </div> <div class="infowindow-body"> <h5 class="infowindow-title">${data.title}</h5> <p class="infowindow-address">${data.address}</p> <a href="${data.videoUrl}" class="infowindow-btn" target="_blank">영상이동</a> </div> </div> `; } // HTML 코드로 바꾸는 함수 function getContent(data) { let videoId = ""; let replaceUrl = data.videoUrl; replaceUrl = replaceUrl.replace("https://youtu.be/", ""); replaceUrl = replaceUrl.replace("https://www.youtube.com/embed/", ""); replaceUrl = replaceUrl.replace("https://www.youtube.com/watch?v=", ""); videoId = replaceUrl.split("&")[0]; const result = `<div class="infowindow"> <div class="infowindow-img-container"> <img src="https://img.youtube.com/vi/${videoId}/mqdefault.jpg" class="infowindow-img" alt="..."> </div> <div class="infowindow-body"> <h5 class="infowindow-title">${data.title}</h5> <p class="infowindow-text">${data.address}</p> <a href="https://youtu.be/${videoId}" target="_blank" class="infowindow-btn">영상이동</a> </div> </div>`; return result; } async function setMap(dataSet) { markerArray = []; infowindowArray = []; for (var i = 0; i < dataSet.length; i ++) { // 마커를 생성합니다 let coords = await getCoordsByAddress(dataSet[i].address) var marker = new kakao.maps.Marker({ map: map, // 마커를 표시할 지도 position: coords, // 마커를 표시할 위치 }); markerArray.push(marker); // 마커에 표시할 인포윈도우를 생성합니다 var infowindow = new kakao.maps.InfoWindow({ content: getContent(dataSet[i]), // 인포윈도우에 표시할 내용 }); infowindowArray.push(infowindow); // 마커에 mouseover 이벤트와 mouseout 이벤트를 등록합니다 // 이벤트 리스너로는 클로저를 만들어 등록합니다 // for문에서 클로저를 만들어 주지 않으면 마지막 마커에만 이벤트가 등록됩니다 kakao.maps.event.addListener( marker, "click", makeOverListener(map, marker, infowindow, coords)); kakao.maps.event.addListener( map, "click", makeOutListener(infowindow)); } } // 인포윈도우를 표시하는 클로저를 만드는 함수입니다W // 1. 클릭시 다른 인포윈도우 닫기 // 2. 클릭한 곳으로 지도 중심 옮기기 function makeOverListener(map, marker, infowindow, coords) { return function() { // 1. 클릭시 다른 인포윈도우 닫기 closeInfoWindow(); infowindow.open(map, marker); // 2. 클릭한 곳으로 지도 중심 옮기기 map.panTo(coords) }; } let infowindowArray = []; function closeInfoWindow(){ for (let infowindow of infowindowArray) { infowindow.close(); } } // 인포윈도우를 닫는 클로저를 만드는 함수입니다 function makeOutListener(infowindow) { return function() { infowindow.close(); }; } /* ********************************************** 5. 카테고리 분류 */ // 카테고리 const categoryMap = { korea: "한식", china: "중식", japan: "일식", america: "양식", wheat: "분식", meat: "구이", sushi: "회/초밥", etc: "기타", }; const categoryList = document.querySelector(".category-list"); categoryList.addEventListener("click", categoryHandler); async function categoryHandler(event) { const categoryId = event.target.id; const category = categoryMap[categoryId]; try { // 데이터 분류 let categorizedDataSet = await getDataSet(category); // 기존 마커 삭제 closeMarker(); // 기존 인포윈도우 닫기 closeInfoWindow(); setMap(categorizedDataSet) } catch (error) { console.error(error); } } let markerArray = []; function closeMarker() { for (marker of markerArray) { marker.setMap(null) } } async function setting() { try { const dataSet = await getDataSet(); setMap(dataSet); } catch (error) { console.error(error); } } setting();
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
EventHandler<T> 를 사용하는 이유가 무엇인가요?
Listener 클래스에 args.Completed += new EventHandler<SocketAsyncEventArgs>(OnAcceptCompleted); 부분을 args.Completed += OnAcceptCompleted; 이렇게 바꾸어도 문제가 생기지 않는데 왜 EventHandler<T> 를 사용하는 것인가요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
스프링이 제공하는 기능과 스프링 빈의 관계
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]스프링이 제공하는 트렌잭션 AOP를 사용하면 스프링 부트에서 관련된 로직을 자동으로 스프링 빈으로 등록한다는 설명에서 궁금한 점이 생겼습니다. 개발자들이 직접 컴포넌트 스캔이나 @Controller 와 같은 애너테이션을 사용해서 등록하는 빈들과 별개로 트렌젝션과 같은 부가 가능또한 빈으로서 관리가 되어야 사용할 수 있는 것인 걸까요? 어떻게 보면 당연히 등록되어야지! 라는 생각도 들지만, 스프링 빈으로 등록이 되어야하는 객체에 기준이 있는건지 궁금합니다. 예상하는 기준은 다음과 같습니다.1. 개발자가 서비스 로직을 만들기 위해 개발되는 모든 것은 스프링 빈으로 등록하여 싱글톤으로 용이하게 관리하며 자동의존 주입을 받는다. 2. 데이터 접근 기술이나 트랜잭션 같이 스프링에서 편리하게 관리할 수 있게 만들어 놓은 것을 사용하려면 스프링 빈으로 등록해서 사용해야한다. 2-1. 다만 스프링에서 제공하는 기능적인 기술은 스프링 부트를 사용시 자동으로 등록해준다.
-
미해결Do it! Node.js 프로그래밍 입문
22강 연락처 추가하기 - css 파일 경로 지정
모듈화한 _header.ejs 파일에서 css 지정경로가 왜href="/css/style.css" 가 되는지 궁금합니다. _header.ejs 파일은 views폴더의 하위 폴더인 include안에 저장되어 있는데, 만약 css 파일의 상대경로를 지정하려면href="../../public/css/style.css"가 되어야 하지 않나요?
-
미해결코드로 배우는 React 19 with 스프링부트 API서버
챕터 8 카카오 토큰 받기 이후
카카오 토큰 받기 이후로 많은 오류가 한번에 떠서 질문 드립니다!부트 서버에서도 member.service, impl에 콘솔 찍은것도 에러로 인해 안뜹니다상황마다 500오류 400오류 grant value 오류 등이 계속 뜹니다 ㅜㅜ 부트https://github.com/hyeonbin03/IntelliJHub일단 부트 코드는 선생님 주셨던 파일 참고해서 Member Modify 기능까지 작성 완료 된 상태입니다 리엑트https://github.com/hyeonbin03/WebStromHub깃 주소 남겨드겠습니다 ㅠㅠ
-
미해결스프링 프레임워크 입문
wro4j가 없습니다.
자바 8버전이 안되서 17로 했는데 wro4j가 안뜹니다.
-
미해결Nuxt.js 시작하기
에러 페이지 정의 방법 강의 문의
안녕하세요 에러 페이지 정의 방법에서 layouts 폴더 하위에 error.vue 정의하고, /profile 적성 하면 자동으로 error.vue 컴포넌트가 보이는데요~ 이게 nuxt 자체에서 에러가 발생하면 layouts 하위 error.vue가 정의 되어 있으면 사용자가 정의한 페이지로 라우팅 되게 설정이 되어 있는건가요?? 답변 미리 감사합니다.
-
해결됨3D 모델링 입문을 위한 라이노(Rhino) '꿀팁' Part.1
컨트롤 + A를 클릭해도 커브가 사라지지 않는 이유는 뭘까요?
컨트롤 + A를 클릭해도 커브가 사라지지 않는 이유는 뭘까요?
-
미해결레트로의 유니티 C# 게임 프로그래밍 에센스
안녕하세요 랜덤오브젝트 생성기에서 질문있습니다.
16:04 에 prop prefabs에 저는 사이즈가 안나오는데 왜그럴까요..?using System.Collections; using System.Collections.Generic; using UnityEngine; public class SpawnGenerator : MonoBehaviour { public GameObject[] propPrefabs; private BoxCollider area; public int count = 100; private List<GameObject> props = new List<GameObject>(); void Start() { area = GetComponent<BoxCollider>(); for (int i = 0; i < count; i++) { Spawn(); } area.enabled = false; } private void Spawn() { int selection = Random.Range(0, propPrefabs.Length); GameObject selectedPrefab = propPrefabs[selection]; Vector3 spawnPos = GetRandomPosition(); GameObject instance = Instantiate(selectedPrefab, spawnPos, Quaternion.identity); props.Add(instance); } private Vector3 GetRandomPosition() { Vector3 basePosition = transform.position; Vector3 size = area.size; float posX = basePosition.x + Random.Range(-size.x/2f, size.x/2f); float posY = basePosition.y + Random.Range(-size.y/2f, size.y/2f); float posZ = basePosition.z + Random.Range(-size.z/2f, size.z/2f); Vector3 spawnPos = new Vector3(posX,posY,posZ); return spawnPos; } // Update is called once per frame void Update() { } }
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
자바스크립트 배열 email split 콘솔 내용 복사 후 주석처리
안녕하세요 자바스크립트 배열 중에 email split 따라하면서 콘솔에 있는 내용 복사해서 vb Code에 붙혀 넣고 주석처리 했습니다.근데 주석 뒤에 "codecamp": Unknown word. 라고 나타납니다. 이건 왜 그런가요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
리소스가 정확히 뭔가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]저번 HTTP 웹지식 강의에서는 리소스가 명사? 라고 했던거 같은데 여기서는 정적 리소스, 동적리소스라고 하니깐 리소스가 정확히 뭔지 감이 안 잡히네요. 완벽히 짖고 넘어가고 싶네요
-
해결됨홍정모의 따라하며 배우는 C언어
멀티 쓰레딩이란?
안녕하세요, 멀티 쓰레딩 강의를 보고 궁금점이 생겨 질문드립니다. 물론 여기서 완벽히 이해하고 갈 예정은 아닙니다. 추후 cpp강의까지 연계하여 공부할 것이기 때문에 제가 이해한 개념이 맞는지 궁금하여 질문 드립니다.멀티 쓰레딩이란?프로그램에서 원래 한가지 일 밖에 못하는데 멀티 쓰레딩 이라는 개념으로 여러가지 일을 동시에 해주는 것이 맞을까요?예를 들어서 계산기가 있고 계산기를 사용하여 답을 얻고자 하는 사람이 3명일 때 쓰레드가 하나 일 경우에는 한 사람씩 순서대로 계산기 사용해야 하지만 쓰레드가 3개일 경우엔 각 사람마다 각자의 계산기를 통해 동시에 계산할 수 있는 그런 느낌이려나요?더 나아가서 실시간 서버와 통신하는 게임 같은 경우에도 많은 유저가 서버에게 요청하는데 쓰레드가 하나일 경우엔 이걸 하나씩 처리하지만, 멀티 쓰레딩을 사용하면 여러 개 처리하는 느낌일까요?메인 쓰레드와 쓰레드 생성강의에서 쓰레드라는 개념으로 보여주신 그림입니다. 위 그림을 통해 이해했던 개념이 프로그램에는 메인 쓰레드가 있고 메인 쓰레드가 처리해야 할 일이 많을 경우 자신을 복제하여 분신을 만들고(쓰레드 생성) 분신(쓰레드)에게 일을 할당하여 일을 시키고 프로그램이 끝나기 전 메인 쓰레드는 자신의 분신(쓰레드)과 다시 합체한다음 프로그램이 종료되는 느낌일까요? 이 과정에서 아직 분신(쓰레드)가 할당한 일을 하고 있다면 기달렸다가, 합체하고 종료되는 건가요?멀티 쓰레딩의 큰 개념은 결국 하나?강의 중 c언어 표준에는 멀티 쓰레딩이라는게 없어서 운영체제에서 제공하는 api을 통해서 멀티 쓰레딩을 할 수 있다고 하셨는데요, 그러시면서 윈도우에서 멀티 쓰레딩을 사용하는 방법과 gcc컴파일러에서 멀티 쓰레딩 사용하는 방법에 대해서 보여주셨는데 윈도우에서는 windows.h헤더파일과 쓰레드에 사용되는 전용 함수를 사용하셨고gcc컴파일러에선 pthread.h헤더파일과 쓰레드에 사용되는 전용 함수를 사용하셔서 구현을 해주셨는데요운영체제 api마다 c언어에서 멀티 쓰레드의 대한 제공하는 헤더파일과 함수, 문법과 표현법이 모두 달라서 이번 예제에서 조차 윈도우와 gcc컴파일러에서 작성한 방법이 달랐지만 결국 큰 틀은 쓰레드를 생성하고 쓰레드에게 할 일을 배정하고 프로그램이 끝나기 전 쓰레드들을 다시 하나로 합치는 이 과정은 어느 환경이든 다 똑같은 개념일까요?여담으로 멀티 쓰레딩과 표준에 대하여C언어 표준에는 멀티 쓰레딩이 없다고 하셔서 각 운영체제마다 다른 기술을 사용해서 구현해야 하는데 CPP언어 표준에는 멀티 쓰레딩이 있나요?? 항상 친절한 답변 남겨주셔서 감사합니다.
-
미해결
수강증
생년월일이 표시 된 수강증을 발급 받을 순 없나요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
Scanner Util 패키지
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]제가 코드를 작성했을 때는 영한님 강의에서처럼 저절로 import java.util.Scanner;가 생기지않고 사진과 같이 java.util.Scanner로 되더라고요. 혹시 따로 무슨 설정을 만져야 할까요??-감사합니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
사용자 데이터를 localstorage에 저장해도 되나요??
안녕하세요 선생님!선생님 강의를 정말 잘 듣고 있는데요! 강의에 대한 질문은 아니지만 다른 곳에 물어볼 곳이 없어서 선생님께 여쭤봅니다. 제가 이번에 백앤드분들과 프로젝트를 준비하고 있는데 로그인 과정에서 jwt토큰을 사용한다고 합니다. 그런데 access토큰을 누구나 볼 수 있는 localstorage에 저장해도 되나요? 구글에 찾아보니 쿠키에 담는게 가장 안전하다고 하는데 쿠키에 담으면 서버에 보낼시 쿠키에 담긴 토큰을 꺼내서 헤더에 넣어서 서버에 보내야 되나요?? 강의 2회 반복중인데 처음에는 너무 어려웠지만 지금은 리액트에 대해 많이 배웠습니다. 항상 좋은 강의 감사합니다!!
-
해결됨쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
replicaSet 자동 prune
안녕하세요. 질문을 한 번 더 드리게 되었습니다.현재 argocd image updater를 이용해서 최신 이미지를 자동 감지 후 배포되도록 정상적으로 동작중입니다.그런데 자동 배포하면서 기존의 이미지가 적용된 pod는 삭제되고 있지만, replicaSet은 남아있습니다.application에서 AUTOMATED, PRUNE RESOURCES, SELF HEAL 은 모두 enable 해두었습니다만, 이미지가 적용된 리소스는 잘 삭제되어도 ReplicaSet은 찌꺼기가 남아있습니다.test-54896bb5cd 1 1 1 11m test-69f64c56f9 0 0 0 20d최신 이미지로 파드가 배포되고 난 이후, 구이미지의 파드와 함께 구 replicaSet 도 삭제되도록 설정하는 방법이 있을까요?
-
미해결[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
input() , print() 와 대화형 AI ( ChatGPT 혹은 Claude)
- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요. 이번 강의에서 말씀해주신 입출력 방식을 연습해보면서input() 과 print() 를 같이 사용하니 뭔가 '대화' 를 하는 느낌이 강하게 듭니다. ChatGPT 나 Claude 같이 대화형 AI 시스템이 해당 기능에서 복잡하게 확장된 영역이라고 이해해도 되는 건가요?비전공자에 컴퓨터 언어, 프로그램의 배경 지식 거의 없이 강의를 듣다 보니 단순한 입출력 기능에서도 많은 것들이 신기하고 궁금하네요 ㅎㅎ
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
log에 빨간줄
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]log에 빨간줄이 그어지고 test를 돌려도 log 기록이 남지 않는데 무엇이 문제일까요?
-
해결됨[Lv.1] iOS 17 앱 개발 기초 - SwiftUI로 시작하기
MVVM에서 처음
import SwiftUI @main struct mountainApp: App { var body: some Scene { WindowGroup { AuthView() .environmentObject(AuthViewModel()) } } } 1번 경우에는 @StateObject 없이 바로 AuthViewModel 객체로 environmentObject에 넣어주면 문제가 발생하나요?