묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
AWS 질문드립니다.
저는 현재 aws certified cloud practitioner 시험을 준비중인데 강의는 AWS Certified Solutions Architect - Associate 수강중입니다.Associate 강의들어도 practitioner 시험볼때 괜찮을까요..?
-
미해결처음 만난 리액트(React)
미니블로그 프로젝트 빌드시 오류
안녕하세요 마지막 프로젝트 진행시 오류때문에 질문남겨드립니다. 이러한 오류가 생기는데 해결방법을 잘 모르겟습니다 ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링부트와 jpa모두 듣고 msa구축 설계
스프링부트 강의를 듣고 김영한님 유투브와 jpa entity 설계를 보던중 만약 리소스서버와 인증서버를 분리할때 유저의 entity를 리소스서버와 인증서버 2곳 모두에 설계 해야되나요?
-
미해결파이썬 기초 라이브러리부터 쌓아가는 머신러닝
데이터 자료
안녕하세요 데이터 블로그를 통해 들어가서 자료를 찾으려고 햇는데 쉽지 가 않네요 ㅜㅜ 혹시 목록 중에 정확히 어디에 있는지 알 수 있을까요 ??
-
해결됨Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
Axios에 connection timeout과 read timeout이 없음
안녕하세요? 짐코딩님! 유익한 강의 덕분에 잘 개발하고 있습니다!^^ Axios로 개발해보니 connection timeout과 read timeout 없이 단 하나의 타임아웃만 있는것 같습니다. 파이썬 코드를 예를 들자면 아래처럼 타임아웃을 나눠 쓸 수 있습니다.아래 코드의 의미는 연결할때 1초 기다리고, 연결 이후 15초까지 연산시간을 기다려 줍니다.import requests url = 'http://example.com' try: # timeout 매개변수를 사용하여 연결 타임아웃 1초, 읽기 타임아웃 15초로 설정 response = requests.get(url, timeout=(1, 15)) # HTTP 상태코드를 확인 if response.status_code == 200: print('요청이 성공했습니다.') else: print(f'요청이 실패했습니다. 상태코드: {response.status_code}') except requests.Timeout: print('타임아웃이 발생했습니다.') except requests.RequestException as e: print(f'요청 중에 예외가 발생했습니다: {e}') 해당 기능이 중요한 이유는 연산 시간이 10초이상 걸리는 API가 있다고 가정을 할 경우, Axios 타임아웃을 15초로 지정하면 서버가 죽었을때도 유저는 무조건 15초간 대기하는 문제가 발생합니다. 하지만 위 파이썬 코드의 경우는 1초 이내로 서버 연결불가 판단을 하고 빠르게 유저에게 피드백을 줄 수 있습니다. 해당 기능이 Axios에 있는지, 만약 없다면 다른 대체 라이브러리 추천해주실수 있으실까요?감사합니다.^^
-
해결됨김영한의 실전 자바 - 기본편
private static method를 사용하는 이유를 알고 싶습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]private static method 를 사용하는 이유를 알고 싶습니다. [질문 배경]영한님의 다른 강의(스프링 강의로 기억합니다.) 중에 아주 단순한 기능을 private static method를 사용하셔서 만드신 걸 본적이 있었습니다. 왜 private 접근제어자를 사용하셨는데, 인스턴스 메서드가 아닌 static 메서드를 사용하셨을까? 궁금하여 여러 검색과 이리 저리 혼자서 생각도 많이 해보고 나름대로 정리했습니다만 뇌내 망상 수준이라.. 영한님의 답변만큼 확실한건 없을 것 같아 질문드립니다. [검색 등을 통해 제가 정리한 내용]속도 : 인스턴스 메서드의 경우에는 메서드 영역의 virtual table을 거쳐서 이 인스턴스에 매핑되는 메서드를 조회 후 메서드에 접근해야 하지만, static 메서드의 경우에는 그럴 필요가 없어 인스턴스 메서드에 비해 빠르다. -> 이 부분은 제가 여러 정보를 조합한 내용이라 신빙성이 떨어지고, 과연 속도 측면에서 유의미한 차이가 있을까 의문입니다.객체지향기반의 커뮤니케이션 : private 접근제어자를 명시하여 캡슐화를 하였으나 static 까지 붙여 이 메서드는 내부에서만 쓸 뿐더러 객체지향적으로 대화할 의도가 없으니 거들떠도 보지 말아라 라는 의미를 담고 있는 것이 아니었을까 추측해봅니다.
-
미해결지금 당장 리눅스 - 무료 클라우드 서버 활용하기
교수님 저희 DB 접속할 때 로컬로 접속해야하는 거 아니에요?
아래 Prod DB 접속하는 거 보면 127.0.0.1 이 아니라 146.56.147.0 같은 호스트의 IP인데이러면 DNS로 나갔다가 다시 저희 DB로 접속할텐데그럼 느려지는 거 아닌가요?! 이 문제 해결하려면 어떻게 해야할까요?127.0.0.1로 했을 때 동작을 안해서요... ㅠ [.env]JWT_SECRET= test2022DEV_DB_HOST= 127.0.0.1DEV_DB_DATABASE= saju_db_devDEV_DB_USERNAME= rootDEV_DB_PASSWORD= 1234DEV_DB_PORT= 3306TEST_DB_HOST= TEST_DB_DATABASE= TEST_DB_USERNAME= TEST_DB_PASSWORD= PROD_DB_HOST= 146.56.147.0PROD_DB_DATABASE= saju_db_prodPROD_DB_USERNAME= test_adminPROD_DB_PASSWORD= test1234SLACK_KEY=
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
프로세스 메모리영역과 JVM 메모리영역의 상관관계
안녕하세요~ 프로세스는 OS로부터 stack, heap, data, code영역으로 나눠진 메모리를 할당 받는다고 하셨는데요. 자바를 배울 땐 자바 프로세스가 실행될 때 JVM에 의해 다음과 같이 5개의 메모리 영역으로 나뉘어져서 관리한다고 배웠었습니다 (Method area / Heap / Stack / PC Registers / Native Stack) 명칭도 조금씩 다른부분도 있고 영역개수도 상이 한데 OS로부터 할당받은 4종류의 메모리의 영역과 JVM이 관리하는 5종류의 메모리의 영역이 서로 어떻게 매칭되는건지 궁금합니다~ 예를들어 프로세스의 Stack영역은 JVM의 Stack영역과 동일하다던가..아니면 프로세스의 Heap영역안에 JVM의 5종류의 메모리영역이 나눠져서 할당된다던가..그것도 아니면 JVM은 일반 프로세스와는 다르게 JVM에 의해 다른 메모리영역을 할당받는다던가.. 서칭 해보는데 단순히 JVM의 메모리구조에 대해서만 설명이 되어있고 이게 프로세스의 메모리영역과 어떻게 매칭되는건지에 대한 내용은 찾지 못해서 질문드립니다~
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
Vertex 종류에 관하여 질문
강사님 Mesh에 장착하는 Geometry<T>에 관하여 질문이 있습니다.강사님이 강의를 진행하실때는 Geometry를 만드시면서 Vertex를 손수 타입지정(T)을 해주시는걸 보고 실제 유니티에서는 어떻게 적용되어있나 들어가서 확인해 봤더니 기본 도형들(Mesh) 같은 경우 전부 동일한 Vertex 타입을 사용했지만 외부에서 다운받아 온 Mesh 같은 경우엔 이것이 StaticMesh이건 SkeletalMesh이건 Vertex 타입이 조금조금씩은 다른 정보들을 가지고 있더라고요.그래서 유니티 공식 메뉴얼를 찾아봤더니 Vertex 타입은 하나만 쓰고 그중 가져온 모델이 필요로 하지 않는 정보가 있을 경우엔 그 항목을 비활성화 한다고 하더라고요.가져온 모델이 어떤 Vertex 타입을 사용하는지 어떻게 알고 이걸 안다고 쳐도 비활성화는 어떻게해서 vertex 버퍼를 만드는지 알 수 있을까요?
-
미해결Next + React Query로 SNS 서비스 만들기
인터셉팅 라우트 버그?..
게시하기 버튼 클릭하면 인터셉팅 라우트가 되지 않네요 ㅜ회원가입, 로그인에서는 인터셉팅 라우트가 잘 됬었는데 왜이러는걸까요?.. 아직 넥스트가 불안정 한건지.. 검색해도 잘 안나오네요..
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
JpaRepositoryV2 도입 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]제가 이해한 내용을 설명하고, 이해가지 않은 내용을 질문하려 합니다. Spring Data JPA 기술을 이용하여 SpringDataJpaItemRepository를 구성했고, 해당 interface를 바로 ItemServiceV1에서 의존관계 주입하여 사용하고 싶다.하지만, 이미 ItemServiceV1은 ItemRepository interface를 주입받아 사용하고 있기 때문에 SpringDataJpaItemRepository interface를 사용하려면 ItemServiceV1에서 코드레벨에서의 수정이 필연적으로 일어나게 된다.(문제점 1)또한, SpringDataJpaItemRepository는 ItemRepository를 extends한 것이 아닌 JpaRepository를 extends한 것임.(문제점 2)따라서 이런 문제점들 때문에 JpaItemRepostioryV2 class를 도입하여 ItemRepository와 SpringDataJpaItemRepository 사이를 맞추려 한다. 위 내용처럼 서술했을 때 올바르게 서술한 것인지 궁금하고,2가지 이해가지 않는 부분에 대해서 질문하고 싶습니다.첫번째: 문제점2가 왜 문제인건지 잘 모르겠습니다.두번째: “ItemRepository와 SpringDataJpaItemRepository 사이를 맞추려 한다”에서 맞춘다가 정확히 어떤 것을 맞추는 것이라고 해야 표현 상 올바른 것인지 잘 모르겠습니다.
-
해결됨두고두고 써먹는 유니티 VR
소스 코드/ VR 기기 질문
강사님 강의 중에 사용하신 소스코드는 4-1 디펜스 게임 실습 프로젝트 코드만 있는건가요? 그 코드를 unity editor로 열면 바로 vr 기기에서 실행해볼 수 있는 건가요? 그리고 이 프로젝트를 열고 실행해 보기 위해서는 oculus 2 만 가능한가요(현재 모델로는 meta quest 2인가요 )아니면 다른 vr 기기들도 실행 가능한가요? 감사합니다.
-
미해결[입문자를 위한] 캐글로 시작하는 머신러닝 • 딥러닝 분석
1.3. 데이터 전처리 강의에서 index do not match 에러가 납니다.
안녕하세요.데이터 전처리 강의 내용 중 코드를 똑같이 따라쳤는데도 에러가 나는 부분이 있는데요, 구글링을 열심히 해봤는데도 해결하지 못해서 질문 남깁니다.df_bool = ~df.groupby('hour')['cnt'].apply(is_outliers) df_out = df[df_bool]위 코드를 실행하면 Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match). 에러가 발생합니다. df_bool.index위 메서드로 df_bool의 인덱스를 확인해보니 (hour, n) 의 튜플로 된 멀티 인덱스가 나왔습니다.df의 인덱스는 0, 1, 2, ... , 17413의 숫자로 되어 있어서 조건식으로 넣은 boolean 시리즈(df_bool)의 인덱스와 df의 인덱스가 일치하지 않아서 발생하는 에러로 이해했습니다. 다만 구글링을 아무리 해도 해결방법은 잘 모르겠습니다. 강의 내용을 똑같이 따라 쳤는데 왜 에러가 발생하는 걸까요?
-
미해결엑셀 매크로와 VBA 기초부터 실무활용까지 완전 정복
매크로 원상복귀
만약 매크로를 실행했는데 다시 원상태로 돌릴 수 있는 방법이 있나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-H_2234_성곽
안녕하세요 큰돌님!마지막에 벽 하나를 허물어 최대 영역수를 구하는 부분에서 질문이 있습니다.1. 큰돌님은 ->,↓ 방향으로만 탐색하며 벽을 허무셨지만,저는 처음부터 그렇게 생각하지 못해서 각 칸마다 4방향을 모두 탐색하는 알고리즘( for(int k=0; k<4; k++) )으로 작성하였습니다. 예제코드는 통과하였지만 제출 하면 틀렸다고 뜸니다..어디서 반례가 생기는지 알 수 있을까요?ㅜㅜ 나머지 부분은 다 비슷하게 작성하였습니다. 또한 compSize[2504] 사이즈를 50이 아닌 2500으로 설정하셨는지도 궁금합니다. compSize의 최댓값은 맵의 크기인 n*m=50이 아닌가요? http://boj.kr/3c4e0499d8a740a0a39610f71efd033c
-
미해결피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
섹션11 예제 링크
섹션11 예제 링크 걸어주신 두가지 중에두번째 '라이브러리 관련 예제' 링크 들어가서duplicate to your drafts 눌러서 새창 열었는데요첫번째 '스타일 및 콤포넌트 예제' 링크 자료가 나와요 ㅠㅠ
-
미해결대세는 쿠버네티스 (초급~중급편)
CrashLoopBackOff 이슈가 지속적으로 발생함. 원인 분석 결과 공유드립니다.
개요 컨테이너는 정상적으로 배포가 되는 것으로 확인되지만, 마스터 노드에서 curl 명령어를 실행해보면 최초 1회는 정상적으로 응답하고, 바로 에러가 발생하는 것으로 확인되었습니다. 로그 내용은 다음과 같습니다.node:_http_server:345 throw new ERR_HTTP_HEADERS_SENT('write'); ^ Error [ERR_HTTP_HEADERS_SENT]: Cannot write headers after they are sent to the client at ServerResponse.writeHead (node:_http_server:345:11) at Server.content (/main.js:4:7) at Server.emit (node:events:519:28) at parserOnIncoming (node:_http_server:1143:12) at HTTPParser.parserOnHeadersComplete (node:_http_common:119:17) { code: 'ERR_HTTP_HEADERS_SENT' }컨테이너 내부 쉘에 접근하여 port8080.js 파일을 확인해본 결과 아래 소스 코드를 얻을 수 있었습니다.var http = require('http'); var content = function(req, resp) { resp.end("containerPort : 8080" + "\n"); resp.writeHead(200); } var w = http.createServer(content); w.listen(8080); 원인해당 소스코드를 로컬환경 node16 에서 실행해본 결과, 정상적으로 동작하는 것을 확인하였습니다. 실습 준비물 이미지 환경 node21 에서 실행해본 결과, 같은 에러가 발생하는 것을 확인하였습니다.Node 버젼이 업그레이드 되면서 http 모듈에 추가적인 예외처리가 반영되었다고 판단했습니다.공식 문서에 의하면 resp.end() 함수는 해당 컨텍스트의 종료를 의미한다고 합니다. 에러 로그를 살펴보면 컨텍스트의 종료 이후 헤더에 쓰기 작업을 수행하면서 발생하는 에러일 것으로 추측할 수 있었습니다. 결론 위 코드를 다음과 같이 변경한 후 Node21 환경에서도 정상적으로 동작하는 것을 확인했습니다.var http = require('http'); var content = function(req, resp) { resp.writeHead(200); resp.end("containerPort : 8080" + "\n"); } var w = http.createServer(content); w.listen(8080);
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
JpaRepository - 기본적인 CRUD 기능
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]-> 강의 pdf 캡처본입니다. 해당 캡처본에서 JpaRepository를 인터페이스 상속받으면 기본적인 CRUD 기능을 사용할 수 있다고 하는데, '기본적인 CRUD 기능'이 의미하는 것이 'CrudRepository가 가지고 있는 CRUD 메서드'(save, delete 등등)를 의미하는 것인가요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
랜덤메타(Sleep(1), Sleep(0), Yield())는 컨텍스트 스위칭이 없나요?
루키스님 안녕하세요?SpinLock, sleep/Yield, event, Mutex까지 잘 들었습니다. 제가 이해하기로는 SpinLock은 계속 돌기 때문에 컨텍스트 스위칭이 없어 (여기서의 예에서만) 빠르게 _num = 0 을 출력하고, event와 Mutex는 커널 단까지 컨텍스트 스위칭이 일어나 반복문이 조금만 많아도 _num = 0을 출력하는데 시간이 걸리는걸 볼 수 있었습니다. 그런데 궁금한건, 랜덤메타인 Sleep와 Yield도 쉬는 동안 커널 단까지 컨텍스트 스위칭이 일어날 것 같은데(쉬는 동안 다른 스레드에 메모리 <-> 레지스터 가 왔다 갔다 하므로) 여기서의 예에서는 _num이 빠르게 출력 되었습니다. 그래서 빠르게 출력된 이유가 랜덤메타는 컨텍스트 스위칭이 없어서인지, 아니면 컨텍스트 스위칭이 일어나는게 맞지만 여기서의 예에서만(간단한 예제이므로) 빠르게 _num= 0이 출력된 건지 궁금합니다.
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
쿵쿵따 추가적인 조건을 붙여서 만들었는데 어떤지 평가 부탁드립니다 ㅠㅠ
제가 추가적으로 구현한건 아래와 같습니다.끝말잇기 단어를 잘못 선택하면 탈락기존에 썼던 단어를 또 사용하면 탈락참가자가 한 명 남으면 게임이 끝남=> 참가자는 number를 배열로 만들어서 틀리면 배열의 숫자를 제거하는걸로 구현했습니다. const number = Number(prompt("몇 명이 참가하나요?")); if (number) { const $order = document.querySelector("#order"); const $word = document.querySelector("#word"); const $input = document.querySelector("input"); const $button = document.querySelector("button"); const numArray = Array(number) .fill() .map((v, i) => i + 1); let word; let newWord; const compareArray = []; let order = Number($order.textContent) - 1; const onClickButton = () => { if ( (!word || word[word.length - 1] === newWord[0]) && newWord.length === 3 ) { if (compareArray.includes(newWord) === false) { word = newWord; $word.textContent = word; compareArray.push(word); console.log(compareArray, numArray); if (numArray[order] + 1 > numArray.length) { $order.textContent = numArray[0]; order = 0; } else { $order.textContent = numArray[order + 1]; order += 1; } } else { alert("이미 있는 단어입니다. 탈락입니다."); numArray.splice(numArray.indexOf(numArray[order]), 1); $order.textContent = numArray[order]; console.log(numArray, order); } } else if (newWord.length !== 3) { alert("작성해야 할 단어는 총 3글자입니다."); } else { alert( `잘못된 단어입니다. ${numArray[order]}번 참가자는 탈락입니다.` ); numArray.splice(numArray.indexOf(numArray[order]), 1); $order.textContent = numArray[order]; console.log(numArray, order); } if (numArray.length === 1) { alert( `게임이 종료되었습니다 승리자는${numArray[0]}번 참가자입니다` ); } $input.value = ""; $input.focus(); console.log(newWord); }; const onInput = (event) => { newWord = event.target.value; }; $button.addEventListener("click", onClickButton); $input.addEventListener("input", onInput); }