묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결대세는 쿠버네티스 (초급~중급편)
csi-node-driver 클러스터 노드 재부팅후 CrashLoopBackOff
https://cafe.naver.com/kubeops/495에 있는 설치 메뉴얼로 설치를 하였습니다성공적으로 설치를 하였고 모든 파드가 running 상태인걸 확인 하였습니다 그후 클러스터,노드 종료후 재시작 하였을시 아래와 같이 csi-node 파드들이 정상적으로 실행이 되지 않습니다. 로그는 아래와 같이 나옵니다[root@k8s-master ~]# k logs csi-node-driver-tjw8x -n calico-system Defaulted container "calico-csi" out of: calico-csi, csi-node-driver-registrarexec /usr/local/bin/csi-driver: exec format error 클러스터랑 노드를 재시작시 터미널에서 종료한것이 아닌 비추얼박스 ui에서 종료를 하였는데 터미널에서 shutdown을 하여야 하는것인가요?
-
미해결Flutter 초입문 왕초보편
강의가 오래 된거 같은데
저는 플러터 완전 아무 것도 모르고 들어온 사람인데요 이렇게 옛날 버전으로 되어 있으면 지금 안드로이드 스튜디오도 처음인 사람에게는 너무 버겁거든요안드로이드 스튜디오 설치하는것도 제대로 된것도 없고 옛날 강의 들을려고 이렇게 비싼 가격을 주고 하지는 않을거 같은데 같은 내용으로 지금 버전으로 다시 찍으셔야 하는거 아닐까요? 아니면 가격을 낮춰서 오래된거라도 볼려면 봐 이렇게 하시는게 맞지 않을까요? 유투브를 돌아다니면서 이것저것보는거 보다 인강을 제대로 돈주고 보자 해서 듣는건데 이건 너무하는거 아닌가 싶네요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-M 질문있습니다~
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. A또는 B가 나오고 for문으로 훑으면서 같은 단어가 나오면 체크를 하여 그 체크한 인덱스와 처음 A또는 B가 나온 인덱스를 뺀 값이 반드시 홀수가 되어야 하고 한번이라도 짝수가 나온다면 바로 check를 false로 바꾸고 break하여result를 세는 방식으로 코드를 짰는데요. 인덱스를 체크하기 위해서 temp_a, temp_b를 썼습니다. AA BB짝을 만들때, 아무 인덱스도 저장되어 있지 않다면 -1을 저장하고, 저장할 인덱스가 있다면 temp_a 혹은 temp_b에 각각 저장하는데요, 강의와 비슷하게 스택 원리를 쓴 거 같은데, (강의는 확실히 이해가 돼요) 제 코드는 왜 틀리는지 궁금합니다. http://boj.kr/4691279761cf4ff5afc2630ba91c6132
-
미해결
윤재성의 자바 기반 안드로이드 앱개발 Part 4만 들어도 괜찮은 가요?
저는 참고로 학교에서 안드로이드 스튜디오 수업을 듣고 있습니다. 그래서 실전 프로젝트를 어떻게 구현하는지 몇 번 해봐서 이용법을 아는 상태입니다. 시간이 많이 없어서 이 강의만 듣고 배우고 싶은데 강의 스타일을 잘 몰라서 이 정도 배경에도 바로 Part4 들어가도 괜찮은지 여쭤봅니다!
-
미해결[PY 0203] 디버깅 기초
force run to cursor
안녕하세요! 8번째 줄에서 force run to cursor를 하면 할당이 안 보이고 바로 program finished가 되어버리는데 왜 똑같이 안 될까요?ㅠ
-
미해결React Native with Expo: 제로초에게 제대로 배우기
13강 AnimatedTabBarButton type 질문
13강 강의 예제로 진행중 AnimatedTabBarButton에서 type을 BottomTabBarButtonProps로 사용했을때, <Pressable {...restProps} /> 부분에서 PressableProps type과 불일치 에러가 발생해요.type assertion으로 {...restProps as PressableProps} 처리를 하면 에러 표기는 안나긴하지만 찝찝해서요.강사님의 IDE와는 다르게 에러가 발생하는데 의존성 version 달라서 발생할 수도 있을까요?
-
해결됨Practical Testing: 실용적인 테스트 가이드
'코틀린'에서는 빌더를 따로 쓰지 않는데, 이 때는 어떻게 test fixture를 만드시는지 궁금합니다
우빈님 안녕하세요! '코틀린'에서는 빌더를 따로 쓰지 않는데, 이 때는 어떻게 test fixture를 만드시는지 궁금합니다 ㅎㅎ저도 그동안 실무에서 자바를 쓰면서 테스트에서 given 절의 test fixture는 빌더로 만들어서 사용하고, 프로덕션에서는 팩토리 메서드로 객체를 생성해왔습니다. (물론 이 강의를 보고나서부터입니다 ㅎㅎ) 그런데 코틀린을 쓰다보니까 롬복을 거의 쓸 일이 없는 것 같더라고요.private constructor & 팩토리 메서드를 코틀린에서 쓰다 보니까 팩토리 메서드로만 객체를 생성해야해서 테스트에서 '맥락을 이해하는데 허들이 하나 더' 생기는 꼴이 되고 있어 조금 고민입니다.. 그렇다고 테스트 전용 팩토리 메서드 같은 것을 만들자니 프로덕션에 테스트 관련된 소스가 바로 생기는 것은 영 석연치 않더라고요.그래서 지금은 일단 생성자를 public으로 열어두고, 팩토리 메서드가 있는 도메인 객체를 만들 때는 무조건 팩토리 메서드만 쓴다. 그리고 테스트에서는 테스트 용이성을 위해 생성자로 객체를 생성하는 것을 허용하는 것으로 해보려고 합니다. 혹시 위 같은 상황에서 우빈님은 어떤 기준으로 쓰고 계신지 궁금합니다..!바쁘실텐데도 시간 내어 확인해주셔서 감사합니다 :)
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
질문 userSchema 의 timestamps: true
userSchema의 timestamps: true를 하면 createdAt과 updatedAt이라는 두 개의 필드가 자동으로 생성된다고 하는데 createdAt 필드를 직접 작성한 이유가 있나요 ?
-
미해결김영한의 실전 자바 - 중급 2편
"java"hashCode 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]"java" 해시코드가 강의에는 3254849 로 나와있는데 제가 출력했을때는 3254818이 나옵니다. 나머지 값들도 다 다른데 같은 Object에서 해시코드메서드를 출력해서 값을 구한건데 다르게 나올수 없지 않나요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
버쥬얼박스
버츄얼박스 5.0버전은 다운로드 링크 눌러도 다운로드가 안됩니다.. 다른버젼은 잘 다운되는데 5.1로 해도되나요?
-
미해결[연재형] WE CAN Cusor AI ! - 커서AI 우리도 할 수 있습니다.
저는 컨트롤L이랑 컨트롤+쉬프트+I랑 동일한 창이 열리네요
저는 컨트롤L이랑 컨트롤+쉬프트+I랑 동일한 창이 열리네요컴포저가 열려야할거같은데, 컨트롤L이랑 같은 창이 열립니다. 오른쪽 창이 열립니다.
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
서버 액션의 적절한 사용
서버 액션을 사용하면api 설정을 좀 더 간단하게 해줄 수 있다는 것은 이해했습니다. 근데 그럼 이러한 서버 액션은 AppRouter에서 대부분의 api를 완전히 대체할 수 있는 걸까요? 아니면 상황에 따라서 서버 액션을 사용하기도 하고 api를 따로 만들어서 사용하기도 하고 그런건가요? 프로젝트를 만드려고 하는데 어떤 부분에서 서버 액션을 사용해야할지 정확히 감이 안잡혀서 질문 드립니다..!
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
37장 Data bit width 질문
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.================== 안녕하세요 37강 9:20 부분을 보면 Zybo board의 스펙은 1066MHz 이고 이를 표로 확인했을 때 최고 전송 속도가 8533Mb/s로 나와있습니다. 질문 18533Mb/s 라는게 메가비트 / s를 의미하는 건가요?정보를 찾아보니까 8633MB/s 로 메가 바이트 단위라고 나와있었습니다.질문 1.1 만약 메가 비트 단위가 맞다면말씀해주신것 거처럼 바이트 단위로 바꾸어 1066MBps 가 나오고 이는 Ideal BW와 비교했을 때 한 사이클 당 한 바이트씩 가져올 수 있는 정도로 비교가 된다고 생각하면 될까요? 질문 2 - 만약 메가 바이트 단위가 맞다면?이거를 바이트로 환산하면 대략 1066.625MB/s 라고 설명해주시고 있고 한 사이클 당 한 바이트씩 가저올 수 가 있구나라고 예상 된다고 설명해주셨습니다.이 뜻은 데이터가 총 8바이트 기준일 때 8533 이기 때문에 8로 나누어서 1바이트 당 약 1066MB/s가 되고 이는 약 1GB/s 가 된다는 뜻일까요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
eas build가 원래 엄청 오래걸리나요?
eas build --platform android --profile development위 eas 빌드 명령어를 실행했는데 거의 30분째 Build in progress... 문구만 보이네요, 좀 찾아봤더니 Free Tier라 큐에 대기시간때문인 것 같은데.. 원래 이런건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
연관관계 편의 메서드 위치
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요~! 궁금한 부분이 있습니다양방향일 경우에는 연관관계 편의메서드를 작성하는게 좋다고 말씀주셨는데 그렇다면 연관관계 메서드를 주인엔티티 선언하는 이유가 있을까요?아니면 상황에 따라 바뀌는걸까요? 기준이 있는지 궁금합니다~!
-
미해결깃헙 블로그(Github blog)로 차별화 된 나만의 홈페이지 만들기!
Typora
typora 유료인데 혹시 결제 해야하는건가요? 아니면 무료 버전이 따로 있는건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
라벨인코딩 에러
기출문제 작업형2 공부하면서 라벨인코딩을을 하면 꼭 에러가 납니다. 같은 문제를 원-핫인코딩으로 해서 전후를 비교하면 데이터가 늘어난게 확인이 되는데 라벨인코딩은 에러가 나던지 데이터가 그대로 입니다.. 오타를 정확하게 확인했구요. 교재와도 정확하게 비교했는데 왜그럴까요?ㅜ그리고 원-핫인코딩은 사전에 범주형,수치형데이터 분리없이 바로 사용해도 범주형데이터만 원-핫인코딩을 진행하는게 맞는거죠?
-
해결됨AI 시대의 혁신적인 게임 개발 입문 with Unity6
수박게임 질문
수박게임 최초 개발자는 개발한 게임을 어디 플랫폼에 올리고 등록해서 거대한 부를 얻은건가요?
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
ImprovedOrder의 구조에 대한 질문입니다.
우선 orderResponse에서는 totalItems만 사용해서 수량만 요구하는 DTOOrderDetailResponse에서는 List<OrderItemResponse> items; 물품 정보를 요구하는 DTO 용으로 나뉘어 있고 Improved 역시 마찬가지였습니다.그런데 toOrderDetailResponse에서orderItems가 매핑이 안되어 있고, toOrderResponse와 코드가 동일한 상태였습니다. 제 생각에는 totalItems에 집중하신 나머지 빠뜨리신 거라고 생각되어 글을 남기게 되었고, 현재 ImprovedOrder에 orderItem이 매핑되어 있지 않은 상태 즉 반정규화 상태에서 어떻게 OrderItem을 매핑하는게 좋을지 생각해봤습니다.1. orderNumber로 findByOrderNumber단순히 ImprovedOrder에 저장된 orderNumber로 따로 orderItem들을 찾고 매핑해주는 것입니다. 현재 반정규화 의도가 totalCount만을 요구하는 도메인이 중요하기 때문에 ImprovedOrderDetailResponse를 반환할 때만 따로 매핑하는 것이죠. 다만 이는 ImprovedOrder와 OrderItem이 분명한 관계가 있음에도 매핑이 되어 있지 않는 것이라 좋은 방법인지는 의문입니다.2. ImprovedOrder에 orderItem 필드 추가totalItems와 orderItems를 모두 가지게 하고 totalItems만 필요한 상황이라면 굳이 orderItems를 get하지 않으면 Lazy 상태이기 때문에 fetch가 발생하지 않아 유연하게 사용할 수 있지 않을까 생각했습니다.포트폴리오를 위해 분석하던 과정에서 의문이 생겨 질문드렸습니다. 만약 제가 잘못 생각하고 있다면 말씀해주세요.
-
미해결유니티 머신러닝 에이전트 완전정복 (기초편)
dqn 인덱스 에러
dqn 학습 부분에서, index에러가 자꾸 납니다.. dqn.py는 github에 올려져 있는 것을 그대로 사용했습니다. < 에러 코드 >(colab) C:\Users\pss60\Desktop\ML-Agents_Project\agents>python dqn.py Traceback (most recent call last): File "C:\Users\pss60\Desktop\ML-Agents_Project\agents\dqn.py", line 218, in <module> state = preprocess(dec.obs[OBS], dec.obs[GOAL_OBS]) IndexError: list index out of range < GridAgent >using System; using UnityEngine; using System.Linq; using Unity.MLAgents; using Unity.MLAgents.Sensors; using Unity.MLAgents.Actuators; using UnityEngine.Rendering; using UnityEngine.Serialization; using System.Collections.Generic; public class GridAgent : Agent { [FormerlySerializedAs("m_Area")] [Header("Specific to GridWorld")] public GridArea area; public float timeBetweenDecisionsAtInference; float m_TimeSinceDecision; [Tooltip("Because we want an observation right before making a decision, we can force " + "a camera to render before making a decision. Place the agentCam here if using " + "RenderTexture as observations.")] public Camera renderCamera; VectorSensorComponent m_GoalSensor; private Transform agentTrans = null; private Vector3 moveRight = new Vector3(1, 0, 0); private Vector3 moveLeft = new Vector3(-1, 0, 0); private Vector3 moveUp = new Vector3(0, 0, 1); private Vector3 moveDown = new Vector3(0, 0, -1); public enum GridGoal { GreenPlus, RedEx, } // Visual representations of the agent. Both are blue on top, but different colors on the bottom - this // allows the user to see which corresponds to the current goal, but it's not visible to the camera. // Only one is active at a time. public GameObject GreenBottom; public GameObject RedBottom; GridGoal m_CurrentGoal; public GridGoal CurrentGoal { get { return m_CurrentGoal; } set { switch (value) { case GridGoal.GreenPlus: GreenBottom.SetActive(true); RedBottom.SetActive(false); break; case GridGoal.RedEx: GreenBottom.SetActive(false); RedBottom.SetActive(true); break; } m_CurrentGoal = value; } } [Tooltip("Selecting will turn on action masking. Note that a model trained with action " + "masking turned on may not behave optimally when action masking is turned off.")] public bool maskActions = true; const int k_NoAction = 0; // do nothing! const int k_Up = 1; const int k_Down = 2; const int k_Left = 3; const int k_Right = 4; EnvironmentParameters m_ResetParams; public override void Initialize() { m_GoalSensor = this.GetComponent<VectorSensorComponent>(); m_ResetParams = Academy.Instance.EnvironmentParameters; } public override void CollectObservations(VectorSensor sensor) { Array values = Enum.GetValues(typeof(GridGoal)); int goalNum = (int)CurrentGoal; // 현재 에이전트의 x, y 좌표 위치 값을 관측 정보에 추가 sensor.AddObservation(agentTrans.position.x); sensor.AddObservation(agentTrans.position.z); // 각각 도형에 대한 좌표 위치 값을 관측 정보에 추가 List<int> otherPos = area.otherPos; for (int i = 0; i < otherPos.Count; i++) sensor.AddObservation(otherPos[i]); // 목표 지점에 대한 정보 m_GoalSensor.GetSensor().AddOneHotObservation(goalNum, values.Length); } public override void WriteDiscreteActionMask(IDiscreteActionMask actionMask) { // Mask the necessary actions if selected by the user. if (maskActions) { // Prevents the agent from picking an action that would make it collide with a wall var positionX = (int)agentTrans.localPosition.x; var positionZ = (int)agentTrans.localPosition.z; var maxPosition = (int)m_ResetParams.GetWithDefault("gridSize", 5f) - 1; if (positionX == 0) { actionMask.SetActionEnabled(0, k_Left, false); } if (positionX == maxPosition) { actionMask.SetActionEnabled(0, k_Right, false); } if (positionZ == 0) { actionMask.SetActionEnabled(0, k_Down, false); } if (positionZ == maxPosition) { actionMask.SetActionEnabled(0, k_Up, false); } } } // to be implemented by the developer public override void OnActionReceived(ActionBuffers actionBuffers) { // 매 행동마다 -0.01 보상(패널티) 부여 AddReward(-0.01f); var action = actionBuffers.DiscreteActions[0]; // 에이전트가 이동하게 될 위치 값을 저장할 변수 (Vector3) var targetPos = agentTrans.position; switch (action) { case k_NoAction: // do nothing break; case k_Right: // 부여받은 행동이 오른쪽이라면, targetPos = agentTrans.position + moveRight; // 현재 위치에서 1만큼 x축 방향으로 설정 break; case k_Left: targetPos = agentTrans.position + moveLeft; break; case k_Up: targetPos = agentTrans.position + moveUp; break; case k_Down: targetPos = agentTrans.position + moveDown; break; default: throw new ArgumentException("Invalid action value"); } var hit = Physics.OverlapBox( targetPos, new Vector3(0.3f, 0.3f, 0.3f)); // 벽에 부딪히지 않았다면, if (hit.Where(col => col.gameObject.CompareTag("wall")).ToArray().Length == 0) { // 정해진 위치로 이동 agentTrans.position = targetPos; // +오브젝트 만났다면, if (hit.Where(col => col.gameObject.CompareTag("plus")).ToArray().Length == 1) { ProvideReward(GridGoal.GreenPlus); EndEpisode(); } // x오브젝트 만났다면, else if (hit.Where(col => col.gameObject.CompareTag("ex")).ToArray().Length == 1) { ProvideReward(GridGoal.RedEx); EndEpisode(); } } } private void ProvideReward(GridGoal hitObject) { if (CurrentGoal == hitObject) { SetReward(1f); } else { SetReward(-1f); } } // WASD 키보드로 에이전트 이동 public override void Heuristic(in ActionBuffers actionsOut) { var discreteActionsOut = actionsOut.DiscreteActions; discreteActionsOut[0] = k_NoAction; if (Input.GetKey(KeyCode.D)) { discreteActionsOut[0] = k_Right; } if (Input.GetKey(KeyCode.W)) { discreteActionsOut[0] = k_Up; } if (Input.GetKey(KeyCode.A)) { discreteActionsOut[0] = k_Left; } if (Input.GetKey(KeyCode.S)) { discreteActionsOut[0] = k_Down; } } // to be implemented by the developer public override void OnEpisodeBegin() { area.AreaReset(); Array values = Enum.GetValues(typeof(GridGoal)); CurrentGoal = (GridGoal)values.GetValue(UnityEngine.Random.Range(0, values.Length)); } public void FixedUpdate() { WaitTimeInference(); } void WaitTimeInference() { if (renderCamera != null && SystemInfo.graphicsDeviceType != GraphicsDeviceType.Null) { renderCamera.Render(); } if (Academy.Instance.IsCommunicatorOn) { RequestDecision(); } else { if (m_TimeSinceDecision >= timeBetweenDecisionsAtInference) { m_TimeSinceDecision = 0f; RequestDecision(); } else { m_TimeSinceDecision += Time.fixedDeltaTime; } } } }