묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-c 코드확인부탁드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.어디 부분이 틀렸는지 궁금해서 문의드립니다! ㅜㅜ http://boj.kr/4f5b5da439db44be965575740b0ac5ea
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
trylock(1500)질문입니다
안녕하세요 강의 잘보고 있습니다. 강의 내용중 tryLock메서드 실습 부분에 서 tryLock에 인자로 500 밀리초를 넘겨 0.5초동안 락을 획득하지못하면 포기하는 것을 실습했습니다. 추가로 1500밀리초를 넘겨서 돌려봤는데 이때도 락을 얻지 못했습니다. 출금시간은 1초라서 락해제까지 완료가 된상태인데 왜 다음스레드가 락을 얻지 못할까여,, ㅠㅠ19:00:56.252 [ Thread-1] 거래 시작: BankAccountV519:00:56.252 [ Thread-0] 거래 시작: BankAccountV519:00:56.254 [ Thread-1] [검증 시작] 출금액: 800, 잔액: 100019:00:56.254 [ Thread-1] [검증 완료] 출금액: 800, 잔액: 100019:00:56.752 [ main] t1 state: TIMED_WAITING19:00:56.752 [ main] t2 state: TIMED_WAITING19:00:57.258 [ Thread-1] [출금 완료] 출금액: 800, 잔액: 20019:00:57.258 [ Thread-1] Thread-1 락 해제19:00:57.258 [ Thread-1] 거래 종료19:00:57.758 [ Thread-0] [진입 실패] 이미 처리중인 작업이 있습니다 if (!lock.tryLock(1500, TimeUnit.MILLISECONDS)) { log("[진입 실패] 이미 처리중인 작업이 있습니다") return false } lock.lock() //그냐 트라이랑 세트라 보삼 try { log("[검증 시작] 출금액: $amount, 잔액: $balance") if (amount > balance) { log("[검증 실패] 출금액: $amount, 잔액: $balance") return false } log("[검증 완료] 출금액: $amount, 잔액: $balance") Thread.sleep(1000) balance -= amount log("[출금 완료] 출금액: $amount, 잔액: $balance") } finally { log("${Thread.currentThread().name} 락 해제") lock.unlock() //언락 반드시 해야함 }코드가 코틀린인점 죄송합니다.. 자바랑 같은라이브러리를 사용해서 혹시나해서 여쭤봅니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
버튼 클릭시 점수가 올라가지 않습니다.
using System; using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class UI_Button : UI_Base { //[SerializeField] //TextMeshProUGUI _text; enum Buttons { PointButton } enum Texts { PointText, ScoreText, } enum GameObjects { TestObject, } enum Images { ItemIcon, } private void Start() { Bind<Button>(typeof(Buttons)); Bind<TextMeshProUGUI>(typeof(Texts)); Bind<GameObject>(typeof(GameObjects)); Bind<Image>(typeof(Images)); //Get<TextMeshProUGUI>((int)Texts.ScoreText).text = "Bind Test"; GetButton((int)Buttons.PointButton).gameObject.AddUIEvent(OnButtonClicked); GameObject go = GetImage((int)Images.ItemIcon).gameObject; AddUIEvent(go, (PointerEventData data) => { go.transform.position = data.position; },Define.UIEvnet.Drag); } int _score = 0; public void OnButtonClicked(PointerEventData data) { _score++; //_text.text = $"점수 : {_score}"; Get<TextMeshProUGUI>((int)Texts.ScoreText).text = $"점수 : {_score}"; } }using System; using System.Collections; using System.Collections.Generic; using TMPro; using UnityEditor.SceneManagement; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class UI_Base : MonoBehaviour { Dictionary<Type, UnityEngine.Object[]> _objects = new Dictionary<Type, UnityEngine.Object[]>(); protected void Bind<T>(Type type) where T : UnityEngine.Object { string[] names = Enum.GetNames(type); UnityEngine.Object[] objects = new UnityEngine.Object[names.Length]; _objects.Add(typeof(T), objects); for (int i = 0; i < names.Length; i++) { if (typeof(T) == typeof(GameObject)) objects[i] = Util.FindChild(gameObject, names[i], true); else objects[i] = Util.FindChild<T>(gameObject, names[i], true); if (objects[i] == null) Debug.Log($"Failed to bind({names[i]})"); } } protected T Get<T>(int idx) where T : UnityEngine.Object { UnityEngine.Object[] objects = null; if (_objects.TryGetValue(typeof(T), out objects) == false) return null; return objects[idx] as T; } protected TextMeshProUGUI GetText(int idx) { return Get<TextMeshProUGUI>(idx); } protected Button GetButton(int idx) { return Get<Button>(idx); } protected Image GetImage(int idx) { return Get<Image>(idx); } public static void AddUIEvent(GameObject go, Action<PointerEventData>action,Define.UIEvnet type = Define.UIEvnet.Click) { UI_EventHandler evt = Util.GetOrAddComponent<UI_EventHandler>(go); switch(type) { case Define.UIEvnet.Click: evt.OnClickHandler -= action; evt.OnClickHandler += action; break; case Define.UIEvnet.Drag: evt.OnDragHandler -= action; evt.OnDragHandler += action; break; } //evt.OnDragHandler += ((PointerEventData data) => { evt.gameObject.transform.position = data.position; }); } }using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UIElements; public class UI_EventHandler : MonoBehaviour, IPointerClickHander ,IDragHandler { public Action<PointerEventData> OnClickHandler = null; public Action<PointerEventData> OnDragHandler = null; public void OnPointerClick(PointerEventData eventData) { if (OnClickHandler != null) OnClickHandler.Invoke(eventData); } public void OnDrag(PointerEventData eventData) { if (OnDragHandler != null) OnDragHandler.Invoke(eventData); } }드래그작동은 잘 되는데, 버튼 클릭하면 점수가 올라가지 않습니다. UI_Button스크립트에 52번째줄, public void OnButtonClicked 부분에 중단점을 찍어 보기도 했고, UI_Base 스크립트의 switch문에 있는 Click과 Drag부분에도 해봤는데 어느부분이 문제가 있는지 찾지를 못했습니다. 제가 디버깅을 잘 못해서 이런건지..ㅠㅠ 다른 분들 질문과, 코드 정리 올려주신거 비교해봐도 틀린 부분이 없는거 같은데 무슨 문제인지 잘 모르겠습니다 ㅠㅠ
-
미해결[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문
int sum=sumArr(arr. SIZE) 문의
int sum=sumArr(arr. SIZE) 에서 arr는 배열의 이름이니 pointer 여서 마찬가지로 main에서도 size는 4가 아닌가요?
-
미해결
D유형 최종본제작 - D1 갤러리 이미지
D1 갤러리제작 세부지시사항에 분명 제공된 이미지 3개를 사용해서 제작하라고 명시되어있는데 강의에서는 이미지 7개를 사용해서 문의드립니다..3개를 사용하는게 맞는것 아닌가요? ㅠ 상관없는 부분인가요?
-
미해결실무 중심! FE 입문자를 위한 React
학습노트 실습코드 링크 수정해주세요.
학습노트 pdf에서 4-2 실습코드 링크와 4-3 실습 코드 링크가 동일합니다. 수정 부탁드립니다. 그리고 5-1 강의에서 HTML과 리액트의 onclick/onClick 설명해주시는 화면에 둘 모두 onclick으로 되어 있음을 제보 드립니다.
-
해결됨Real MySQL 시즌 1 - Part 1
복합인덱스 정렬
안녕하세요. 강의를 잘 듣고 있는 수강생입니다.강의를 듣다가 좀 다른 결일 수도 있는 궁금증이 있습니다.범위기반 데이터 조회에 아래 예시에서 order by finished_at, id 부분에서 finished_at이 범위검색 쿼리로 들어가는데 이런 경우 뒤에 있는 id는 인덱스를 타지 않는 것으로 알고 있습니다. 그럼 id로 범위 검색하려고 하면 finished_at으로 검색된 범위 안 전체 데이터를 전부 스캔하게 되나요?select * from payments where finished_at ≥ ‘시작날짜’ and finished_at < ‘종료날짜’ and id > 8 order by finished_at, id limit 30
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
점프할때 공중에서 초반에 걷는 모션이 유지되는 경우가 있습니다.
31:25 4강에서 강의내용대로 따라한 후, 시작버튼을 누르고 움직이면서 점프할 때 높은 확률로 걷는 모션이 안풀린 채로 공중에서 걷다가 점프 고점에서 뒤늦게 점프모션을 시작합니다. (정상적으로 점프(스페이스버튼)을 누르자마자 바로 점프모션을 취하는 경우도 있지만 확률이 낮음. 어떤 메커니즘때문에 이런것인지 모르겠습니다) 도중에 제가 뭔갈 잘못만진 것인지 아니면 다른 문제인지 잘 모르겠습니다. 저의 코드나 애니메이션 설정값에 실수가 있었을지 몰라서 저의 코드가 아닌 5_4 버전으로 올려주신 iduegu/UnrealProgrammingPart2 -4강 깃허브 파일을 받은 후에, Infinity Blade: Warriors 를 프로젝트에 추가 한 후 코드의 변경 없이 빌드 후 시작버튼을 눌러도 똑같은 현상이 생깁니다.
-
미해결스프링 핵심 원리 - 기본편
CoreApplication 실행시 AppConfig, AutoAppConfig순서
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]CoreApplication 실행 시에 @SpringBootApplication어노테이션 안에 @ComponentScan 이 있어서 @Configuration이 써진 AppConfig와 AutoAppConfig가 스캔되는 대상인 것은 알겠습니다. CoreApplication 실행시 AppConfig의 로그가 찍히는데 1.AppConfig와 AutoAppConfig가 둘다 작동됐는데 AppConfig가 뒤에 작동 된건지 순서가 궁금합니다. 2.AutoAppConfig에서 필터로 AppConfig는 스캔되지 않게 해줬는데 이것과 무관하게 CoreApplication 의 어노테이션으로 인해 AppConfig파일도 스캔된건지 궁금합니다.@Configuration @ComponentScan( excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = Configuration.class)) public class AutoAppConfig { }CoreApplication 실행 시에 스프링 컨테이너를 설정 안해줬는데 왜 AppConfig의 로그가 도는지... 궁금합니다
-
미해결실무자를 위한 구글애널리틱스(GA4+GTM) 활용법(25년 Update)
날짜 맞춤 설정 질문 있습니다
실습 과정에서 날짜 맞춤 설정을 진행할 시, 아래와 같이 날짜를 클릭하면 노란 색으로 표기되며 해당 일정을 변경할 수 있는 것으로 말씀주셨는데요.저는 클릭할 시 노란 색으로 표기되지도 않으며,클릭 후 날짜를 설정하면 시작일이 변경되고 있기에 어떻게 해결할 수 있을 지 질문 드립니다.
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
Vector DB FAISS 관련 질문입니다!
안녕하세요! 좋은 강의 감사합니다! 다름이 아니라 저는 Faiss를 사용하는데 Faiss의 인덱스를 HuggingFace에 업로드하고 배포된환경에서 load 해서 쓰는 것은 비효율적인가요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
애니메이션 변수의 설계
애니메이션 인스턴스 클래스 설계시의 의문점이 생겨 질문드립니다!예제에서는 NativeUpdateAnimation에서 매 틱마다 속도나 bIsFalling 등의 변수를 변경해주고 있습니속도는 매 틱별로 가져오는게 가장 좋지만 IsFalling이나 IsJumping 등의 변수는 변경 시에만 바뀔 수 있도록 Delegate를 걸어주거나 또는 캐릭터에서 직접 참조하여 변경시켜주는 방법이 더 좋을 수도 있을까요? 설계에 따라 달라질 수 있겠지만 매 틱마다 바뀌지 않아도 되는 변수는 Delegate로 바꿔주특정 캐릭터 클래스에 의존성이 강한 애니메이션 클래스인 경우 캐릭터 클래스에서 직접 참조하여 애님 인스턴스의 Setter를 호출해주기이런 설계도 큰 무리가 없을까요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
section04 포트폴리오 리뷰
지금 section04 포트폴리오 리뷰까지 왔는데 지금은 작성자, 비밀번호 , 제목 , 내용을 입력하고 등록하기 버튼을 눌러도 등록안되고 에러뜨는게 정상인건가요?저만 안되는건가 싶어서요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
7. 스프링 MVC - 웹 페이지 만들기 > 상품 목록 페이지 th:onclick
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 김영한 강사님현재 진행중인 7. 스프링 MVC - 웹 페이지 만들기 강의 - 상품 목록 페이지 th:onclick 부분은 아래와 같이 작성되어 있고,<div class="row"> <div class="col"> <button class="btn btn-primary float-end" onclick="location.href='addForm.html'" th:onclick="|location.href='@{basic/items/add}'|" type="button">상품 등록 </button> </div> </div>컨트롤러의 상품 등록 부분도 예제와 동일하게 작성되어 있습니다.@Controller @RequestMapping("/basic/items") @RequiredArgsConstructor public class BasicItemController { private final ItemRepository itemRepository; ...(생략) @GetMapping("/add") public String addForm() { return "basic/addForm"; } }그런데 브라우저에서 등록 버튼을 누르면 /basic이 한 번 더 붙는데 이유가 궁금합니다.
-
미해결GSAP의 ScrollTrigger를 활용한 포트폴리오 제작
완성된 코드 자료 받아볼 수 있을까요?
안녕하세요! 수강을 막 시작하여 학습파일을 다운로드 했습니다.수업에서는 강의자료 폴더명으로 '2023_인프런_포트폴리오메인' 이라는 폴더가 첨부파일로 있다고 하셨는데, 다운받아보니 '학생첨부용_수강학습파일' 폴더 밖에 없어서 문의드립니다.참고할 수 있도록 학습본 말고 완성된 전체본도 받아볼 수 있을까요?
-
해결됨독하게 시작하는 C 프로그래밍
Null 역참조??
이게 무슨 오류인지 모르겠어요! 강사님은 안뜨셨는데 저는 뜨네요..
-
미해결쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)
Vagrant SSL 인증 오류
실습에 문제 발생 시 최대한 캡쳐 화면을 꼭 올려 주세요. (원인 파악에 도움이 큽니다)영상 내용 질문 시 해당 영상 제목과 내용이 있는 시간을 같이 올려주세요. (내용을 다시 들어보고 답변을 드리기 위해서 입니다)긴 로그는 제 메일로 보내주세요. (k8s.1pro@gmail.com)카페 [강의 자료실]에도 많은 질문과 답변들이 있어요!cafe: https://cafe.naver.com/kubeops 이렇게 발생하면서 Root certificate 오류가 발생하는데 이러한 오류는 어떻게 처리하면 될까요?
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
Next.js 사전 렌더링에 대해서 더 궁금한 부분이 있습니다.
안녕하세요 Next.js 강의를 잘 보고 있습니다. Next.js 장단점 내용을 보고 궁금한 점이 생겨서 질문드립니다.1. 8:59초에 서버에서 모든 컴포넌트를 사전 렌더링을 한다고 말씀하셨는데, 작성한 모든 컴포넌트의 HTML을 서버에 생성해놓는다는 의미인가요? 그렇다면 그 HTML을 받아서 브라우저가 파싱할 때, 서버로부터 받는 스크립트는 해당 컴포넌트의 관련된 로직의 js 파일을 받아오는건가요? 이 동작까지 Next.js에서 담당해주는건가요..? 사용자의 접속 요청이 들어왔을 때, FCP는 빠르겠지만 이 과정에서 서버에서 모든 컴포넌트의 사전 렌더링이 진행되고, 하이드레이션 과정까지 있습니다. 전처리 작업은 늘어난 것 같고, 사용자의 인터렉션이 불가한 지점까지 있는데 이 부분은 어떻게 핸들링하는지와 과연 FCP가 단축된게 장점이라고 할 수 있는지 궁금합니다.해소가 안되는 부분들이 계속 생기는데, 영상을 계속 보다보면 뒤에서 다 설명을 해주시는 부분들일까요...?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
공부 방법에 대한 조언을 구하고 싶습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 큰돌님!3주차 진행 중인 학생입니다.2주차까지는 개념 듣고 교안 공부 -> 2주차 문제 풀이 -> 문제 강의 듣기 순으로 공부를 해왔고 같은 방식으로 3주차도 진행하고 있었는데, 2주차보다는 난이도가 올라가서 그런지 몇몇 문제의 접근 방식과 풀이를 고민하는 시간이 2시간을 넘어가게 됐습니다... 그래서 선생님의 해설을 참고하기 시작했는데요. 커뮤니티를 찾아보니 이렇게 해설을 참고했거나 틀린 문제의 경우 1일, 3일, 7일 간격을 두고 다시 풀어보라는 답변을 해주셨더라고요. 그래서 저도 1,3,7일 간격으로 다시 풀어볼 예정인데, 이렇게 하게 된다면 시간 내 주차별 문제를 전부 풀기가 어렵지 않을까요? 예를 들어 3주차라면, 3주차의 17문제를 이번 주 내로 풀지 못할 것 같은데 시간을 더 늘려서라도 다음 주까지 3주차를 다 체득하고 다다음주부터 4주차 진도를 나가는 게 좋을까요? 아니면 3주차의 문제를 다 풀지 못했더라도 최대한 주차에 맞춰 4주차 진도를 나가며 3주차 오답(반복풀이)을 병행하는 게 좋을까요...! 시간이 넉넉했더라면 8주 이상 걸리더라도 차근차근 학습 후 넘어가겠지만, 이번 하반기 취업이 목표라 10월 초까지 완강을 목표로 하고 있어서 어떻게 학습하는 게 좋을지 모르겠습니다. 개인적인 생각으로는 코테에 어떤 유형의 문제가 나올지 모르니, 일단 진도에 맞춰 다양한 유형을 학습하는 게 조금 더 좋지 않을까? 싶은데 선생님의 조언을 구하고 싶습니다!! +) 추가로 현재 3주차 문제(골드5~3)를 푸는데 약 2시간 정도 사용하고 있습니다. 너무 고민하는 시간이 긴 건 아닐까 싶어요... 문제마다 달랐긴 한데 로직 자체를 생각하는데만 2시간인 적도 있고, 코드 작성하고 반례 생각하는데 2시간인 적도 있습니다. 코드 짜는 시간을 제외하고 문제에 대한 로직을 '고민'하는 시간만으로는 어느정도가 적당할까요? 제 스스로가 생각해도 한 문제를 붙잡는 시간이 너무 긴 것 같아서... 이 부분도 조언 주시면 정말 감사하겠습니다!
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
useMemo 사용 시 체크 박스 오류
useMemo 강의에서 함수를 작성할 때, const { totalCount, doneCount, notDoneCount } = useMemo(() => { const totalCount = todos.length; const doneCount = todos.filter((todo) => todo.isDone; ).length; const notDoneCount = totalCount - doneCount; return { totalCount, doneCount, notDoneCount }; }, [todos]);위의 코드처럼 작성하고 아이템의 체크 박스를 누르면 아래 사진과 같은 오류가 발생합니다.todos 배열 객체의 isDone 속성이 정의되지 않았다고 하는 것 같은데 해결 방법을 몰라 질문 드립니다...ㅠㅠ 혹시 몰라 List.jsx 전체 코드도 같이 올려두겠습니다.항상 좋은 강의 만들어주셔서 감사합니다!import "./List.css"; import { useState, useMemo } from "react"; import TodoItem from "./TodoItem"; function List({ todos, onUpdate, onDelete }) { const [search, setSearch] = useState(""); const searchHandler = (e) => { setSearch(e.target.value); }; const filterFunc = () => { if (search === "") { return todos; } return todos.filter((todo) => todo.content.toLowerCase().includes(search.toLowerCase()) ); }; const filterArr = filterFunc(); const { totalCount, doneCount, notDoneCount } = useMemo(() => { const totalCount = todos.length; const doneCount = todos.filter((todo) => todo.isDone; ).length; const notDoneCount = totalCount - doneCount; return { totalCount, doneCount, notDoneCount }; }, [todos]); return ( <div className="List"> <h4> Todo List 🌱</h4> <div> <div>total: {totalCount}</div> <div>done: {doneCount}</div> <div>notDone: {notDoneCount}</div> </div> <input placeholder="검색어를 입력하세요" onChange={searchHandler} value={search} ></input> <div className="wrapper"> {filterArr.map((todo) => { return ( <TodoItem key={todo.id} {...todo} onUpdate={onUpdate} onDelete={onDelete} /> ); })} </div> </div> ); } export default List;