묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
AcceptAsync()함수의 pending 상태에 대해서 질문드립니다.
섹션2. 네트워크 프로그래밍 listener 파트에서 AcceptAsync함수에 대해서 궁금한점이 있습니다. AcceptAsync 함수가 처음에 잘 이해가 안가서 디버깅을 해보려고 했는데요. 보통은 pending상태가 true여서 콜백으로 OnAcceptCompleted가 호출되는건 이해가 됬는데, pending 상태가 false인 경우는 어떤 경우인지 궁금합니다. 강의 내용이나 문서를 찾아보고 이해한 바로는 AcceptAsync가 호출되는 경우 이미 Connect요청이 있어서 처리한 경우 콜백으로 호출되지 않고 바로 OnAcceptCompleted를 호출해서 처리한다고 이해했는데요. 그래서 서버쪽에서는 AcceptAsync함수를 호출하기 직전에 중단점을 걸고, 클라이언트쪽에서는 Connect하고 Send까지 한 후에 다시 AcceptAsync를 호출하게 하면 pending=false가 되지 않을까 했는데, 결과는 계속 pending=true인 상태네요. 해당 부분 디버깅을 통해서 확인할 수 있는지 궁금하고, 실무에서 pending이 false로 리턴되는 경우가 자주 있는지 궁금합니다.
-
미해결로블록스에서 파이썬으로 메타버스 구현하기
강사님 저는 server 에러가 발생이 되었다고 하네요
12:32:52.619 HTTP 500 (INTERNAL SERVER ERROR) - 서버 - syncToRealWorld:118 12:32:52.619 Stack Begin - Studio 12:32:52.619 Script 'Workspace.syncToRealWorld', Line 118 - function syncWorld - Studio - syncToRealWorld:118 12:32:52.619 Script 'Workspace.syncToRealWorld', Line 130 - Studio - syncToRealWorld:130 12:32:52.620 Stack End - Studio
-
미해결Python 부트캠프
깊은물 셋 강의 영상 전반부가 삭제되었네요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 확인 부탁드립니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
next cach가 계속 changes에 뜹니다
안녕하세요 노드버드 강의를 듣고 혼자 next 프로젝트를 만들고 있는데요 항상 changes에 엄청나게 많은 caches 및 static의 파일들도 수정이 되고 있습니다 왜 그런지 궁금하며 어떻게 없앨 수 있는건지 궁금합니다 패키지의 스크립트는 아래와 같습니다 "scripts": { "dev": "next dev", "build": "next build", "start": "next start" },
-
미해결로블록스에서 파이썬으로 메타버스 구현하기
강사님 저는 server 에러가 발생이 되었다고 하네요
주신 자료를 통해 했는데 안된다고 하네요 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <title>500 Internal Server Error</title> <h1>Internal Server Error</h1> <p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
python built-in 함수 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 먼저 강의 잘 듣고 있습니다 감사합니다! 질문 : __bool__() <-> bool()두개 다 이름은 다르지만 같은 기능을 가진 built-in 함수인걸까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
색깔이 안들어가집니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 깃허브에 파일을 올린 뒤로 class 이름 색깔이라 던지 getMapping 색깔이라던지 색상적용이 안됩니다 이 부분은 어떻게 해결해야 하나요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
격자판 최대합
import sys sys.stdin = open('input.txt', 'rt') n = int(input()) mat = [list(map(int, input().split())) for _ in range(n)] print(mat) print(mat[0]) print(mat[:][0]) tot = -2147000000 # 행의 합 비교 for i in range(n): tmp = sum(mat[i]) if tmp > tot: tot = tmp # 열의 합 비교 for i in range(n): tmp = sum(mat[:][i]) if tmp > tot: tot = tmp # 대각선의 합 비교 tmp = 0 for i in range(n): tmp += mat[i][i] if tmp > tot: tot = tmp tmp = 0 for i in range(n): tmp += mat[i][n-1-i] if tmp > tot: tot = tmp print(tot) 위와 같이 코드를 작성해봤는데 5번 문제만 틀렸다고 나왔습니다. 그래서 원인을 찾아봤는데 행의 합을 구하기 위해 사용한 mat[i]와 열의 합을 구하기 위해 사용한 mat[:][i]의 값이 같다고 나왔습니다. mat[:][i]를 사용하면 i열의 수들을 반환하는 것이 아닌지 궁금합니다.
-
미해결홍정모의 따라하며 배우는 C언어
16:17
저는 for (int i = 0; i < STRLEN; ++i) words[i] = words[i] == '\n' ? '\0' : words[i]; 이렇게 코드를 짜봤는데 교수님이 하신 방식이 더 좋은지 이 방식도 충분히 괜찮은지 궁금합니다.
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
오류관련
class Unit: def __init__(self,name,hp,damage): self.name=name self.hp=hp self.damage=damage print('{0} 유닛이 생성 되었습니다.'.format(self.name)) print('체력 {0}, 공격력 {1}'.format(self.hp,self.damage)) class AttackUnit: def __init__(self,name,hp,damage): self.name=name self.hp=hp self.damage=damage def attack(self,location): print('{0} : {1} 방향으로 적군을 공격 합니다. [공격력 {2}'\ .format(self.name,location,self.damage)) def damaged(self,damage): print('{0} : {1} 데미지를 입었습니다.'.format(self.name,damage)) self.hp-=damage print('{0} : 현재 체력은 {1} 입니다.'.format(self.name,self.hp)) if self.hp<=0: print('{0} : 파괴되었습니다.'.format(self.name)) firebat1 = AttackUnit("파이어뱃",50,16)!!!!! firebat1.attack('5시') firebat1.damaged(25) firebat1.damaged(25) 느낌표 있는 줄에서 AttackUnit이 정의되지 않았다고 뜹니다...
-
미해결빠르게 git - 핵심만 골라 배우는 Git/Github
블로그 정리에 사진과 내용 사용 가능 여부 문의드립니다.
안녕하세요! 강민철님! 개발 공부를 시작하고 강의를 들으면서 블로그에 내용을 정리하려고 하는데 강의 내용과 강의에서 사용한 사진을 사용할 수 있을까요? 강의 출처를 남기고 정리하려고 합니다.
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
express put, delete메서드 사용법이 궁금합니다.
안녕하세요 조현영님. 조현영님께서 http 모듈로 만드신 restServer.js 파일을 제가 express 모듈로 리메이크 하려고 합니다. get과 post메서드는 어떻게든 활용을 할 수 있겠는데 put과 delete를 사용하는게 원리는 어느정도 알겠는데 코드를 어떤식으로 짜야할지 잘 모르겠더라고요. 제가 짠 코드를 보여드리자면 app.put("/user/", (req, res) => { console.log("PUT 본문(body):", req.body); const key = req.url.split("/")[2]; users[key] = req.body.name; res.send(users); }); app.delete("/user/", (req, res) => { const key = req.body.name; delete users[key]; res.send(users); }); 이렇습니다. 사실 조현영님의 restServer.js에서 거의 모방했다시피 짰습니다. 이렇게 짜고 수정 혹은 삭제를 클릭하면 제가 미리 짜뒀던 404처리 미들웨어에 의해서 다음과 같이 표시됩니다. 수정 할 시 Error: 404 at D:\Coding\JavaScript\Node\Node_sever\APIserver\index.js:52:11 at Layer.handle [as handle_request] (D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\index.js:323:13) at D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\index.js:284:7 at Function.process_params (D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\index.js:341:12) at next (D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\index.js:275:10) at serveStatic (D:\Coding\JavaScript\Node\Node_sever\node_modules\serve-static\index.js:75:16) at Layer.handle [as handle_request] (D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\index.js:323:13) at D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\index.js:284:7 삭제 할 시 Error: 404 at D:\Coding\JavaScript\Node\Node_sever\APIserver\index.js:52:11 at Layer.handle [as handle_request] (D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\index.js:323:13) at D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\index.js:284:7 at Function.process_params (D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\index.js:341:12) at next (D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\index.js:275:10) at serveStatic (D:\Coding\JavaScript\Node\Node_sever\node_modules\serve-static\index.js:75:16) at Layer.handle [as handle_request] (D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\index.js:323:13) at D:\Coding\JavaScript\Node\Node_sever\node_modules\express\lib\router\index.js:284:7 둘 다 restFront.js에서 요청을 받아 오지 못한느 거 같습니다. 전체 코드가 필요하시다면 github주소 남겨드리겠습니다. https://github.com/shere1765/small-restAPI
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Stomp Allocator 사용시 메모리 누수 확인 질문
기존 new를 사용할 때는 진입점에 다음 코드를 입력하면 프로그램 종료시 다음과 같이 메모리 누수를 확인할 수 있었는데요 Stomp Allocator 사용 시에는 위 방법으로 누수 확인이 불가능해져서, 이 방식에서는 어떻게 메모리 누수를 확인할 수 있는지 여쭤보고 싶습니다. 기존 new 가 Crt Allocator을 통해 할당을 받기에 위 Crt 방식으로 누수를 확인할 수 있었던 거면, 저희가 구현한 Stomp Allocator 전용으로 누수 확인 코드를 따로 작성해 줘서 확인해야 하는 걸까요?
-
미해결Vue.js 시작하기 - Age of Vue.js
props로 data 값을 변경할수 있나요?
.안녕하세요. 캡틴판교님 영상 잘 수강하고 있는 학생입니다. props 영상을 보면서 props 값을 내린 것 까지는 이해가 되었는데요. 그 값을 단순히 하위 컴포넌트에 출력하는 것이 아니라 응용해서 그 값을 data() 안에 값을 변경하고 싶은데 그게 가능할까요? 예를 들어 하위 컴포넌트에 data(){ return{ showArea: false; } 라는 것이 있다면 false를 true로 변경 하고 싶습니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
faker.js 자체에 무슨 문제가 있는 걸까요?
faker 를 설치했고 package.json 에도 설치가 완료되었고 딱히 오타도 없는 것 같은데 에러가 떴습니다. 분명 package.json 에도 있는데 import 오류가 왜 날까 싶어서 검색을 해보니 무언가 문제가 있는 것 같아요 아니면 제가 찾은 faker.js 가 아니라 다른 걸까요..?
-
미해결Flutter 응용 - 공공 API를 활용한 앱 만들기 (MVVM 패턴)
ios 디바이스에서 geolocator 는 안되는건가요?
강의에서는 안드로이드로 나오는데, 해당 pub를 참고해서 ios 디바이스에서 적용하려하였습니다. plist 에도 내용을 기록하고 적용하였습니다만, 안되네요. 검색을 해보았습니다만. ios14 이상은 권한? 문제라고 하는데 .. 혹시 관련 내용을 참고 할 만한 것이 있을까요?
-
미해결iOS/Android 앱 개발을 위한 실전 React Native - Intermediate
굳이 react-native-text-truncate를 사용하는 이유가 있나요?
React native 공식문서에서 Text component 부분을 보면 이미 Text component는 numberOfLines라는 props를 가지고 있고 ellipsizeMode라고 해서 어떤 식으로 줄일 건지, 끝에 ...을 붙일 건지 앞에 ...을 붙일 건지 등등 설정이 가능하도록 되어 있는데요. react-native-text-truncate는 강의 영상에서도 그렇고 지금 확인해보더라도 다운로드 수도 두 자리 수인걸 보니 거의 사용되지 않는 라이브러리인 것 같은데 혹시 굳이 이걸 사용하신 다른 이유가 있을까요?
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
API 개발에대한 질문
도원님 안녕하세요. 강의를 통해 API 개발하는데 많은 도움을 받고있습니다. 개발중 궁금한게 생겨서 질문드립니다. 한 api가 클라이언트에 응답하는데 필요한 모든 데이터를 처리하는데 시간이 많이 소요돼서 사용자 입장에서 품질이 떨어진다고 생각돼서 개선을 하고싶은데요 제가 하고싶은 방향은 응답 dto에서 처리가 빨리 끝나는 값은 넣고 나머지는 빈상태로 클라이언트에 우선 응답을 내려주고, 서버는 뒷단에서 나머지 필요한 작업을 한뒤 최종 데이터를 내려주고싶습니다. 제 경우 응답 dto의 특정 필드를 처리하는데 시간이 많이 소요되나, 중요 데이터는 아니라 이런 방향으로 하려고 합니다. 이렇게 개발하려면 어떤 개발 패턴이나 기술을 사용해야하는지 모르겠어서 질문드립니다. 키워드를 알려주시면 구글링해서 좀 찾아보고싶습니다. 아니면 이런 경우 실무에서 많이 사용되는 다른 방향이 있을까요? 답변 부탁드립니다. 감사합니다.
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
EfficientNet b7 Scaling 미적용 질문
안녕하세요 권철민 강사님. 열심히 수강하고 있는 수강생입니다. 다름이 아니라 EfficientNet B7 학습 중 질문이 생겨서 이렇게 문의드립니다. 제가 이해하기론 기존까지 Deep Learning 학습할 때 이미지 픽셀의 범위는 -1 ~ 1 혹은 0~1 사이로 scaling 한 다음에 학습을 진행하였는데, 이 모델에서는 픽셀 값이 scaling이 아예 미적용된 것 같습니다. 저번 강의에서 keras가 tensorflow 2.3? 2.4? 버전에서 병합되면서 그 이후로 preprocess _input을 적용해도 스케일링이 잘 안된다고 하셨는데 그 이유 때문인가요? 이렇게 scaling이 적용이 안될 경우에 scaling 적용 없이 학습을 진행해도 무방한 건가요? 무방한 것이 아니라면 torch style의 scaling이라도 해서 학습을 해야되는 건지 궁금합니다. 항상 감사드립니다 강사님!!
-
미해결스프링 핵심 원리 - 고급편
ConcurrentHashMap 사용 질문
https://www.inflearn.com/questions/347336 해당 질문 글에서 ConcurrentHashMap 을 사용하더라도 예제에 발생하는 동시성 이슈를 막을 수 없다고 하셔서 저도 궁금해서 ConcurrentHashMap 을 사용한 LogTrace를 만들어서 테스트를 몇 번 돌려봤는데 정상적으로 처리되는거 같은데 또 다른 이슈가 있는건가요?? package hello.advanced.trace.logtrace; import java.util.concurrent.ConcurrentHashMap; import hello.advanced.trace.TraceId; import hello.advanced.trace.TraceStatus; import lombok.extern.slf4j.Slf4j; @Slf4j public class MapLogTrace implements LogTrace { private static final String START_PREFIX = "-->"; private static final String COMPLETE_PREFIX = "<--"; private static final String EX_PREFIX = "<X-"; private ConcurrentHashMap<Thread, TraceId> map = new ConcurrentHashMap<>(); @Override public TraceStatus begin(String message) { syncTraceId(); Long startTimeMs = getCurrentTimeMillis(); TraceId traceId = map.get(Thread.currentThread()); log.info("[{}] {}{}", traceId.getId(), addSpace(START_PREFIX, traceId.getLevel()), message); return new TraceStatus(traceId, startTimeMs, message); } private void syncTraceId() { Thread thread = Thread.currentThread(); TraceId traceId = map.get(thread); if (traceId == null) { map.put(thread, new TraceId()); } else { map.put(thread, traceId.createNextId()); } } @Override public void end(TraceStatus status) { complete(status, null); } @Override public void exception(TraceStatus status, Exception ex) { complete(status, ex); } private void complete(TraceStatus status, Exception ex) { Long stopTimeMs = getCurrentTimeMillis(); long resultTimeMs = stopTimeMs - status.getStartTimeMs(); TraceId traceId = status.getTraceId(); if (ex == null) { log.info("[{}] {}{} time={}ms", traceId.getId(), addSpace(COMPLETE_PREFIX, traceId.getLevel()), status.getMessage(), resultTimeMs); } else { log.info("[{}] {}{} time={}ms ex={}", traceId.getId(), addSpace(EX_PREFIX, traceId.getLevel()), status.getMessage(), resultTimeMs, ex.toString()); } releaseTraceId(); } private void releaseTraceId() { Thread thread = Thread.currentThread(); TraceId traceId = map.get(thread); if (traceId.isFirstLevel()) { map.remove(thread); } else { map.put(thread, traceId.createPreviousId()); } } private String addSpace(String prefix, int level) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < level; i++) { sb.append((i == level - 1) ? "|" + prefix : "| "); } return sb.toString(); } private Long getCurrentTimeMillis() { return System.currentTimeMillis(); } }