묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
/.well-known/appspecific/com.chrome.devtools.json 에러에 대해서
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.안녕하세요. 영한님,수업을 듣다가 F12 개발자 도구를 켜놓고 실행하고 있었는데 콘솔 창에 아래와 같은 예외가 발생합니다. 개발자 도구를 끄면 안 뜨더라구요. 만약 현업에서 사용한다면 이걸 따로 처리해야하는지 궁금합니다. public class WellKnownServlet implements HttpServlet 이런식으로요.------------------------------------------was.httpserver.PageNotFoundException: request url= /.well-known/appspecific/com.chrome.devtools.jsonat was.httpserver.ServletManager.execute(ServletManager.java:41)at was.httpserver.HttpRequestHandler.process(HttpRequestHandler.java:39)at was.httpserver.HttpRequestHandler.run(HttpRequestHandler.java:24)at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)at java.base/java.lang.Thread.run(Thread.java:1583)
-
해결됨기초 탄탄! 독하게 시작하는 Java Part 3(하) : 소켓과 파일 I/O
reader.readLine() == null 의미
TCP 에코 서버 실습하던 와중에 반복문 조건에서 궁금한게 있어서 질문 남김니다. while((msg = reader.readLine()) != null) { // 로직 }Q. 클라이언트가 연속적으로 msg를 보낼 의도가 있고 그렇게 보낸다고 해도 저 서버쪽의 반복문 안에서 로직을 처리하고 다시 조건을 확인하는 cycle이 엄청 빠를텐데 1. 만약 클라이언트는 여러번 메시지를 보낼 꺼지만, 서버입장에선 1cycle을 돌고 .readLine()으로 했을 때 reader(inputStream)가 비어있으면 null이지 않나요??2. 저런 조건에서 null 조건이 성립하려면 EOF일 때만 null이되서 반복문을 빠져나오는건가요? 3. 아니면 애초에 null일 상황은 없지만 무한 루프를 만들기 위한 장치 인가요??
-
해결됨기초 탄탄! 독하게 시작하는 Java Part 3(하) : 소켓과 파일 I/O
윈도우 IOCP 가 DMA 랑 다른 개념인가요?
영상만 보면 네트워크 하드웨어에서 VMS 메모리 공간으로 바로 보내주는거로 보이는데 이게 DMA 랑 다른 개념인가 싶어서 질문 남깁니다.
-
해결됨기초 탄탄! 독하게 시작하는 Java Part 3(하) : 소켓과 파일 I/O
소켓의 본질은 파일이다.
안녕하세요! 강의 잘 보고 있습니다.강의 내용중 - "File + a"가 있고 - "a"에 해당되는 내용이 네트워크(port번호, IP주소)가 되면 - "file + a" == 소켓이다.이렇게 말씀하셨는데 그러면 앞에서 쭉 강의 하셨던 내용을 토대로 생각해보면 제가 작성한 A,B가 맞는 내용인가요? 아니면 C가 맞는 내용인가요? 아래 그림도 첨부했습니다!A. "a"에 해당하는 네트워크 정보가 있기 때문에 서버와 클라이언트는 각 소켓을 통해 데이터를 주고 받고가 가능.B. 이때 클라이언트에서 hello!라는 mgs를 소켓을 통해 전송하면 : 로컬(서버)에 "file"이라는 1차원 선형 공간에는 data(그림의 경우 클라이언트가 전송한 String타입의 data)이 저장되고 해당 file을 콘솔에 출력하거나, txt로 저장하거나 할 수 있다.C. A,B 둘 다 아니고 소켓은 (장치파일 + a(네트워크 정보))이고 소켓에 send,recv 행위를 하는 것은 장치파일에 write,read 하는 것과 같은 행위이다. 그림에서 클라이언트의 msg를 서버에서 recv 하면 장치파일에 [hello]가 저장되고 그것을 콘솔에 출력하거나 별도의 파일로 저장할 수 있는 것 이라는 의미인가요...??
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
Socket 자원을 정리할때 stream 을 정리하지 않는 이유가 궁금합니다.
안녕하세요. Java 의 Socket::close() 내부에서 InputStream, OutputStream 을 정리해주지 않는 이유가 있나요?Java 에서 제공하는 Socket::close() 내부에서 Stream 들을 정리해주면 강의 코드가 훨씬 간단해질것 같아 문의 드립니다.아니면, 원래 정리를 해주는데 강의에서 복잡한 상황을 보여주기 위해 의도적으로 Socket 과 InputStream, OutputStream 을 함께 명시적으로 정리해주는 것인가요? ServerSocket 의 경우에도 자체적으로 SessionManager 와 같은 기능을 제공하는 더 나은 ServerSocket 클래스가 있는지 궁금합니다.감사합니다.
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
프로젝트 제안 수행에 대한 조언을 구하고 싶습니다.
안녕하세요. 강사님.한 번 훓어보고 2번째 보고, 코드를 타이핑 + 모르는 내용은 GPT한테 무슨 내용인지 물어보면서 진행하다보니 내용 이해가 술술 되고 있습니다. 그래서 후에 프로젝트 제안 주신 것도 이렇게 저렇게 할 수 있겠구나 생각을 하고 있습니다. 다만 고민되는 부분은 기간입니다. 제안 주신 프로젝트를 전부 수행하는데 2~3달 기간이 소요되는 느낌이 드는데...현재 자바 스프링 백엔드 개발자 목표로 하고 있습니다.현재 해야할 것이 JAVA + 알고리즘 공부 + HTML + DB + Spring 그 이후 필요한 것이 있다면 추가로 공부를 해야하는 데, 네트워크 프로젝트에 시간을 쏟으면 이후 공부가 너무 늦춰질까봐 어떻게 우선순위를 두어야 할지 고민을 하고 있습니다.현재 학원이라는 환경이 공부하기가 너무 좋은데 내년 1월까지만 자습으로 사용이 가능해서 앞서 해야할 걸 다 끝낸 후에 프로젝트를 들어갈지 아니면 주어진 프로젝트를 완수하고 들어갈지 의견을 구해봅니다.(프로젝트를 진행하고 넘어가는 것이 좋다면 그리 할 것 입니다.)
-
미해결웹 개발의 핵심, HTTP 완벽 마스터하기!
사전 요청 관련 질문
put, patch, delete 메서드의 경우 options (사전 요청) 을 보내게 된다고 하셨는데요. 물론, 설명 주신것처럼 "Access-Control-Max-Age" 를 통해서 캐싱을 하는 방법도 있겠지만, get 과 post 요청만 사용하는게 (사전 요청을 하지 않으니) 좀 더 효율적인 방법이 될수 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
이 정도 서버의 객관적인 수준이 궁금합니다.
안녕하세요!방금 작년부터 시작해서 1년동안 해당 강의 5회독 마쳤습니다. 문득 궁금해지는데,이 정도 수준의 서버라면 개인적인 온라인 게임 프로젝트에 사용할 서버의 수준이 되는지 궁금합니다.제가 게임 회사의 서버를 본 적이 없어서 궁금해지는것 같아요. 이 정도 수준의 서버를 프레임워크처럼 앞으로 사용하여 여기서 쌓아 올리면 될 것 같은데 어떤 의견이신지 답변 해주시면 감사하겠습니다!
-
미해결AWS Certified Cloud Practitioner 자격증 준비하기
[문의] 수강 기간 연장
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 강의 수강 중인 수강생입니다.혹시 강의 수강 기간 연장이 가능할까요?감사합니다
-
미해결Unity 6 혼자서 온라인 오목 게임 만들기 Unity + C# 서버 구현
바둑판과 돌 등 이미지들 자료 다운 버튼이 없어요
18강 결과물 파일(877MB)에서에셋 폴더에서 가져오긴했습니다만 7강에서 이미지를 다운할 버튼이 없네요
-
미해결김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
클라이언트 강제종료시 오류 메세지
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 선생님 강의를 듣다가 똑같이 서버 실행 후 클라이언트 실행한 뒤에 클라이언트 강제 종료시 "Exception in thread "Thread-0" java.lang.RuntimeException: java.io.EOFException" EOFExcetion 오류가 아닌 "Exception in thread "Thread-0" java.lang.RuntimeException: java.net.SocketException: Connection reset" 이 뜨는데 왜 다르게 뜨는지 궁금해서 여쭤봅니다..! 코드는 강사님 코드와 동일합니다.
-
미해결웹 개발의 핵심, HTTP 완벽 마스터하기!
rest api 에서의 csrf
예제에서 처럼 html 을 response 하지 않고 rest api 를 통해 fe 와 통신하는 경우에도 csrf 를 사용하는 경우가 있을까요? 만약 있다면 어떻게 사용하는지도 알고 싶습니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
html from, http api
html form으로 post하면 서버가 받게 되는 http 메시지의 형식이post /save http/1.1host: localhost:8080Content-Type: application/x-www-form-urlencoded이고 서버끼리의 값을 주고 받을 때의 http 메시지 형식이post /members http/1.1Content-Type: application/json{ "username": "young", "age": 20}차이가 이렇게 되는건가요?즉 프론트에서 백엔드로의 값 전달 형식이 1번째이고백엔드에서 백엔드로의 값 전달 형식이 2번째인건가요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
실전 문제 풀이
안녕하세요! 강의 잘 듣고있습니다. 이제 실전 문제풀이 부분 수강중인데, 여기에 나오는 문제들이 모두 실제 ssa 시험 기출 덤프인가요? 아니면 따로 제작하여 유사 수준의 문제인가요??
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
vpn GtoG 질문
강의에서 3.3.3. x 대역대인 부산 지사와 5.5.5.x 의 서울 지사를 터널링해서 서울 지사의 db 서버에 접근하는 과정에서5.5.5.1 에서 암호화된 실제 패킷을 복호화 해서db 서버에 접근한다고 했는데 그러면src ip 가 3.3.3.10 으로 여전히 되어있어서db 서버는아웃바운드하고 인바운드 모두private 망에서만 주고 받도록 되어있기때문에이렇게 하면 안되지않나요 ?마치 5.5.5.100 입장에서는3.3.3. 1이 요청 하는 것 처럼 되잖아요 ? ..................................................................5.5.5.1 에서 복호화 후에 얻은 실제 패킷의src ip 를 5.5.5.1 로 조작한 후에 해당 패킷을 db 로 날려 접속한다음 다시 db 로 부터 받은 패킷을 5.5.5.1 에서 받아 역순으로 암호화해서 전달하고 ~이런 방식이 맞지 않나요 ?강의를 듣다가 헷갈려서 질문 드립니다 .
-
해결됨이해하면 인생이 바뀌는 네트워크 프로그래밍
컴퓨터가 여러 대 있는 환경에서의 질문입니다.
안녕하세요. 강사님.현재 사용할 수 있는 컴퓨터가 여러대인 학원 자습실에서 학습을 하고 있습니다. 현재 강의 내용이 새롭다보니 강의를 한 번 쭉 훓어보고 본격적으로 학습에 들어가려고 합니다. 질문을 하게 된 계기는전에 소켓프로그래밍 채팅 예제를 할 때, 다른 컴퓨터에서 통신을 알려면 '공유기의 글로벌 IP주소'를 알아야한다고 해서 질문드리게 되었습니다. 여기서 질문 입니다. 노트북은 현재 없으며컴퓨터가 여러 대 있는 환경 / 학원인지라 공유기 정보 및 글로벌 IP 주소를 알 수 없는 상황의 경우에는 이번 강의에서 학습할 예제를 하기 어려운지 미리 알고 싶습니다. (컴퓨터는 다 LAN선으로 꽂혀있고 LAN선의 최종 연결 위치는 보이지 않습니다.) 만약 어렵다면, 대처방안을 어떻게 해야할지도 알고 싶습니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
36. Serialization #3 에서 string (name) 코드 수정 질문
안녕하세요! 강의 내용은 name을 받는 과정에서 byte[] 직렬화 및 역직렬화 하기 위해 nameLen을 count하고, 이를 ArraySegment에 넣는 과정인데요. 그 과정에서 다음과 같은 코드를 사용합니다. ServerSession.cs 이고, public override ArraySegment<byte> Write()함수 내부입니다. // stringushort nameLen = (ushort)Encoding.Unicode.GetByteCount(name);success &= BitConverter.TryWriteBytes(s.Slice(count, s.Length - count), nameLen);count += sizeof(ushort); // nameLen(2)Array.Copy(Encoding.Unicode.GetBytes(name), 0, segment.Array, count, nameLen);count += nameLen; // name(n) 여기서 Array.Copy(Encoding.Unicode.GetBytes(name), 0, segment.Array, count, nameLen);이 부분에서 count 대신 count + segment.Offset 를 사용하는 것이 올바르지 않을까 하여 질문드립니다. 이는 for문을 포함하여 코드 실행시 서버 측에서 다음과 같이 나타나기 때문입니다.Listening...PlayerInfoReq: playerId=1001, Name=NPCReceived packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=Received packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=Received packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=Received packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=Received packet: size=20, packetId=1Client connected: [fe80::9e56:3a99:3a3a:58be%18]:55626OnDisconnected: [fe80::9e56:3a99:3a3a:58be%18]:55626 이처럼, 첫 1회만 NPC라는 네임이 제대로 나타나는 것을 볼 수 있습니다. 그러나 count + segment.Offset 를 사용했을 경우는, 다음과 같이 제대로 나타납니다. Listening...Client connected: [fe80::9e56:3a99:3a3a:58be%18]:55458PlayerInfoReq: playerId=1001, Name=NPCReceived packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=NPCReceived packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=NPCReceived packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=NPCReceived packet: size=20, packetId=1PlayerInfoReq: playerId=1001, Name=NPCReceived packet: size=20, packetId=1OnDisconnected: [fe80::9e56:3a99:3a3a:58be%18]:55458 물론 이후 리팩토링을 통해 작성한 코드에서는 전부 제대로 나타납니다.ushort nameLen = (ushort)Encoding.Unicode.GetBytes(this.name, 0, this.name.Length, segment.Array, segment.Offset + count + sizeof(ushort));(리팩토링 코드) Offset을 사용하지 않을 경우 아마도 패킷을 덮어써서 이런 결과가 나타나는 것 같습니다.
-
해결됨김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션
고급 2편에는 퀴즈가 없네요?
퀴즈가 섹션별로 있어서 복습하고 다시 리마인드하기 좋던데 고급 2편에는 퀴즈가 없네요? 퀴즈가 없는 이유가 있는걸까요? 찾아보니 3편에도 없는데 다른 이유가 있을까요? 최근에 나온 DB 편에도 있어서요. 확인 부탁드립니다. 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
외부 컴퓨터와의 통신 방법이 궁금합니다
직접적으로 다른 컴퓨터와 통신하는 방법같은 것은 수업 커리큘럼에 나와있지 않던데어떻게 하면 되는 건가요? 포트포워딩과 방화벽 인바운드 설정만 추가하면외부 컴퓨터에 프로그램을 깔아서 통신할 수 있는 건가요?
-
미해결그림으로 쉽게 배우는 네트워크
ACK number 설정 관련
ack number 설정에서 data 크기 + seq + 1 이라고 설명해주셨는데 seq가 1000부터 시작하고 데이터 크기가 500이라면 1000부터 1449까지의 데이터를 받은 것 아닌가요? 그러면 ack number가 1500으로 설정 되어야 하는 것 아닌가요??! 왜 +1이 더 생기는 지 궁금합니다 !