묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
언리얼에서 소켓 연결 관련 전역 객체의 생성 질문
안녕하세요 강사님강사님의 강의를 들으며 게임 서버 개발자를 꿈꾸는 학생입니다.다름이 아니라 이번에 프로젝트를 진행할 기회가 생겨서 언리얼 클라와 IOCP 서버를 연동해 게임을 만드려고 합니다.이때 클라측에선 네트워크 스레드를 별도로 두어 패킷의 송수신을 담당하도록 하고 수신받은 데이터를 전역에서 존재하는 큐를 여러개 두어(인게임 패킷만 다루는 큐, 로비에서의 패킷만 다루는 큐 등) 여기에 밀어주도록 하고 메인 스레드에서 이를 락을 걸어 뽑아서 쓰는 형식으로 구현할 계획입니다.여기서 궁금한 점이 이런 소켓 연결 관련 객체와 글로벌 큐를 어느 위치에서 가지고 있어야 하는지입니다. 전역으로 사용하고 연결이 끊기면 안되므로 Game Instance를 생각하고 있습니다만 더욱 좋은 방법이 있는지 강사님께 여쭤보고 싶습니다. 읽어주셔서 감사합니다!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
에러나서 시간을 많이 잡아먹어요
window용이라서 에러가 나면 검색하느라 시간을 많이 잡아먹어요.기본 1시간 이상 걸리는거 같아요이걸 감내해야되는 건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
sql 로그가 나오지 않습니다..
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]본 강의에서 선생님 화면처럼 sql 이 로그에 나오지 않습니다. yml 파일은 똑같이 작성했는데도 나오지 않는 이유를 모르겠습니다...
-
해결됨Next.js 시작하기(feat. 지도 서비스 개발)
emotion styles 파일이 빌드시 경고로 뜹니다.
저는 scss 대신 emotion 스타일을 사용하고 컴포넌트or 페이지를 스타일 파일과 한폴더에 넣어 사용합니다 (아래와 같은 폴더구조)페이지 폴더가 라우트 기능을 해서인지 다음과 같이 빌드 최적화에 실패햇다고 뜨는 현상이 있는데 컴포넌트폴더 에서는 문제없이 되는데 페이지 폴더에서만 이렇게 되는 원인이 무엇인가요?또 해당 페이지를 컴포넌트로 이동신후 페이지에서 단순 호출만 하게 한다면 최적화가 정상적으로 되는건가요?
-
미해결눈떠보니 코딩테스트 전날
퀵 정렬
퀵정렬 시간복잡도가 최악이 O(nlogn), 베스트가 O(n^2)라고 표기되어 있는데 이게 맞나요?
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
컴포넌트 재사용성 질문
이전 강의 섹션 7 "실무용 폴더구조와 props"에서 21분 3초쯤에 src > components에서 한 번만 사용되는 컴포넌트들은 units, 두 번 이상 사용되는 컴포넌트들은 commons폴더에 만들어 준다고 하셨는데 섹션 7 "컴포넌트 재사용성"에서는 만들 컴포넌트는 등록페이지와 수정페이지 두 곳에서 사용되는데 12분 50초쯤에 src > components > commons이 아니라 src > components > units 폴더에 만드시던데 2번 이상 사용될 컴포넌트는 commons안에 만드는 거 아니었나? 혼란스러워서 저도 units 폴더에 따라 만들긴 했지만 제가 제대로 이해못한 것 같습니다... 이 부분에 대해서 한 번 더 설명해 주시면 감사드리겠습니다!
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
send, recv 함수
char buf[] = "data"; int sendSize = 0; int total = 0; while ((sendSize = send(socket, buf + total, sizeof(buf) - total, 0) > 0 && total < sizeof(buf)) { total += sendSize; }데이터를 송수신할 때 송수신 함수는 주고받고 싶은 만큼의 데이터가 모두 전달되지 않더라도 완료될 수 있으니까데이터를 송수신할 때는 한 번의 함수호출이 아닌 위와 같이 여러 번의 함수호출로 완전한 데이터 송수신을 하는 게 맞나요??(코드는 송신할때의 상황이지만 수신도 서로 약속한 길이의 데이터를 주고받을 때 마찬가지인지 궁금합니다.)
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
@Valid 어노테이션에 대한 테스트 질문입니다.
안녕하세요. 강의에 매우 깊은 감명을 받고 토이 프로젝트에 말씀해주신 부분들 적용해보고 있습니다.강의에서 가이드 주신대로 유효성 검증에 대한 테스트도 mock 라이브러리 없이 순수 자바 코드로 해보고 있습니다.기존 코드에서는 입력값 유효성 검증을 위해 @Valid 어노테이션을 사용했는데요. 스프링부트를 실행시키지 않으니 @Valid 어노테이션이 정상작동을 안해서 테스트를 작성하는데 어려움을 겪고 있습니다....ㅎㅎ그래서 유효성 검증을 하는 코드를 직접 작성해야 하나 고민하다가 질문을 남기게 되었습니다. 강사님께서는 유효성 검증에 대한 테스트 코드를 작성하는데 어떤 방법을 사용하시는지 궁금합니다.(@Valid는 자바 표준 스펙으로 알고 있어서 스프링을 실행시키지 않아도 방법을 잘 찾아보면 가능할 것 같다 라고도 생각하고 있습니다.)
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
플레이어 이동 관련해서 질문있습니다.
방향enum Dir{DIR_UP = 0,DIR_LEFT = 1,DIR_DOWN = 2,DIR_RIGHT = 3,DIR_COUNT = 4,};위쪽부터 시작해서 오른쪽으로 가고 싶을때초기 방향이 UP이라고 하면dir = (dir -1 ) % DIR_COUNT ; 방향값이 -1 나와서음수일 경우 양수로 만들어 예외처리해서 사용하면 되는건가여 ?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
브레이크 포인트를 거는데 그냥 실행됩니다.
중단점이 현재 적중되지 않습니다. 이 문서의 기호가 로드되지 않았습니다.라고 뜨고 브레이크 포인트와 상관없이 그냥 실행됩니다.왜 그런걸까요 ㅠ
-
미해결실무자를 위한 구글애널리틱스(GA4+GTM) 활용법(24년 Update)
GA4 : 구성이 안나와요.
강의 듣기 시작했는데요. 태그 관리자에서 설명과 다르게 태그 관리자에서 이렇게 나와요. GA4 구성은 어디서 찾을까요?
-
해결됨Practical Testing: 실용적인 테스트 가이드
컨트롤러 테스트의 Mock을 통한 Stubbing 관련 질문
안녕하세요. 우빈님!먼저 우빈님의 테스트 강의가 너무나 재미있어, 테스트에 대한 막연한 지식을 구체화하고 테스트 작성 열망을 크게 키울 수 있어서 감사하다는 말씀을 드리고 싶습니다!다름이 아니라, Controller 테스트를 위해 @WebMvcTest를 통해 Service와 Repository를 Mocking하여 단위 테스트의 형식으로 작성한다는 것을 배웠습니다. 이렇게 배운 것을 사이드 프로젝트에 적용해보며, 의문점이 생겼는데 능력 부족으로 인해 의문이 해결되지 않아 질문을 드리려 합니다. 상황강의에서 작성한 컨트롤러 테스트 중 일부인 OrderControllerTest의 테스트 메서드는 다음과 같습니다.@DisplayName("신규 주문을 등록한다.") @Test void createOrder() throws Exception { // given OrderCreateRequest request = OrderCreateRequest.builder() .productNumbers(List.of("001")) .build(); // when & then mockMvc.perform( post("/api/v1/orders/new") .content(objectMapper.writeValueAsString(request)) .contentType(MediaType.APPLICATION_JSON) ) .andDo(print()) .andExpect(status().isOk()) .andExpect(jsonPath("$.code").value("200")) .andExpect(jsonPath("$.status").value("OK")) .andExpect(jsonPath("$.message").value("OK")); }또한, 해당 메서드의 실행 로그를 보면 MockHttpServletResponse이 다음과 같다는 것을 볼 수 있었습니다.MockHttpServletResponse: Status = 200 Error message = null Headers = [Content-Type:"application/json"] Content type = application/json Body = {"code":200,"status":"OK","message":"OK","data":null} Forwarded URL = null Redirected URL = null Cookies = [] 이후, 저의 사이드 프로젝트의 컨트롤러 테스트를 위와 동일한 방식으로 작성하였지만, 아래와 같이 MockHttpServletResponse의 Body가 빈 채로 응답이 되어 테스트가 실패하게 되는 문제가 발생했습니다.MockHttpServletResponse: Status = 200 Error message = null Headers = [X-Content-Type-Options:"nosniff", X-XSS-Protection:"0", Cache-Control:"no-cache, no-store, max-age=0, must-revalidate", Pragma:"no-cache", Expires:"0", X-Frame-Options:"DENY"] Content type = null Body = Forwarded URL = null Redirected URL = null Cookies = []이때, given()을 통해 Service에 대한 행위를 Stubbing해주니 정상적으로 테스트가 성공하는 것을 확인했습니다. 문제 파악을 위해 조사한 결과 추측되는 차이점은 다음과 같습니다.강사님의 프로젝트에서 Controller의 응답 타입은 커스텀 응답 객체인 ApiResponse를 사용합니다.저의 사이드 프로젝트에서 Controller의 응답 타입은 HttpEntity를 상속하는 ResponseEntity를 사용합니다. 질문Q1. 강사님의 코드를 보면, 아래와 같이 createOrder 메서드에 대한 Stubbing 없이도 정상적으로MockHttpServletResponse의 Body가 응답되어 테스트가 성공합니다.// given ... given(orderService.createOrder(any())) .willReturn(OrderResponse.builder() ... // 생략 .build() ); // 없어도 테스트는 성공한다.저는 given() 절에 @MockBean을 통해 Mock 객체로 설정한 OrderService가 어떤 행위를 해야할지 Stubbing 해주어야 하는 것으로 이해하고 있었는데, 어떻게 Stubbing 없이 Body가 정상적으로 채워져 테스트가 성공한 것인지 궁금합니다. Q2. Q1과 연관하여 강사님의 코드에서는 ApiResponse라는 커스텀한 응답 객체를 컨트롤러 메서드의 응답으로 사용하는데, 제 사이드 프로젝트에서의 응답 타입은 ResponseEntity를 사용하고 있습니다. 이 차이 때문에 발생하는 문제인지 궁금합니다. Q3. 이번 의문점을 통해 컨트롤러 테스트에서 메서드의 행위에 대한 기댓값을 Stubbing하여 검증하는 것이 일종의 답정너(?)와 같은 테스트를 작성하는 것은 아닐까? 라는 생각과 함께, 컨트롤러 테스트 방식에 많은 고민을 해야 하겠다는 다짐을 하게 되었습니다. 이에 대한 우빈님의 생각은 어떠하신지 궁금합니다. 질문이 수준이 다소 떨어지지만, 이 의문점을 해결하고 싶은 마음에 장황하게 나열할 수 밖에 없었음을 양해 부탁드립니다.답변 기다리겠습니다. 감사합니다!
-
해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
회의실 배정
n = int(input()) n_list = [list(map(int, input().split())) for _ in range(n)] n_list.sort(key=lambda x: (x[1], x[0])) cnt = 1 cur = n_list[0][1] for i in range(n): if cur <= n_list[i][0]: cur = n_list[i][1] cnt += 1 print(cnt)위 코드로 강사님이 제시해주신 케이스는 다 통과하는데,동일한 문제임에도 백준 1931번은 틀렸습니다로 출력됩니다. cnt=0, cur=0으로 고쳐서 해결하긴 했는데, 첫번째 회의는 무조건 회의실에 배정된다고 생각하는게 왜 틀린 생각인지 모르겠어서 질문 드리게 되었습니다. 감사합니다!
-
미해결토비의 스프링 부트 - 이해와 원리
spring mapping 여러개 문의 드립니다
안녕하세요 토비님제가 자주 질문 드려서 싫어 하실거 같네요..https://www.url01.urlcom/충청도 or 제주도 or 인제군 or ...(지자체 정보 170개 )이런식으로 ~Controller.java170개의 경우를 겟매핑이나 포스트매핑(보안문제로)해야 합니다@GetMapping({ '/충청도', '/제주도', or '/인제군' or ......이런식으로 170 개의 지자체 })아래 부분을 위해서 수기 타이핑 문자열이 아닌db에서 불러와서 배열로 넣을려고 하니 되지 않아서제가 잘못 생각하고 있는지 여쭤봅니다변수 = 서비스.지자체리스트; //170개 db에서 꺼내옴@GetMapping({ value = 변수 }) ==> 이거 원래 안되는 것일 까요? 계속 스택오버플로우나 구글링 찾아봐도 제가답을 못 찾았습니다 혹시 원래 되는 기능 이라면 , 제가 어디 문서를 찾아 봤었어야 할까요?( 예를 들면 토비님 같은 경우스프링 공식 문서 샘플 설명 사이트 나, 자주 방문하는 이 사이트 찾아 보면 금방 답이 나왔을 것이다이런 부분 알려 주시면 감사합니다.. )
-
미해결자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
오버라이드 할때 @override 안적어도 되나요?
네
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
아이콘과 글자 사이 간격
안녕하세요! css 싸이월드 1일차 과제 중에 아이콘과 글자 사이의 간격을 조절할 수 있는 방법이 있는 지 궁금해져 질문 드립니다!아래는 제가 작성한 html 코드이고아래는 라이브서버 화면입니다!별과 인스타그램 사이 간격이 위 3개의 글자보다 넓어 신경이 쓰이네요... 차이를 알고자 배경색을 깔아둔 것입니다. 답변 주시면 감사하겠습니다 :)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-P 37%에서 막힙니다.
안녕하세요 선생님.항상 강의 잘 듣고 있습니다.제가 작성한 코드가 37%에서 막히는데 왜 틀린 건지 잘 모르겠습니다.고민하다가 해설 강의를 봤고 해설 강의 코드가 효율적이고 정확하다는 것을 이해했습니다. 다만, 제 코드가 비효율적이긴 해도 왜 틀렸는지 알고 싶습니다. https://www.acmicpc.net/source/66267875 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
블로그 포스팅 관련 문의
안녕하세요 강사님먼저 좋은 강의 만들어주셔서 감사드립니다.빅데이터 관련 영역을 조금씩 배워나가고 싶어 강의를 신청하게 됐습니다. 다름이 아니라 혹시 강의 영상 혹은 수업 관련 자료중 필요한 부분을 캡처해서 제 개인 티스토리 블로그에 올려도 되는지 여쭙고자 글을 작성했습니다.다른 분들과 공유보다는 스스로 복습하는 용도로 글을 작성하는 목적이 크지만 인터넷에 올라오는 내용인 만큼 먼저 허락을 구하고자 합니다.상업적인 목적은 없으며 블로그 광고 연동도 신청하지 않을 것입니다.만약 혹시라도 하게 된다면 다시 한 번 말씀드리겠습니다.만약 캡처 사진을 올리는게 불가하시다면 비공개 처리하여 공유 및 열람이 안 되도록 조치한 후 저 혼자만글을 읽을 수 있도록 하겠습니다.감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-O 질문드립니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/67fc25f9921f4194b579af1bdfb7a353안녕하세요 선생님,왜 정답코드와 다르게 if의 순서를 바꾸면 틀렸다고 나오는지 궁금해서 여쭤봅니다. 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MVC패턴에서 보통 Servlet 클래스를 Controller로 쓰는 편인가요?
이제 MVC 패턴 적용 편 듣고 있는데 저는 따로 Controller 클래스랑 Model 클래스를 만들어서 사용할 줄 알았는데 그냥 Serlvet 클래스 객체를 Controller로 사용하고 해당 Serlvet 객체 내에 있는 저장소를 Model로 사용한다고 해서 좀 의아해서 여쭤봅니다!실제로 현업에서 Controller와 Model 클래스를 따로 만드는게 아닌건지, 아니면 강사님께서 쉬운 예시를 보여주시려고 그냥 Servlet 객체를 둘 다 로 쓴건지 궁금하네요