묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
IOCP 워커 스레드 순서 보장 질문 드립니다.
루키스님 안녕하세요?C#서버 강에서 넘어와서 C++서버 공부하고 있습니다. C# 서버와 비교하면서 공부하다 워커 스레드 순서 보장이 궁금해서 질문 드리게 되었습니다. C# 서버에서는 Room.Flush()따위를 메인 함수의 와일루프에서 호출해서 단일 스레드로 처리하기 때문에 순서보장이 되는 것을 직관적으로 이해했습니다. 여기 예시에서는 워커스레드를 5개를 배분해주셨습니다. C# GameRoom으로 빗대면, 긴~~ 작업 Job A와, 짧은 B가 있는데 A->B 순서로 진행이 되어야 한다고 하면, 1번 워커 스레드는 먼저 들어온 A를 처리중..2번 워커 스레드가 이어서 들어온 B 작업을 처리.. A보다 먼저 처리 완료.1번 워커 스레드가 처리중인 A 처리 완료..이렇게 B->A 순서로 처리가 될 것 같다는 생각이 들었습니다. Q1. IOCP 워커 스레드가 순서 보장이 되는지?Q2. 그럼에도 불구하고 워커스레드를 N개 하신 이유가 있을 것 같은데 C#도 그렇게 할 수 있을지? 예를 들어 Room의 처리를 1, 2, 3, 4, 5번 스레드를 파서 동시에 처리 할 수 있을지?Q3. C# 서버에서는 Room에 1개의 스레드를 배분한 특별한 이유가 있는지?궁금합니다.
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
회원 관리 예제4 - ObjectStream에대해서
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 회원 관리 예제4 오브젝트스트림 에 대해서 복습하는데, ObjectBookRepository 클래스의 add() 에서멤버를 리스트 에 넣고, 오브젝트 안에 리스트를 넣는 방식이 저에게는 생소 하다 할까요?이 예제 코드를 여러 번 치고 지우다 보니, 머리에 입력은 되긴 했는데. 머리에 입력이 된거지, output은 안 나오는 상황입니다.이럴 때에는 어떻게 해야하나요?답변 부탁 드립니다.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
개인키, 공인 인증서 폴더
안녕하세요 1:42 에 말씀하신 개인 키랑 공인인증서 폴더 가 무엇인가요??? 다운받은 내용이 없는데 폴더도 없습니다. 어디서 찾을수 있나요?? - 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.)- 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 재검토하겠습니다. - 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
채팅 프로그램 콘솔출력 겹침
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 채팅 프로그램 작성 도중 여쭤볼 게 있어 남기게되었습니다문제 상황위 사진은 제 콘솔출력창입니다 왼쪽사용자는 kim : hi라는 메시지를 보냈고, 오른쪽 사용자는 han: hello라는 메시지를 보냈는데요, 문제는 메시지를 보내달라는 문장과 다른 사용자가 보낸 메시지 내용이 겹친다는 것입니다 질문 위 사진은 제가 해결해보려는 시도로 static메소드를 lock을 사용해서 만들었습니다. 하지만 결과가 똑같았습니다. 해결방법이 궁금합니다! 그리고 lock을 걸어서 사용했는데 왜 결과가 똑같은지도 궁금합니다...답변해주시면 감사하겠습니다 아래는 제 코드를 보여드리겠습니다!1.Client 메세지 보내는 부분 클래스입니다 public class ClientSecond { private static final int PORT = 12345; static Socket socket; static DataOutputStream output; static DataInputStream input; public static void main(String[] args) throws IOException { try { socket = new Socket("localhost", PORT); output = new DataOutputStream(socket.getOutputStream()); ClientReceiverSecond clientReceiverSecond = new ClientReceiverSecond(socket); Thread thread = new Thread(clientReceiverSecond); thread.start(); System.out.println("Chatting Program"); System.out.print("사용자의 이름을 입력하세요 : "); Scanner scanner = new Scanner(System.in); String name = scanner.nextLine(); output.writeUTF(name); //1.이름전송 while (true) { //System.out.print("메세지를 입력해주세요 : "); ClientOutput.printMessage(); String message = scanner.nextLine(); output.writeUTF(message); //2.메세지전송 if (message.equals("exit")) { System.out.println("채팅 프로그램을 종료합니다. "); break; } } }finally { output.close(); socket.close(); } } } 각 클라이언트에게 다른 사용자의 메세지를 보내는 클래스입니다public class ClientReceiverSecond implements Runnable { private static Socket socket; static DataInputStream input; public ClientReceiverSecond(Socket socket){ this.socket = socket; } @Override public void run() {//다른 사용자들의 메세지 확인 try { while (true) { input = new DataInputStream(socket.getInputStream()); String other_messages = input.readUTF(); //사용자의 이름과 메시지 분리 필요 //System.out.println(other_messages); ClientOutput.printMessage(other_messages); //todo if (other_messages.equals("exit")) { System.out.println("채팅을 종료합니다. "); break; } } } catch (IOException e) { throw new RuntimeException(e); }finally { try { input.close(); } catch (IOException e) { throw new RuntimeException(e); } } } } 클라이언트와 통신하는 세션 클래스인데요 혹시 몰라서 추가로 올려보겠습니다public class SessionSecond implements Runnable{ private Socket socket; private SessionManagerSecond sessionManagerSecond; DataInputStream input = null; DataOutputStream output = null; public SessionSecond(Socket soket, SessionManagerSecond sessionManagerSecond) { this.socket = soket; this.sessionManagerSecond = sessionManagerSecond; sessionManagerSecond.add(this); } public void send(String message) throws IOException { output = new DataOutputStream(socket.getOutputStream()); String messages[] = message.split(","); String name = messages[0]; String messagemain = messages[1]; output.writeUTF(name+" : "+messagemain); } @Override public void run() { try { input = new DataInputStream(socket.getInputStream()); //output = new DataOutputStream(socket.getOutputStream()); String name = input.readUTF(); while (true) { String message = input.readUTF(); if (message.equals("exit")) { break; } String allmesaage = name+","+message; sessionManagerSecond.call(allmesaage); } } catch (IOException e) { throw new RuntimeException(e); }finally { try { output.close(); input.close(); } catch (IOException e) { throw new RuntimeException(e); } } } }
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
세션8 우선순위 큐 pop함수의 Predicate 적용 관련 질문이 있습니다.
pop 함수를 보면 if (right < (int)_heap.size() && predicate(heap[next], _heap[right]))인 left와의 비교에서 나온 결과 값을 비교하는 부분에만 predicate를 적용하였는데 위에 left와 비교하는 부분은 둘 중 더 큰 값을 next에 넣는게 목적인 코드입니다.더 작은값을 찾을때 문제가 생길 수 있을것이라 생각이 되는데 문제가 생기지 않아 의문점이 생겨 질문 드립니다.left쪽엔 predicate 비교를 하지 않아도 되는 이유가 무엇일까요?
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
[오타 제보] 2. IO 기본1.pdf
[오타 내용]대상 강의록: 2.IO 기본1.pdf대상 위치: p.17 최하단 부분오타 내용수정 전: 예를 들어 BUFFER_SIZE가 10이라면 10만큼 모이면 wirte()를 호출해서 ...수정 후: 예를 들어 BUFFER_SIZE가 10이라면 10만큼 모이면 write()를 호출해서 ... 백준 풀 때 실행 시간 빠른 코드들은 다들 Buffered 어쩌고를 썼길래 이게 뭐지~ 하고 그냥 넘어갔던 기억이 있는데 여기서 마주하게 되어서 기쁘고 재밌네요!
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
워드프레스가 어렵네요 ㅠㅠㅠ
80포트를 이미 사용중이여서50080을 사용중인데 (iptime에서 포트포워딩 되어 80으로 들어가므로 강의 코드는 계속 그대로 써도 상관없었습니다)워드프레스 로그인 하니까 50080포트가 사라지면서 80 포트로 되어서 로그인 페이지 처리가 안되는 것 같은데 워드프레스를 잘 모르니까 어디를 고쳐야할지 모르겠네요..아마 워드프레스에서 다시 서버 도메인으로 리다이렉션 시키는 부분이 있는 것 같은데 그때 80포트로 시켜버리나봐요..
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
기초편 이후로 선행되어야하는 지식
안녕하세요 선생님,기초편을 들은 후 응용편으로 넘어왔는데 난이도(?)가 확 올라가서 혹시나 듣기 전에 선행해야 하는 책 또는 지식이 있다면 알려주실 수 있으실까요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간 연장 부탁드립니다.
수강기간 연장 부탁드립니다. 감사합니다.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
도커 활용하기 (주피터 노트북 서버 만들어보기)에서 질문있습니다
15:15 에 로컬호스트는 사실 자기 서버라고 하셨는데 자기 서버인데 왜 localhost로 3306 열려져 있는 포트를 찾지 못했던 것인지 잘 모르겠습니다.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간 연장을 부탁드립니다.
안녕하세요 강사님.다름이 아니라 개인적인 사정으로 인해 강의를 모두 수강하지 못하여, 수강 기간 연장을 요청드리고 싶습니다.혹시 가능하시다면 연장해 주실 수 있을까요? 번거롭게 해드려 죄송합니다.감사합니다.
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
SessionV3 객체 예제는 실제 HttpSession 처럼 동작하는 객체일까요?
[질문 내용]여기서 작성한 Session 객체도 혹시 HttpSession 객체랑 비슷하게 동작하는 방식일까요?
-
미해결AWS Certified Cloud Practitioner 자격증 준비하기
실전 문제 풀이 6 26번 질문있습니다.
안녕하세요.ACL은 서브넷 단위로 적용되고, 보안 그룹은 인스턴스 단위로 적용되는 것으로 알고 있습니다. 문제의 조건에서 ‘다른 인스턴스와의 네트워크 연결을 제어하지 않는다’고 명시된 점을 고려했을 때, 인스턴스 단위로 적용할 수 있는 보안 그룹이 정답이 되어야 하는 것 아닌지 궁금합니다. ACL은 서브넷 내의 모든 인스턴스에 동일하게 적용되므로, 다른 인스턴스와의 네트워크 연결을 제어하지 않는다는 조건을 충족하지 못하는 것이 아닌가요?답변 주시면 감사하겠습니다
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
.
.
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
섹션9 함수 포인터 관련 질문입니다.
영상 초반 내용을 보면 using FuncPtr = void();는 잘 사용하지 않는 문법이라고 하고, 뒤이어 나오는using FuncPtr = void(*)();와 같은 형식을 자주 사용한다고 했는데 동일하게 동작한다면 오히려 앞쪽이 더 편한 것 아닌가요? (*)를 추가하는 이유가 단순히 포인터임을 표시해주기 위함 인가요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
콘솔앱 (.NET Core) 과 콘솔앱과 동일한가요
Visual Studio 2002 사용 중입니다. 구글링 해서 SDK도 설치하고 여러가지 해봤지만 콘솔앱 (.NET Core)는 보이지 않네요. 명칭이 콘솔앱으로 변경되었다는 글을 본 것 같아서 콘솔앱으로 진행했는데 namespace도 자동으로 생성되지 않고 조금 다른 부분이 보입니다. 같은 것이 맞나요? 이렇게 진행해도 되나요??
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
스위치에 대한 질문
'스위치는 네트워크 그 자체를 이루는 호스트이다.'라고 표현하셨는데 이 부분이 헷갈립니다.'엔드 포인트는 네트워크 그 자체를 이루고 있지 않다는 것인가?'라는 의문이 들기 때문입니다.저는 이렇게 이해했습니다. '스위치는 네트워크 그 자체를 이루는 목적의 호스트이고, 엔드 포인트는 네트워크를 이루면서 다른 목적도 있는 호스트이다.'제가 이해한 것이 맞는지 궁금합니다.
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
안녕하세요 배포 관련 질문이 있습니다.
파이썬 백엔드 강의를 다 들은 상태인데요medelcontrollerviewstatictemplatesserver.py구조로 되어있을텐데요이를테면 spring에서 war로 만들어서 tomcat에서 실행시키잖아요그것처럼 flask도 이 강의 flask 부분을 따라하면 기존 강의의 위처럼 되어있는 구조(medelcontrollerviewstatictemplatesserver.py)에서 flask 식으로 빌드가 가능한건가요?아직 못 들어봐서 이전 강의 구조 그대로 이어서 배포가 가능한가 싶어서요spring 은 maven 생성하면 자동으로 properties 나 pom.xml 같은 구조가 기본적으로 갖춰지는데일반적으로 플라스크는 원래 프로젝트 폴더를 먼저 생성하고 빌드를 위한 구조를 갖추게 하는건가요?자세한 건 강의보고 따라 하겠지만.. 틀을 잘 모르겠습니다..---------------------------------------------------------조금 더 공부하고 찾아보았는데요1. 기존 구조에서 pip freeze > requirements.txt 를 하여 requirements.txt 파일이 프로젝트 폴더에 추가되게 한다.2. wsgi.py 파일을 추가해준다from server.py import appif name == "__main__":app.run()3. gunicon 을 사용하여 프로젝트를 돌려준다.혹시 이렇게 하는 것인가요?부족한 것이 있을까요 ?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기한 연장 문의
안녕하세요 강사님. 다름이 아니라 개인 사정으로 강의를 다 듣지 못하여 수강 기한 연장을 문의드리고 싶습니다. 번거롭게 해드려 죄송합니다.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기한 연장
안녕하세요. 강사님수강기한 신청 연장이 가능하다면 수강기한 연장을 부탁드리고 싶습니다.감사합니다.