묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Listener와 Session 강의를 들으면서 정리한 개념이 맞는지 알고 싶습니다.
강의 잘 듣고 있습니다. 항상 좋은 강의 감사합니다.게임 클라이언트 프로그래머를 목표로 준비하고 있는 취준생입니다. 근래 업계에서 풀스택 혹은 클라이언트 작업을 진행하면서도 서버 쪽 기초 지식을 보유하고 있는 개발자를 높이 평가하고 있다고 느껴 서버 강의도 수강하게 되었습니다.지금까지 포폴을 준비하면서 동기 방식 혹은 비동기 방식을 구성할 때는 코루틴으로만 코드를 작성했다보니 비동기(Async) 방식을 보면서 좀 헷갈리는 부분들이 있어 복습하면서 정리해봤는데 정리한 개념이 맞는지 궁금해서 질문 남겨봅니다.질문으로는일단 Async로 구현한 이유는 강사님께서 중간에 설명해주신 일반 Send와 Receive 함수는 블로킹 계열이라 흐름을 막는다는 점 때문에 사용한 것으로 이해했습니다. 이 때 Resister(Send/Recv) 와 On(Send/Recv)Completed를 순환적으로 구성하여 작성한 이유가 쓰레드 환경에서 쓰레드가 하던 일을 교체할 때(Context Switching) 야기하는 오버헤드(교체할 때 발생하는 비용)를 감소하여 효율을 높이기 위해 일거리가 남아있다면 계속 그 일을 잡게하기 위한 작업이 맞는건가요 ? 저렇게 순환적으로 구성했을 때 혹시 한 쓰레드만 해당 작업을 진행하게 되어 오히려 효율적으로 떨어질 수도 있을 것 같다는 생각을 하게 되었는데, 유저수가 많은 MMORPG 서버에서도 저런식으로 작업을 진행하는지 궁금합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
멀티서비스 관련 문의 드립니다!
안녕하세요.항상 좋은 강의를 제공해주셔서 지식을 습득하는데 큰 도움이 되고 있습니다 감사합니다!현재 강의를 들으며 서비스를 구축하고 있는데 멀티서비스와 관련하여 몇가지 질문드립니다.강의에서 OrderService를 멀티서비스로 구현했을 때 동기화 문제가 발생할 수 있다고 하셨습니다.그래서 카프카를 이용해 개선을 진행하셨는데, 만약 같은 두 개의 서버가 같은 DB, 예를 들어 RDS의 URL을 접근하게 될때 궁금한 부분이 존재합니다.보기에는 MQ를 이용하면, 요청이 큐 형식으로 순차적으로 진행하게되어 동시에 DB에 write를 할 경우 문제가 발생하지 않는게 맞을까요?Kafka Listener(Consume)는 실시간으로 topic에 데이터가 들어올 때만 사용하면 되는 것으로 생각해도 될까요? 예를 들어 kafka connect 로 생성할 데이터를 업데이트하고 필요한 경우에는 consume이 아닌 직접 DB에 요청해서 가져와서 활용하는게 맞는 방향일까요? 아니면 항상 데이터는 consume으로 가져와야하는 건가요?멀티서비스를 하는 경우 로그가 각각 저장될 것으로 생각됩니다. 현재 slf4j2를 이용해서 서비스 로그를 저장하고 있는데 이 경우 로그를 통합해서 한 곳에서 보려면 어떻게 해야하나요? 서칭했을 땐 fluentd라는 로그수집기를 얘기하던데 이런방식으로 로그를 수집하는 방법이 맞을까요? 추가적으로 이런 로그를 프로메테우스에서도 볼 수 있는지 궁금합니다.아직 개념이 머릿속에 자리잡지않아서 혼동되는 부분이 있어서 질문 드렸습니다!감사합니다!
-
미해결
리액트 새로고침
리액트에서 새로고침 했을 때 원래 화면 디자인이 바뀌어서 나타납니다.해결 방법이 무엇인가요?
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
해상도 관련
해상도 관련하여 2280x1080 사용하시는데 추가적으로 다른 해상도에 대응하기에 좋은 방법이 있을까요 ? 아니면 다른 강의에서 다루신 부분이 있나요? 여러 기기에서 작동해보려고 합니다
-
미해결IT인을 위한 ELK 통합로그시스템 구축과 활용
logstash 연동 중에 filebeat 인덱스가 생성되지 않습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의명 : "로그스태시, 파일비트 설치와 실행"과정 중에 filebeat와 logstash 연동에 대해 설명해주시는데 yml 파일을 강의와 똑같이 작업하고 나서 확인했는데 filebeat 인덱스가 생성되지 않습니다. 원인 확인을 하려면 어떤 부분을 확인해야될까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘
자동완성 기능 질문
c++ implementation 자동완성 기능은 어떤걸 설치하면 얻을 수 있을까요? visual assist를 구매하는 방법 말곤 없을까요?
-
미해결실전! Querydsl
em.flush(),clear() 대신 @Modifying 어노테이션을 붙여도 되나요?
1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@Modifying 을 어노테이션으로 단다면, em.flush(),clear() 코드없이 동일한 동작을 수행하게 되나요?스프링 데이터 JPA에서는 Repository위에 달았는데요. 뒷 강의에서 Spring data JPA와 QueryDSL을 병행해서 사용하기 위해 custom Repository를 만든다고 배웠습니다. 이 custom Repository의 함수에 @Modifying을 달아도 동일하게 동작하는지 궁금합니다. 정리하자면 QueryDSL에서도 @Modifying이 적용되는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
store 객체는 그냥 선언해준건데 어떤방식으로 Repository에 전달외 되는가용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]회원 도메인과 리포지토리 만들기 강의의MemberyMemberRepository 클래스에서private statice Map<Long, Member> store = new HashMap()으로 객체를 만들고나서 아래에서 값을 저장할 때 store.put(member.getId(), member) 이런식으로 처리하는데 어노테이션도 없이 그냥 static으로 선언한 store 객체에서 왜 어떻게 값이 들어가는지 궁금합니다.
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌2)
안녕하세요. jquery 슬라이더에 대해 질문 있습니다.
안녕하세요.현재 시즌 1,2, 반응형 포트폴리오등 몇가지를 결제해서 듣고 있는중인데요다름이 아니고 강사님꼐서 제이쿼리로 자동 슬라이드를 어떻게 했는지알고 싶어서 강의를 찾아봤는데웹디자인 기능사에만 있는것 같습니다. 그런데 저는 기능사실기자격증을 따기도 했고 그부분만 보기에는 금액이 너무 커서혹시 다른 강의에 제이쿼리 자동슬라이드 부분이 있는 강의는 없는지 물어봅니다.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
이메일 로그인 질문입니다
10:00부분에서 똑같이 완성을 하고 회원가입을 눌러도 실패라고 계속 뜹니다다른분이 질문한 글을 보고 따라해 보았는데도 계속해서 실패가 뜹니다<동일한 내용의 다른글의 개복치님 답변>아래와 같이 else부분에 Log.d()를 이용해서 task.exception의 내용을 출력해보시겠어요?이 부분을 실패 부분에 넣어보시면 됩니다.Log.d(TAG, "createUserWithEmail:failure", task.exception) 무엇이 문제인가 궁금합니다
-
해결됨Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"
setup 함수내 문자열 관련 질문입니다.
아래 코드를 실행하고 Add Message1 버튼을 4번 클릭하고 Add Message 버튼을 클릭하면 {{ normalMessage }} 값은 !가 4개 붙은 값이 나옵니다. 그리고 Add Message2 버튼을 클릭하면 콘솔창에는 !가 한개 붙은 값이 나옵니다.normalMessage 가 addNormalMesssage 함수 안에서 선언한 지역 변수도 아닌데 왜 값의 공유가 안 되는 건가요?<template> <h2>setup 함수내 반응형 메시지</h2> <p>{{ reactiveMessage }}</p> <button v-on:click="reactiveMessage += '!'">Add Message</button> <h2>setup 함수내 일반 메시지</h2> <p>{{ normalMessage }}</p> <button v-on:click="normalMessage += '!'">Add Message1</button> <button v-on:click="addNormalMesssage">Add Message2</button> </template> <script> import { ref } from 'vue'; export default { setup() { const reactiveMessage = ref('Hello Reactive Message'); let normalMessage = 'Hello Normal Message'; const addNormalMesssage = () => { normalMessage = normalMessage + '!'; console.log(normalMessage); }; return { reactiveMessage, normalMessage, addNormalMesssage, }; }, }; </script>
-
해결됨XD UI 디자인 + Clone Coding 인터렉티브 반응형웹 포트폴리오!
스크롤 내릴때 header text 글자두께
선생님 질문있습니다.스크롤 내리거나 올릴때 header에 있는 text KR, EN 의 글자가 흰색<--> 검은색으로 바뀌잖아요그때 미세하게 두께가 두꺼워지는 현상이 있는대요거슬리네요. 해결방법없을까요
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
url 파라미터가 2개이상일 때 가져오는 방법 질문입니다.
안녕하세요 강사님 generics를 이용하여 진행하고 있는데, url이 {호스트명}/<게시글번호>/댓글/<댓글번호>/ 일 때 어떻게 get_queryset을 작성해야할 까요? 아래는 제가 작성한 get_queryset입니다.# urls.py path('<int:post_pk>/comment/<int:comment_pk>/', views.CommentDetailAPIView.as_view(), name='comment_detail'), # views.py class CommentDetailAPIView(RetrieveUpdateDestroyAPIView): queryset = Comment.objects.all() serializer_class = CommentSerializer permission_classes = [IsAuthorOrReadonly, ] def get_queryset(self): qs = super().get_queryset() qs = qs.filter(post__pk=self.kwargs['post_pk']).filter(pk=self.kwargs['comment_pk']) return qs현재 이렇게 진행하면 위와같이 에러가 나타는데, 해결을 못하고 있습니다.
-
해결됨Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"
v-on:click ="" 질문입니다
lectures/4/App_CompositionAPI.vue 파일에 아래와 같이 data 옵션을 추가하고export default { data() { return { dataMessage: 'dataMessage' }; }, setup() { }, };템플릿에 <p>{{ this.dataMessage }}</p> <button v-on:click="this.dataMessage += '!'">Add Message</button>를 추가하고 버튼을 누르면 정상적으로 뒤에 '!'가 출력된 dataMessage가 나옵니다 근데 이전 VUE2에서 공부할 때는 <button v-on:click="this.dataMessage += '!'">Add Message</button>로 작성하면 Error in v-on handler: "TypeError: Cannot read properties of null (reading 'dataMessage')" 라는 에러가 떴었습니다.그래서 그냥 this 없이 v-on:click="dataMessage += '!'" 로 작성하면 동작했는데 지금은 되고 vue2 사용할 때는 에러가 뜨던 이유가 뭔가요?
-
미해결
16강 강의에 대한 질문입니다.
안녕하세요. 웹크롤링 처음으로 접하는 강의라서 익숙하지 않지만 잘 듣고 있습니다.16강 강의에 대한 질문입니다.1) 네이버 쇼핑창에 아이폰 13 검색후 개발자도구 선택하면 아이템, 상품명, 가격, 링크 태그가 아래처럼 나와서 복사해서 코딩했습니다. 아래 처럼 오류메세지가 뜹니다.어느부분이 오류인지 알려주시면 감사하겠습니다.
-
미해결Flutter 중급 1편 - 클린 아키텍처
eventStream 중지에 대해
ViewModel을 하나만 생성하고 재활용할 때,eventController는 하나인데 listen하고 있는 화면은 계속 생성되고 메모리에 남아있어서저장을 한 번 할때마다 이벤트가 여러 곳에 날라가는 것 같습니다.해결 방법으로는 화면이 dispose 되면 eventController를 cancel 해주거나,ViewModel을 계속 생성하거나 (eventController가 계속 생성되고 전에 것들은 메모리에 남아있어서 좋은 방법은 아닌 것 같습니다.)unMounted 일 때 return; 해버리면 될 것 같습니다.
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"
v-on:click="" 질문입니다
강의는 Vue3 Composition API 장의 첫번째 수업 Composition API입니다 data 옵션 함수로 message를 만들면<button @click="message+='!'">{{ this.message }}</button>--> 정상적으로 '!'가 뒤에 추가되고 렌더링이 됨setup 함수 내에서 반응형을 안 만들어주면<h2>일반 메시지</h2><p>{{ normalMessage }}</p>button v-on:click="normalMessage +='!'">Add Message</button>normalMessage의 뒤에 !가 붙긴 하는데 재랜더링이 안되서 업데이트된 값으로 안 보임... reactiveMessage변경 버튼 눌러주면 !가 추가된 값으로 보여짐질문) data Options API로 만든 message는 정상적으로 뒤에 !가 찍히고 변환된 값이 화면에 나오는데 왜 setup() 으로 만든 normalMessage는 변환된 값으로 안 뜨나요?
-
미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
19강 @PatchMapping
선생님 안녀하세요!강의보던 도중 헷갈리는 부분이 있어서 질문남깁니다.수정을 할 때1. 수정용 엔티티를 생성2. 대상 엔티티를 조회순서인데이때 1. 수정용 엔티티를 생성 -> 받아온 새로운 데이터 엔티티2. 대상 엔티티를 조회 -> 기존에 저장되어있던 엔티티이렇게 이해해도 맞는걸까요?// PATCH @PatchMapping("/api/articles/{id}") public ResponseEntity<Article> update(@PathVariable Long id, @RequestBody ArticleForm dto){ // 1. 수정 용 엔티티 생성 Article article = dto.toEntity(); // 2. 대상 엔티티를 조회 Article target = articleRepository.findById(id).orElse(null); // 3. 잘못된 요청 처리(대상이 없거나, id가 달느 경우) if (target == null || id != article.getId()){ // 400, 잘못된 요청 응답! return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null); } // 4. 업데이트 및 정상응답(200) target.patch(article); Article updated = articleRepository.save(target); return ResponseEntity.status(HttpStatus.OK).body(updated); }
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
v-on:click= " " 내부의 this는 무엇을 가리키나요? 그리고 안에는 뭐가 들어가나요?
저번에도 비슷한 질문을 했었는데 해주신 답변이안녕하세요, "v-on:이벤트명"의 대상으로는 해당 컴포넌트의 메서드 이름이 올 수 있다고 보시면 됩니다. logText() 형태가 아니라 logText로 써주셔야 합니다 :)였습니다근데case 1)<button @click="this.message+='!'">{{ this.message }}</button>-> TypeError: Cannot read properties of nullcase 2)<button @click="message+='!'">{{ this.message }}</button>--> 정상적으로 '!'가 뒤에 추가됨case 3)<button @click="addMessage">{{ this.message }}</button>--> 정상적으로 '!'가 뒤에 추가됨case 4) <button @click="addMessage()">{{ this.message }}</button>--> 정상적으로 '!'가 뒤에 추가됨case 5)<button @click="this.addMessage">{{ this.message }}</button>--> 정상적으로 '!'가 뒤에 추가됨case 6) <button @click="this.addMessage()">{{ this.message }}</button>-> TypeError: Cannot read properties of null 예시가 길었습니다!그래서 질문입니다1) v-on:click ="" 내부에서 this.메서드() 하면 this가 null 취급을 받는데 this.메서드 하면 this가 null 취급을 안 받는 이유가 뭔가요?2) 그럼 왜 {{ this.message }} 의 this는 null 취급을 안 받나요?3) 그래서 v-on:click="" 안에는 함수 참조가 들어가는 건가요 아니면 함수 호출문이 들어가는 건가요? case3, case4를 보면 함수 참조, 함수 호출문 둘다 들어갈 수 있는데 또 case 5, case6을 보면 모르겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
7분 49초
저는 table 이 생성되었다는 로그가 찍히지 않습니다.table 생성은 DB에 가보니 잘 되어 있고요인텔리제이 설정 문제인가요? 그리고 h2 db 에 접근 할때 앞에 주소를 localhost 로 변경해주는 이유는 무엇인가요?