묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
lock과 send에 관해서
안녕하세요, 이전 질문 글에 비슷한 내용의 질문이 있었는데 조금 다른 부분이 궁금해서 질문글을 올립니다. 1. Send를 할 때 lock을 건다. (현재 _pendingList가 비어있으면, RegisterSend() 호출하고 이게 끝나야 lock이 풀리게된다. ) 2. RegisterSend에서는 SendAsync를 호출하는데 true라면, 1에서 잡은 lock은 바로 풀릴것이다. 그런데 만약 false가 되면 3으로 넘어간다. 3. OnSendCompleted 에서 lock을 걸려고 한다. 👉 이 때 2번에서 SendAsync가 false가 되어 3으로 넘어온 경우라면, 1에서 잡은 lock이 아직 안풀렸을 것 같은 데 잡을 수 있나? 3번의 질문 내용이 궁금합니다. (1번에서 lock을 잡은 상태로 2번을 호출했고, 2에서 SendAsync의 return 값이 false가 되어 3으로 넘어올 때가 궁금합니다.) 제가 비동기 프로그래밍이 익숙하지 않다보니 이해가 부족해서 이런 질문을 올리게 되었습니다.😁 (제가 아직 뒷쪽 강의를 다 듣지 않았는데, 뒤 쪽에 혹시 이런 설명이 나올까요..?) 감사합니다(__) public void Send(byte[] sendBuff) { lock(_lock) { _sendQueue.Enqueue(sendBuff); if (_pendingList.Count == 0) // 대기중인게 하나도 없으니 해라. RegisterSend(); } } void RegisterSend() { // _pendingList가 비어있을 때만 여기로 들어온다. //_pendingList.Clear(); //_sendArgs.SetBuffer(buff, 0, buff.Length); while(_sendQueue.Count > 0) { byte[] buff = _sendQueue.Dequeue(); _pendingList.Add(new ArraySegment<byte>(buff, 0, buff.Length)); } _sendArgs.BufferList = _pendingList; bool pending = _socket.SendAsync(_sendArgs); if (pending == false) { OnSendCompleted(null, _sendArgs); } } void OnSendCompleted(object sender, SocketAsyncEventArgs args) { // 예약한 pendingList 완료됨 lock(_lock) { if (args.BytesTransferred > 0 && args.SocketError == SocketError.Success) { try { _sendArgs.BufferList = null; _pendingList.Clear(); if(_sendQueue.Count > 0) // 보내는동안 누가 또 Queue에 쌓았다. { RegisterSend(); } } catch (Exception e) { Console.WriteLine($"OnSendCompleted Fail {e}"); } } else { Disconnect(); } } }
-
미해결우디의 포토샵 강좌
Lasso tool 동시에 스페이스바
선생님 저는 스페이스바를 클릭하니 사진 전체가 움직입니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
DEVICE매크로 관련 질문있습니다.
#define DEVICE에서 GetDevice가 _device를 가져오는것인데 왜 두 번 가져오는건지 이해가 잘 가지 않습니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
android emulator 문제
android VDC에서 가상장치 만들고 실행하려하면 Haxm을 요구합니다만.. Haxm의 경우에 생각보다 설치하는게 복잡합니다. bios 설정도 변경해야 하는거 같고.. 다른 방법은 없는지 궁금하네요.
-
미해결프론트엔드 개발자를 위한 웹팩
1개 이상의 엔트리를 적용했을때
안녕하세요^^ entry강의에서 entry에 1개 이상을 적어줄수 있다고 하셨는데, 이 경우에는 output 설정을 어떻게 해야 할까요? ------------------------------------------------- entry: { login: './src/LoginView.js', main: './src/MainView.js' } ------------------------------------------------ output: { filename: 'bundle.js' } ------------------------------------------------ [name].bundle.js [id[.bundle.js 이런식으로 output에 옵션을 주면 자동으로 두개이상의 entry를 처리해주는 방식인가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
DTO의 위치에 관하여
Version 4 까지의 최적화를 하면서 Dto의 위치가 repository 까지 갔는데 DTO의 위치는 상황에 맞게 자유롭게 두는게 괜찮을까요?
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
강사님 elastic bean에 대해 질문 드립니다
루트가 travis에 이미지 파일을 빌드하고 그 빌드된 nginx, frontend, backend를 도커 허브에 푸쉬하고 , 엘라스틱 빈에서 도커 파일들을 가져와서 실행시키는데 이때 여기서 궁금한점이 docker compose 파일의 작성한것이 의미가 있는지 궁금합니다 . 왜냐면 엘라스틱 빈스톡에서는 도커 허브에서 빌드된 도커파일만 가져오는데 docker compose를 작성한 이유가 궁금합니다. 프로젝트 파일 전체를 가져오는것이 아니라 도커 파일만 pull 하는데 . 프로젝트 파일에 컴포즈 파일만 작성하더라도 이게 엘라스틱 빈스톡까지 영향을 끼치는건가요?
-
해결됨프리다(Frida)를 이용한 안드로이드 앱 모의해킹
frida -U -f com.android.chrome 명령 실행시, Not allowed to start activity Intent 에러가 발생합니다!
안녕하세요? 프리다 실습을 하던 중, frida -U -f com.android.chrome 명령 실행시 Not allowed to start activity Intent 오류가 발생합니다. 버전은 12.6.11로 강사님이 말씀하신대로 다 맞췄어요. 문제가 뭘까요.?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
CI=false의 의미가 무엇인가요?
CI=false의 의미가 무엇인가요? 또한 process.env.NODE_ENV 에 들어가는 값은 어떤 원리로 클라우드 환경인지 개인컴퓨터 환경인지 파악할 수 있는 건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
case (int)Choice.Scissors 이 부분에 대해서..
안녕하세요. 이제 막 처음 C#을 배우기 시작했습니다. 어떻게 시작해야 할 지 갑갑했는데, 좋은 강의 만들어 주셔서 감사드립니다. 강의를 보다가 궁금한 부분이 생겨서 질문을 드립니다. 앞서 const를 써서 만들 때는, 변수만으로는 case 뒤에 참조로 넣을 수 없어서 상수인자인 const를 쓰셨다고 하셨는데 나중에 enum을 쓸때는 앞에 변수 int를 쓰고 있는 점이 의문이 가서요. 제가 아직 문법에 대한 기초도 제대로 다지기 전이라 이해가 부족해서^^); 혹시 int를 저렇게 써도 괜찮은 이유를 알려주실 수 있을까요?
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
함수에서 값을 실행하는 것과 반환하는 것의 차이
안녕하세요 그랩님! 함수 값 반환에 관한 강의를 듣다가 궁금한 점이 있는데요. return이라는 표현을 통해서 값을 '빈환'할 수 있다고 하셨는데, 단순히 함수를 실행해서 값이 나오는 거랑 반환하는 거랑 무슨 차이가 있는건지 개념 이해가 정확히 되지 않아서요. 혹시 차이를 설명해주실 수 있으신가요? 감사합니다! :)
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
클라우드 사용 질문
서버 배포에 사용할 클라우드와 React 배포에 사용할 클라우드를 다른 것으로 사용해야하는 이유가 있는지 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Disconnect 함수의 임계영역
안녕하세요 ㅎㅎ 궁금증이 생겨 질문드립니다. 강의 21분에 "Disconnect 함수를 동시 다발적으로 실행하거나 같은 Thread가 두 번 한다면" 이라고 말씀하셨습니다. Q.1 Disconnect 함수를 동시다발적으로 실행할 수 있나요? 다르게 말하면 DisConnect함수가 실행하는 내용이 임계영역인가요? 여러번 고민해봤는데 Disconnect를 호출하는 OnAcceptHandler는 인자로 스레드마다 독립적으로 하나씩 가지고 있는 clientSocket을 받고 clientSocket으로 Session.Start(clientSocket); 을 통해 Session 클래스의 객체를 초기화 해주기에 임계 영역이 아니라고 생각합니다. 후자로 말씀하신 하나의 Thread에서 실수로 코드에 두 번 기입해서 Disconnect를 하지 않는 이상 별다른 문제가 없다고 생각합니다. Q.2 매번 코드를 작성할 때마다 임계영역인지 아닌지 고민하면서 코딩하다 보면 머리가 터질 것 같습니다. 선생님께서는 눈에 보이는 임계영역에만 상호배제를 해주고 후에 배포 전에 테스트 단계에서 문제가 발생하면 그때 수정하는것도 현명한 방법이라고 생각하시나요? 조언 부탁드립니다!!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
몽고DB 연결이 안됩니다ㅠㅠㅠㅠ
> boiler-plate@1.0.0 start C:\Users\rwlee\Documents\boiler-plate > node index.js Example app listening at http://localhost:5000 (node:27640) UnhandledPromiseRejectionWarning: MongoError: bad auth : Authentication failed. at MessageStream.messageHandler (C:\Users\rwlee\Documents\boiler-plate\node_modules\mongodb\lib\cmap\connection.js:268:20) at MessageStream.emit (events.js:315:20) at processIncomingData (C:\Users\rwlee\Documents\boiler-plate\node_modules\mongodb\lib\cmap\message_stream.js:144:12) at MessageStream._write (C:\Users\rwlee\Documents\boiler-plate\node_modules\mongodb\lib\cmap\message_stream.js:42:5) at writeOrBuffer (internal/streams/writable.js:358:12) at MessageStream.Writable.write (internal/streams/writable.js:303:10) at TLSSocket.ondata (internal/streams/readable.js:719:22) at TLSSocket.emit (events.js:315:20) at addChunk (internal/streams/readable.js:309:12) at readableAddChunk (internal/streams/readable.js:284:9) at TLSSocket.Readable.push (internal/streams/readable.js:223:10) at TLSWrap.onStreamRead (internal/stream_base_commons.js:188:23) (Use `node --trace-warnings ...` to show where the warning was created) (node:27640) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) (node:27640) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. 이런 에러가 뜨는데 어떻게 해야 할까요?ㅠㅠ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
안녕하세요
안녕하세요 강사님. 무료 강의 이후 JPA에 대해 공부하고 싶어 구매햇습니다. 강좌랑은 무관한 이야기지만 강사님은 SQL공부를 어떤식으로 하셨는지 궁금합니다.(주니어 개발자일때)
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
bodypaser에 줄그어져있는거는 왜그런걸까요?
이유를 알 수 가....
-
해결됨mongoDB 기초부터 실무까지(feat. Node.js)
pull not working
안녕하세요! 항상 강의 잘 듣고 있습니다. 감사합니다. 질문이 너무 많은 거 같아 죄송하네요.. 저같은 경우에는 comment schema의 user를 사진과 같이 구현하였습니다. 그렇기에 { $pull: { comments: { user: { _id: mongoose.Types.ObjectId(userId) } } } } 이와 같이 filter를 주었습니다. 그런데 pull이 작동을 하지 않습니다. 즉, 블로그의 comments의 해당 user가 남긴 댓글이 남아있습니다.해결 방안을 찾기 위해 많이 고민해보았지만 방법을 찾지 못하고 질문을 남깁니다. 위 사진은 mongoose debug 내용과 blog를 console로 찍은 사진입니다. 또한 저의 깃허브 주소도 첨부하겠습니다. https://github.com/onejaejae/learn_mognoDB 감사합니다 :)
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
메이븐말고 그래들로 만들어서하고싶은데
그래들로 만들어서 뷰를 그대로 넣고 따라하며 듣고있는데, 화면이 깨집니다. 기본 html은 나와서 사용이 가능한데, 흰화면에 html 밖에 안나오는데 해결방법이 없을까요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
13:09 store.clear() 에서 store에 빨간줄이 뜹니다 왜이런가요?
13:09 store.clear() 에서 store에 빨간줄이 뜹니다 왜이런가요? java: cannot find symbol symbol: method clearStore() location: variable repository of type hello.hellospring.repository.MemoryMemberRepository
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
TypeError: Cannot read property 'prototype' of undefined
안녕하세요 TypeError가 일어났는데 원인을 못 찾겠습니다.. 도와주세요ㅠㅠ console 에러는 다음과 같습니다.