묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요 선생님 backlog : 최대 대기수 에 대해서 질문 드립니다.
class Listener { Socket _listenSocket; Action<Socket> _onAcceptHandler; public void Init(IPEndPoint endPoint, Action<Socket> onAcceptHandler) { // 문지기 생성 : 첫번째 인자에 네트워크 주소를 넣어줌 _listenSocket = new Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); _onAcceptHandler += onAcceptHandler; // 연결 // 문지기 교육을 시킴 : 식당 주소와 포트번호를 기입 _listenSocket.Bind(endPoint); // 영업 시작 : 리슨 소켓을 리슨 상태로 둔다. // backlog : 최대 대기수 _listenSocket.Listen(10); // *** 초기화를 하는 시점에 등록을 해줄 것 // 이 상태에서 클라가 connect 요청이 왔다고 한다면 // 콜백 방식으로 OnAcceptCompletd 함수 호출 된다. // 비동기 방식으로 예약만 하는 것 // 낚시대를 10개를 꼽아 놓는다. 물고기가 많으면 ... // 문지기 10개 버젼 for(int i = 0; i<10; i++) { // 문지기 1 버젼 SocketAsyncEventArgs args = new SocketAsyncEventArgs(); args.Completed += new EventHandler<SocketAsyncEventArgs>(OnAcceptCompleted); RegisterAccept(args); } } 수업 예제 코드 중에 Listen 클래스 를 작성하실 때 리슨 소켓 하나 만들어주고 그놈을 서버 컴퓨터에 바인딩을 시켜준다음 리슨 함수를 호출해 주고, 이상태에서 클라쪽에서 신호가 오면 그 다음 처리를 해주는 코드 설명이셨는데 여기서 리슨 함수 인자를 10으로 놓고 for문을 10번 반복 하셔서 문지기를 10개를 생성하셨습니다. 질문 : 최대대기수가 10이라는 얘기는 클라이언트가 10명이 접속 한다는 얘기 인가요? 그래서 문지기를 10개를 생성 해주셨는지 이게 맞다면 클라이언트 접속이 대략 1000명을 예상한다면 리슨 함수 인자로 1000을 넣어줘야 하나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
질문은 아닙니다만 devtools 동작이 안되는 경우
아무리 devtools 를 적용시켜봐도 리컴파일을 하고 새로고침을 해도 페이지 변하지 않길래 구글님에게 수소문 해본 결과 https://lejewk.github.io/springboot-devtool/ 이거대로 해보니 되네요. 혹시나 devtools 동작 안하시는 분들 참고하시라고 공유차원에서 올려봤습니다~
-
해결됨프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
vscode로 학습중인데 왜 문제가 발생한건지 모르겠어요
클래스에서 self 보면서 코드 작성하고 실행하는데 이부분에서 문제가 발생한다고 하는데 왜 발생을 한건가요? 선생님 강의중에서는 오류 발생한걸로 안보이는데
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Util Class의 GetOrAddComponent<T>(GameObject go) 함수에서...
항상 좋은 강의와 빠른 답변 감사드립니다! 제가 Util Class의 GetOrAddComponent<T>(GameObject go) 함수에서 where T : UnityEngine.Component 작성하시는 부분에서요!(5:07) GetComponent<T> 함수는 오류가 안뜨지만 AddComponent<T> 함수는 오류가 뜨길래 F12로 확인해봤더니 GetComponent는 Object클래스에 정의되어 있지만 AddComponent는 GameObject 클래스에 정의되어 있는것 까지는 확인을 하였습니다.. 하지만 왜 T를 부모클래스인 Object로 한정하면 안되고Component로만 한정해야 AddComponent를 쓸 수 있는건지는 와 닿지가 않아 질문드립니다.. 설명 부탁드립니다...!🙏
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
7장 실습 질문
7장 실습을 하면서 안되는게 있어서 질문을 드립니다. 사용자를 등록하고 코멘트를 등록했습니다. 코멘트를 등록하고 수정을 했을 때 수정된 내용으로 바로 반영이 되어야 하는데 그렇지 않습니다. 책에 있는 소스대로 치니까 getComment()를 부르는데 axios 통신하고나서 이 함수를 호출을 안하네요 왜 그런가요? ㅠㅠ const edit = document.createElement('button'); edit.textContent = '수정'; edit.addEventListener('click', async () => { const newComment = prompt('바꿀 내용을 입력하세요.'); if (!newComment) { return alert('내용을 반드시 입력하셔야 합니다.'); } try { await axios.patch(`/comments/${comment.id}`, { comment : newComment }); getComment(id); } catch (err) { console.error(err); } });
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
extension함수로 교체할 때
영상의 2분 경에 GetOrAddComponent()를 extension method로 추가하고 UI_Inven에서 item. GetOrAddComponent<UI_Inven_ Item>() 이렇게 호출 하잖아요? 함수 정의에서는 인자로 GameObject가 들어가있는데 이건 item이라는 GameObject인스턴스를 통해서, 그리고 함수의 적용 대상이 item이라서 인자를 안넣어도 되는 건가요?
-
미해결Objective-C 강좌 - 12개 앱 만들면서 배우는 iOS 아이폰 앱 개발
Received Actions 버튼이 안보이네요
Received Actions 버튼이 안보이네요
-
해결됨모던 자바스크립트(ES6+) 기본
디버깅 맨 처음부터 Script에 globalLet이 설정되어있습니다.
콘솔은 강의대로 찍혀있지만, 소스 디버깅 처음부터 Script 에 globalLet이 떠있습니다. 강의에서는 ( 16. let globalLet; ) 변수 선언이 실행되어야 Script에 설정되는 것처럼 나오는데 제 브라우저에서는 그 문장 실행 이전부터도 Script에 globalLet이 설정되어 있어서 혼란스럽습니다. 이것 역시 실행하기 전에 엔진이 한 번 훑었다고 생각하면 될까요...?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
이미지 소스 주소
이미지 소스의 주소가 https://로 시작해서 .jpg로 끝이 나는데 혹시 인터넷에 돌아다니는 사진의 경우 그 이미지 소스 주소((?)를 어떻게 따나요??? 예를들어 구글에 있는 어떤 이미지를 불러오고 싶은데 그 이미지의 소스 주소를 알아내는 방법이 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
DataSourceUtils import가 안 됩니다..
private void close(Connection conn) throws SQLException{ DataSourceUtils.releaseConnection(conn, dataSource);} 2.4.2 버전을 사용하고 있습니다. JdbcMemberRepository 클래스에서 DataSourceUtils에 관한 import가 되질 않아 진행이 안되는데요. Alt + Enter를 눌러도 추천하는 내용에는 import 내용이 없습니다. 어떻게 해결해야 하나요?
-
미해결실전 HTML & CSS 강좌
13강. CSS속성 4 번째 마지막 표 만드는 부분..li태그가 중앙정렬이 안되네요?
<!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> <style> *{ margin:0px; padding:0px; } #wrap{ width:1000px; border:2px solid gray; margin:0 auto; } #header{ width:980px; border:1px solid gray; margin:0 auto; text-align: center; height:90px; line-height: 90px; margin-bottom: 5px; margin-top:5px; } #nav{ width:980px; margin:0 auto; border:1px solid gray; text-align:center; height:90px; overflow: hidden; margin-bottom: 5px; text-align: center; line-height: 45px; } #nav ul li{ float:left; width:180px; border:1px solid gray; list-style: none; height: 30px; line-height: 30px; text-align: center; } #content{ width:980px; border:1px solid gray; overflow: hidden; height:270px; margin:0 auto; } .main{ float:left; width:630px; border:1px solid gray; height: 250px; margin-right: 5px; margin-top:5px; text-align: center; margin-left: 5px; } .ban{ width:330px; height:250px; border:1px solid gray; float:left; margin-top:5px; text-align: center; } #footer{ width:980px; height: 90px; border:1px solid gray; margin:0 auto; text-align: center; line-height: 90px; margin-bottom: 5px; margin-top:5px; } </style> <body> <div id ="wrap"> <div id = "header"> <h1>HEADER</h1> </div> <div id = "nav"> NAVIGATION <ul> <li>menu1</li> <li>menu2</li> <li>menu3</li> <li>menu4</li> <li>menu5</li> </ul> </div> <div id="content"> <div class="main">CONTENT</div> <div class="ban">BANNER</div> </div> <div id="footer"> <p>FOOTER</p> </div> </div> </body> </html>
-
미해결리액트로 나만의 블로그 만들기(MERN Stack)
Infinite Scroll 문제
안녕하세요 강사님 강의 잘 보고있습니다. 가장 최초 게시물 페이지에 진입하면 오류가 뜨지 않는데 다른 페이지로 들어갔다가 PostCardList 페이지로 들어가면 다음과 같은 오류가 발생하면서 기존에 있었던 게시물들이 반복해서 뜨는데요ㅠㅠ 어느 부분이 문제일까요?ㅠㅠ https://github.com/HyunYuJin/me_blog 제 깃 주소도 올려드려요!!ㅠㅠ 감사합니당
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
수업자료 사이트 아예 주소가 잘못되었다고 뜨는데 어떻게 해결할 수 있을까요?
수업자료 사이트 아예 주소가 잘못되었다고 뜨는데 어떻게 해결할 수 있을까요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
input
뭐가 오류인지 모르겠습니다
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
400대 오류관련
안녕하세요 강사님 강의 잘 보고 있습니다. 한가지 궁금한 점이 있어서 질문드립니다. 보통 구글에서 뭘 검색해서 관련된 페이지를 클릭해서 들어가면 간혹 404 not found가 뜨는 경우가 있는데 이 경우는 리소스가 있는데 숨기는 건가요? 감사합니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
saga로 데이터를 넘겨주는거에 대해 질문 있습니다.
긴가민가해서 질문 올려요 ㅠㅠ 백앤드 노드 서버 구축하기 - 게시글 좋아요 영상 보고 있는데요, postCard.js의 const onLike = useCallback( () => { dispatch({ type: LIKE_POST_REQUEST, data: post.id }) // true는 false로 / false는 true로 // setLiked( (prev) => true) }, []) 여기서 data의 post.id를 saga로 보내주는데 그럼 sagas/post.js의 이 부분에서 function likePostAPI(data) { return axios.patch(`/post/${data}/like`) } post.id는 likePostAPI함수의 매개변수(data)로 입력되고요, 그러면 routes/post.js의 router.patch('/:postId/like', async (req, res, next) => { try { const post = await Post.findOne({where: {id: req.params.postId}}) if (!post) { return res.status(403).send('게시글이 존재하지 않습니다.') } await post.addLikers(req.user.id) res.json({ PostId: post.id, UserId: req.user.id }) } catch (error) { console.error(error) next(error) } }) 이 부분이 실행되는건데 처음 dispatch의 data로 post.id를 보내주면 post와 id를 합쳐서 저절로 router.patch('/:postId/like', async (req, res, next) => { 이 코드의 postId로 들어가는게 맞는건가요? postId를 예를 들어 postEd로 수정하니깐 당연히 에러가 발생하기는 한데... 처음이라 긴가민가하네요ㅠㅠ 만약 data로 post.me라고 보내면 router.patch('/:postMe/like', async (req, res, next) => { 로 수정하는게 맞는건가요? 감사합니다!!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
수업자료가 다운로드가 안 되네요
수업자료가 다운이 안 됩니다.... 자료를 받아볼 수 있는 사이트가 별도로 있나요?
-
Git과 GitHub 시작하기
브랜치를 만들어서 커밋을 해줬을 때 그래프상에 가지가 생기질 않아요
삭제된 글입니다
-
미해결코로나맵 개발자와 함께하는 지도서비스 만들기 1
화면에 지도가 뜨지 않는 이유를 모르겠습니다!
6분 10초까지 따라했는데 새로 고침을 했지만 아예 지도가 표시가 되지 않습니다. 완전 똑같이 따라썼는데 문제가 무엇인지 모르겠습니다! 저번시간까지는 됐습니다 <!DOCTYPE html> <html> <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, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"> <title>my first map</title> <link rel="stylesheet" href="/stylesheets/style.css"/> <script type="text/javascript" src="https://openapi.map.naver.com/openapi/v3/maps.js?ncpClientId=zethc2gz24"></script> </head> <body> <div id="navbar">myfirstmap</div> <div id="infoBox"> <div id="infoTitle">현재 날짜</div> <div id="infoContent">2020.01.01 </div> </div> <div id="map" style="width:100%;height:100vh;"></div> <!-- 외부 데이터 파일을 가져옴 --> <script type ="text/javascript" src="/data/data.js"></script> <script> var mapOptions = { center: new naver.maps.LatLng(37.3595704, 127.105399), zoom: 10, }; var map = new naver.maps.Map("map", mapOptions); //마커 var markerList =[]; var infowindowList =[]; for (var i in data){ var target = data[i]; var latlng = new naver.maps.LatLng(target.lat , target.lng); marker = new naver.maps.Marker({ map : map, position: latlng, icon : { content: "<div class ='marker'></div>", anchor: new naver.maps.Point(12,12) //마커의 중심 설정 }, }); //string 값으로 나온다. `` 백틱 var content = `<div class='infowindow_wrap'> <div class='infowindow_title'>${target.title}</div> <div class='infowindow_content'>${target.content}</div> <div class='infowindow_date'>${target.date}</div> </div>` var infowindow = new naver.maps.InfoWindow({ content = content, backgroundColor: "#00ff0000", borderColor: "#00ff0000", anchorSize : new naver.maps.Size(0,0) //말풍선 형태로 하는 건데 말풍선안나오게 하는 것 }) markerList.push(marker); infowindowList.push(infowindow); } for(var i=0, ii=markerList.length; i<ii; i++){ naver.maps.Event.addListener(markerList[i],"click", getClickHandler(i)); } function getClickHandler(i){ return function(){ var marker = markerList[i]; var infowindow = infowindowList[i]; //infowindow가 지금 지도에 표시 되어있는지 if(infowindow.getMap()){ infowindow.close(); } else{ infowindow.open(map.marker) } } } </script> </body> </html>
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요 선생님 동기식 비동기식 에 대해서 질문드리고, 서버 코드 공부 방법에 대해서도 질문 드립니다.
수업에서 궁금한 점이 2가지 정도 있어서 질문드립니다. Q1 ) 제가 동기식 VS 비동기식 제대로 이해하고 있는지 질문드립니다. 게임에서는 무조건 비동기식으로 사용해야 한다. 왜냐하면 언제 클라이언트가 CONNECT 요청 들어 올지 모르는데 Accept 걸어놓고 계속해서 메인 쓰레드는 다른 일을 하지못하고 connect 신호 올때 까지 기다리고 있기 때문에 성능 저하가 발생을 한다 비동기식으로 사용을 하는데 그냥 이벤트로 콜백 걸어 놓고 OS 한테 야! 연결 신호오면 알려줘 하고 쓰레드는 다른 일하러 갑니다. CONNECT 신호가 오면 OS가 인력사무소(쓰레드 풀)에 알려주고 대기 하고 있는 쓰레드 아무나 가서 해당 일 처리를 한다. 이정도로 이해하면 되는지 여쭤보고 Q2. 서버 공부를 할 때 이해를 기반으로 시간날때마다 손으로 쳐보면서 익숙해지도록 해두면서 공부하는 것이 좋나요? 나중가서 실무에서 업무를 맡게되면(물론 저는 컨텐츠 플머 지망이지만) 선생님께서 수업하실 때 하는 것처럼 머리속에서 바로바로 나오게 할려면 외워야 할텐데.. 개념은 당연히 남에게 설명할 정도로 숙지를 해야겠지만 직접 짜보라고 하면,, 못할거 같아서요 ㅠ.ㅠ 실무 경험도 없고 신입 기준 네트워크 프로그래밍 공부 방법 좀 알려주시면 정말 감사하겠습니다.