묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결타입스크립트 시작하기
code runner 사용 시 output이 깨지는 문제
ts-node를 설치하고 setting.json에 "code-runner.executorMap": { "typescript": "node_modules/.bin/ts-node" } 도 추가해줬습니다. 그런데 code runner 을 실행시키면 다음과 같은 output이 나옵니다. [Running] node_modules/.bin/ts-node "d:\typescript-example\src\1.ts" 'node_modules'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α�, �Ǵ� ��ġ ������ �ƴմϴ�. [Done] exited with code=1 in 0.08 seconds 이 문제를 어떻게 해결할 수 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
리시브 비동기에 관련하여 궁금한 것이 있습니다.
private static void OnAccepted(Socket clientSocket) { session.Start(clientSocket); byte[] sendBuff = Encoding.UTF8.GetBytes("Hello Server!"); session.Send(sendBuff); Thread.Sleep(1000); session.Disconnect(); } 해당 부분에서 소켓의 접속이 정상적으로 성공하여 해당 함수가 실행되고 session.Start에서 리시브 작업을 시작하고 비동기니간 바로 다른 작업으로 넘어가서 동작하다 메시지가 오면 연결되어있던 출력해주는 함수가 실행되고 출력후 다시 ResisterRecv를 실행하여 다시 또 비동기로 받을준비하고 이렇게 비동기로 클라이언트가 접속을 끊고 다시 재연결 하기 전까지는 반복으로 알고 있습니다. 그런데 여기서 궁금한게 위에 코드에서 Send 밑에 Hello라는 메시지를 그냥 콘솔에 출력해주는 코드 한 줄 넣고 클라이언트에서 예제에서는 5번 보내도록 되어 있는 것을 10만번으로 늘린 후 실행해보면 제가 예상한 결과는 10만번 보내는 도중에 위의 코드에서 Start에서 메시지 받는 것은 비동기니 받아지는 도중에 Send 진행되고 밑의 Hello 출력되고 접속이 끊긴다고 알고 있었는데 그렇지 않아 여쭤봅니다. 그러면 비동기하고 동기하고 차이가 없는 것 같아 여쭤봅니다.
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
혹시 강의교안이랑
실제 node.js 교과서 교재랑 동일한 내용인건가요? 영상으로는 뭔가 이해가 잘 안가서 책을 사야하나 고민이어서요..
-
미해결IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z
api서버 미들웨어 용어 질문
안녕하세요 용어에 혼동이 와서 질문남깁니다. 일단 api서버와 was는 같은 것이라고 이해를 하고 있구요 또 회사에서 미들웨어 라는 말을 많이 쓰는데 이것을 api 서버와 같은 말이라고 이해해도 될까요
-
미해결IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z
데이터 베이스관련 질문들 (카프카, 레디스 등)
안녕하세요 회사에서 만난 개념들중 이해안가는 부분 질의드려요 1. neo4j 그래프 데이터베이스가 있는데요 이것의 장점은 단순히 다른 형태의 데이터에 따라 속도가 빨라진다는 것일까요? rdbms말고 그래프 데이터베이스를 굳이 쓰는 이유를 모르겠어요 2. 카프카라는 것이 강의중 데이터 수집서버나 데이터 가공 서버하고 관련이 있을까요? 3. 레디스가 임시저장용 캐시 라고 하는데 이것도 데이터 레이크 혹은 웨어하우스에 해당할까요 너무 잔질문이 많아서 죄송하네요. 초보로서 제가 본 최고의 강의 제공주셔서 항상 감사드립니다.
-
미해결QGIS 기초와 Python의 만남
질문: name 'processsing' is not defined
layer = buffer(food_layer, 1000.0, path_output)을 실행시키면 buffer가 정의되지 않았다고 뜨는데 왜 그럴까요? import processing def buffer(input, distance, output): result = processsing.run("native:buffer",{ "INPUT" : input, "DISTANCE" : distance, "OUTPUT" : output } ) return result['OUTPUT'] path = r"D:\gis_ex\qgis_ex\food.shp" food_layer = QgsVectorLayer(path, "good_food", "ogr") path_output = r"D:\gis_ex\qgis_ex\food_buffer.shp" layer = buffer(food_layer, 1000.0, path_output)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
인텔리제이가 css, js 파일을 인식하지 못합니다
인텔리제이에 sync 버튼도 없는데 어떡하죠? mvc 편에서 out 디렉토리에서 어떻게 해주시면 된다고 말씀하셨던 걸로 기억하는데 기억이 잘 안나네요ㅠㅠ
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
DNS 는 통신 방식이 다른건지 궁금합니다.
안녕하세요. 다른 질문댓글에서 DNS 는 3way handshake 가 발생하지 않는다고 하셔서 3way handshake 는 HTTP 단계가아니라 TCP / IP 단계에서 맺어주는 요청이지 않나요?? DNS와의 연결방식이 혹시 기존 TCP IP 와 다르게 동작하는것인가요??
-
미해결따라하며 배우는 NestJS
인증된 유저 정보를 통한 게시물의 생성과 삭제에 대한 질문
우선은 강의 너무 재밌고 유익하게 수강하였습니다 :)질문은 아래와 같습니다. -----jwt.strategy.ts 에서는 request 를 파싱하여 user 의 정보값을 return 해주는데 이렇게 return 된 user 의 정보중에서 id 만을 가지고 user 하위의 board 를 생성할수는 없는건가요? user 의 전체적인 정보 ( 강의내용상 id, username, password )를 필수적으로 아래와 같이 전부 넘겨야 하는건가요?this.create(createBoardDto, user)
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
프로토콜과 포트에 대해 질문있습니다.
안녕하세요. 수업 감사히 잘듣고있습니다. URL 구성이 protocol://domain:port 구성으로 되어있고, well known 규칙으로 인해 브라우저에서 https 프토로콜은 443 으로 http 는 80 으로 요청한다고 되어있다고 다른 포트로 요청한다고 설명해주셨더라구요. 여기서 질문이 1. 서버상에서 axios 등으로 https 로 요청하게 되면 브라우저처럼 프로토콜을 보고 포트생략시 임의로 붙여주지 않을거같은데 이때의 포트는 무조껀 기재해야하는것인가요?? 2. https://somedomain:8001 이런 서비스가 제공되었을때 https 연결을 위해 인증서 등등을 거치게 되는데 프로토콜의 역활은 이러한 연결 방법만 기재해주는게 맞나요?? 아니면 추가적인 역활이 더있는것인가요?? 감사합니다.
-
미해결Vue로 Nodebird SNS 만들기
안녕하세요
강의를 기반으로 카카오 strategy 를 사용해보고있는데요 궁금한점이있습니다. (저는 서버미들웨어를 사용해서 back front를 합쳤습니다) const router = require('express').Router(); const passport = require('passport'); router.get('/',passport.authenticate('kakao') , (req, res) => { // console.log(req.user); return res.redirect('/'); }); 1. 제로초님 블로그도보니까 동의화면 없이 바로 넘어가던데 원래 이런건가요? 2. passport.authenticate('kakao') 이것하고 passport.use(new KakaoStrategy({ kakao , new KakaoStrategy 부분을 꼭맞춰줘야하는거겠죠? 3. 위의 // console.log(req.user); 부분을 state로 넣어줘야하는데 어떻게 처리해야할까요 ..ㅠ
-
해결됨[개정판] 파이썬 머신러닝 완벽 가이드
<추가질문> RMSE vs. RMSLE vs. MAE
답변 감사드리고 지난 질문에서 강사님이 이해하지 못하신 부분에 대해 다시 설명드립니다. 첫번째 재질문 전 범위의 y 값에 걸쳐서 비슷한 오차(|actual - pred|)가 나타나면 RMSLE와 RMSE의 값은 비슷하게 떨어진다 => 어떤 질문 내용인지는 대강 알겠는데, 비슷한 오차와 RMSLE와 RMSE값이 비슷하게 떨어진다는 것이 잘 매칭이 안되는군요. 다시한번 정의 부탁드립니다. => => 모델의 RMSE와 RMSLE가 둘 다 같은 값 (e.g. RMSE=RMSLE=0.4)을 가질 경우, "모델이 크게 잘못 예측한 것이 없다"라고 해석하면 되는 걸까요? 반대로 RMSE > RMSLE인 경우, RMSE는 크게 잘못 예측한 건에 대해 Penality를 주기 때문에 "모델이 크게 잘못한 경우가 있다"라고 해석을 하면 될까요? 두번째 재질문 2. 위의 2)와 같은 경우, Y의 값이 작은 경우에는 기존 모델을 통해 예측하고, Y의 값이 큰 경우 (기존 모델이 잘 예측하지 못하는 값들)에 대해서는 새로운 모델을 만드는 방법도 가능한가요? 아니면 새로운 모델을 만들기보다 LGBM 같은 leaf-wise 기법을 통해 Y의 값이 큰 경우 leaf node를 더 만듦으로써 해결이 가능하다고 생각하면 될까요? => 질문을 잘 이해못했습니다. 하나의 데이터를 기반으로 Y값에 따라서 동적으로 모델을 두개를 만든다는 것인지요? 새로운 모델을 만든다는게 어떤 의미인지요? 좀 더 자세히 말씀해 주셨으면 합니다. =>=> 하나의 데이터를 기반으로 Y값에 따라서 동적으로 모델을 두개 만드는 것에 대한 의미의 질문이었습니다. 낮은 Y값에 대한 오차는 적은데 Y값이 큰 경우 오차가 크다면, 이를 분리해서 Y가 낮은 경우에는 A모델을 Y가 큰 경우에는 B모델을 만들어도 되는지에 대한 궁금증이었습니다. 이러한 문제를 leaf-wise 형태의 LGBM은 B모델을 따로 만들 필요없이 leaf를 추가적으로 생성함으로써 해결하는 것인지 궁금합니다. 번외로 대댓글로 재질문을 드릴 경우, 강사님께서 미처 확인을 하기 어려우시다면 질문을 따로 만드는 게 혹시 답변하시는데 더 편하신지 알려주시면 감사하겠습니다 :)
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
CoreTLS.h에서 uint32 사용
강의 내용을 그대로 따라했는데요? CoreTLS.h의 LThreadId를 선언하는 부분에서 강의와 다른 상황이 발생했습니다. CoreTLS.h의 LThreadId를 선언하는 부분에서 어떻게 Types.h를 포함해주지 않고 uint32를 사용할 수 있나요? #include "Types.h"를 해주면 잘 됩니다.
-
미해결홍정모의 따라하며 배우는 C언어
스택 영역은 컴퓨터 구조에서 어디에 있나요? 램? 저장장치?
제목 그대로입니다! 저장장치에 저장되어 있다가 가져와서 쓰는건지 램? 캐쉬 메모리?에서 바로 쓰는건지 궁금합니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
3번 연필 개수 코드 리뷰 부탁드립니다
안녕하세요! 제가 연필 개수를 나름대로 풀어보았는데 콘솔창에서 테스트를 하면 같은 값만 리턴됩니다(ex 48을 입력하면 48이 그대로 리턴됩니다) 코드에는 큰 문제가 없어보이는데, 어떤 것이 잘못되었는지 피드백 주시면 감사하겠습니다! <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> function solution(student,doz){ var student=prompt('학생 수를 입력하세요') var doz; if(student%12==0){ doz=student%12; return doz; } else { return doz+1; } } </script> </body> </html>
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
혹시 이후 서버 강의에서 데드 레커닝이나 KD트리 같은 고급 기법도 소개해주실수 있나요?
설명을 잘해주셔서 고급 기법들도 가르침을 받고 싶습니다
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
from절 서브쿼리로만 작성해야하는 이유
select num , lag(num,1) over (order by id) as log1 , lag(num,2) over (order by id) as log2 from logs where num = log1 and num = log2 안녕하세요. 이런식으로 작성하면 왜 오류가 발생하나요?
-
미해결스프링 핵심 원리 - 고급편
JPA 에선 왜 기본생성자가 필요한가요?
안녕하세요. JPA 도 프록시로 인해서 기본생성자가 필요하다는 점이 생각나서 보았더니 리플레션을 통해서 생성하기 때문에 기본생성자가 필요한 것으로 보였습니다. 추측 근거: org.hibernate.bytecode.internal.javassist.FastClass.newInstance(int index, Object[] args) 메소드를 참고하였습니다. 근데 왜 `objenesis` 를 사용하면 되는데, JPA 에선 왜 POJO 스타일의 리플렉션을 사용하는지 궁금합니다.. JPA 강의에서 질문을 올려야 할지 이곳에서 올려야 할지 고민하다가 이곳에서 질문을 남깁니다.감사합니다.
-
미해결Axure RP 9,10 - 서비스 기획자를 위한 최적의 프로토타이핑 툴
신기한게 많네요
안녕하세요. PPT 쓰다가 액슈어로 넘 ㅇㅓ 왔는데 PPT 템플릿으로 가능한가요?
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
이전 질문에 이어서 새로운 문제가 생겼습니다.
이전에 제가 아래 코드를 사용해서 변경점을 나타내려 하였습니다. const modified = await User.update( { name, age, married, comment, }, { where: { name: params }, } ); 이 코드를 사용한다 한들 변경만 해줄 뿐, 변경점을 나타낼수는 없었습니다. 그래서 저는 코드를 아래 처럼 수정했습니다. const { name, age, married, comment } = req.body; try { const params = decodeURIComponent(req.params.who); const getOld = async () => { const usersBefore = await User.findAll({ where: { name: params }, }); return JSON.stringify(usersBefore[0].dataValues); }; await User.update( { name, age, married, comment, }, { where: { name: params }, } ); const getNew = async () => { const usersAfter = await User.findAll({ where: { name: params }, }); return JSON.stringify(usersAfter[0].dataValues); }; const result1 = await getOld(); const result2 = await getNew(); const message = "유저가 변경되었습니다!"; res.render("show", { result1, result2, message }); } catch (err) { console.error(err); next(err); } 간략하게 제 기준에서 설명드리자면 update()함수를 쓰기 전, 즉 변경전에 데이터를 getOld 함수안에 User.findAll()안에 where옵션으로 라우트 매개변수를 가져옵니다. 저는 여기서 데이터를 바꾸기 전에 데이터가 getOld함수안에 저장되어 있을 거라고 생각했습니다. 그 다음에 User.update() 함수로 데이터를 변경합니다. 그리고 데이터가 변경 되어 있을테니 데이터베이스에서 다시한번 getNew() 함수를 통해서 User.findAll()함수로 바꿔져 있을(제 기준입니다.) 데이터를 getNew함수안에 저장되었을 거라 생각했습니다. 즉 'User.update()를 기준으로 getOld와 getNew에는 각각 변경전과 변경후 데이터가 담겨져 있을거다' 라고 생각했습니다. 하지만 저의 예상은 보기좋게 빗나갔네요 ㅋㅋ getOld와 getNew에는 둘다 똑같이 변경후의 데이터가 저장되어있었습니다. 나름 괜찮은 발상이었는데 변경전 데이터와 변경후 데이터를 어찌 나누면 좋을지 궁금합니다.