묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ProcessSend 질문이 있습니다.
SendQueue에 대해서 강의 시간에 배운 락 대신 CRITICAL_SECTION을 사용한다고 했을 때 EnterCriticalSection(&lock_send_queue_); if (send_queue_.empty()) { is_register_send_.store(false); } else { RegisterSend(); } LeaveCriticalSection(&lock_send_queue_); 이런 식으로 작성할 수 있을텐데 아래와 같이 EnterCriticalSection(&lock_send_queue_); if (send_queue_.empty()) { LeaveCriticalSection(&lock_send_queue_); is_register_send_.store(false); } else { LeaveCriticalSection(&lock_send_queue_); RegisterSend(); } 이런 식으로 작성하면 동기화에 문제가 될 소지가 있을까요..? Send는 아래와 같이 작성하였습니다. bool Session::Send(SendBufferRef send_buffer) { EnterCriticalSection(&lock_send_queue_); send_queue_.push(send_buffer); LeaveCriticalSection(&lock_send_queue_); if (is_register_send_.exchange(true) == false) { RegisterSend(); } return true; } 혹시 그리고 저희가 만든 락프리 큐를 센드큐로 활용한 예제는 없는지 궁금합니다..
-
미해결[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]
플러터 강의를 올해초 출시한다고 들었던거 같은데 혹시 언제쯤 나오나요?
안녕- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 풀스택강의 잘듣고 있습니다~ 플러터 관련 강의를 올해 초 출시한다고 들었던거같은데.. 혹시 언제쯤 나오는지 알수 있을까요..?
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
게시글 좋아요 누르기 및 좋아요 취소하기 질문입니다
계속 고민하다 이렇게 질문을 남깁니다. 우선 제가 시도한 방법부터 알려드리자면 db.User.belongsToMany(db.Post, { through: 'Like'}); db.Post.belongsToMany(db.User, { through: 'Like', as: 'Liker' }); User과 Post모델 사이에 M:N관계를 정립합니다 passport.deserializeUser((id, done) => { User.findOne({ where: { id }, include: [{ model: User, attributes: ['id', 'nick'], as: 'Followers', }, { model: User, attributes: ['id', 'nick'], as: 'Followings', }, { model: User, attributes: ['id', 'nick'], as: 'Liker', }], }) .then(user => done(null, user)) .catch(err => done(err)); }); 그 다음에 세션에 로그인하면 팔로우/팔로잉 목록과 함께 좋아요 목록을 req.user에 저장합니다 res.locals.LikeIdList = req.user ? req.user.Liker.map(l => l.id) : []; page.js 에 req.user로 받은 Liker배열을 id만 따로 배열로 만들어 전역변수 LikeIdList에 넣습니다 {% if not LikeIdList.includes(twit.User.id) and twit.User.id !== user.id %} <button class="like">좋아요</button> {% elif LikeIdList.includes(twit.User.id) and twit.User.id !== user.id %} <button class="not-like">좋아요취소</button> {% endif %} 그 후 main.html에 이미지div밑에 좋아요와 좋아요 취소 버튼을 만들었습니다. router.post('/:id/like', async (req, res, next) => { try { const post = await Post.findOne({ where: { id: req.params.id } }); await post.addLiker(req.user.id); res.send('succes'); } catch (error) { console.log(error); next(error); } }) router.delete('/:id/not-like', async (req, res, next) => { try { const post = await Post.findOne({ where: { id: req.params.id } }); await post.removeLiker(req.user.id); res.send('succes'); } catch (error) { console.log(error); next(error); } }) 마지막으로 이벤트리스너를 활용하여 서버로 url을 보내고 라우터에서 처리하는 코드를 만들었습니다. 그 후 코드를 실행하고 로그인을 하고 나니 User is associated to User multiple times. To identify the correct association, you must use the 'as' keyword to specify the alias of the association you want to include. 로그인 하자마자 에러가 뜹니다. 해석해보자면 User과 User이 여러번 열결이 되니 include를 쓸 때 'as'를 써라입니다 하지만 위에 보시다시피 전 as를 확실히 썼습니다. 여기서 네트워크를 봤습니다 요청 URL: http://localhost:8001/ 요청 메서드: GET 상태 코드: 500 Internal Server Error 원격 주소: [::1]:8001 리퍼러 정책: strict-origin-when-cross-origin GET / 라우터에 에러가 발생했구나 싶어서 코드를 살펴보니 router.get('/', async (req, res, next) => { try { const posts = await Post.findAll({ include: { model: User, attributes: ['id', 'nick'], }, order: [['createdAt', 'DESC']], }); console.log(posts); res.render('main', { title: 'NodeBird', twits: posts, }); } catch (err) { console.log(err) next(err); } }); 문제가 없어 보입니다. 사실 이전까지 아무런 문제가 없는 코드라서 제 머릿속을 점점 미궁으로 빠집니다. 아마 저 include코드에서 뭔가 발생한거 같은데 제 짧은 지식으로는 아무리 봐도 문제가 없어 보입니다. 제 방식이 어디가 잘못된건지 알려주세요
-
미해결PHP 7+ 프로그래밍: 객체지향
안녕하세요. 라우터 서버 연결 질문이 있습니다.
이렇게 강의 하신 모든 코드 내용을 따라 했는데 자꾸 not found 에러가 뜨네요. 이유를 알 수 있을까요?? 따로 아파치 서버에 설정을 해야 하는게 있나요???
-
미해결스프링 핵심 원리 - 고급편
3분 10초대 관한 질문입니다
3분 10초대에서 HelloTraceV2에서는 component scan을 쓰셨지만 FieldLogTrace에서는 직접 스프링빈에 등록을 할꺼라고 하셨는데 2개를 다르게 하는 이유가 따로 있는건가요? 그리고 컴포넌트스캔을 안쓰고 굳이 직접 스프링빈을 등록하는 이유도 궁금합니다
-
미해결데이터 분석 SQL Fundamentals
한글 주석 깨짐 현상
안녕하세요? 수업 코드 파일에서 한글 주석 부분이 계속 깨지는데 해결이 안되어서 문의남깁니다. 윈도우 - 설정 들어가서 UTF-8 & Unix 로 바꾸기도 하고 DBeaver ini 파일에 한줄을 추가하기도 했는데 계속 화면이 깨져서요 혹시 해결방법이 있을까요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
아래 질문과 비슷한 내용이지만 조금 달라 질문드립니다.
아래 나르비님 질문 domain-web 의존관계 관련해서 추가 질문드립니다. (https://inf.run/3Avx) 해당 강의에서 DTO 역할을 하는 ItemSaveForm을 web 밑에 뒀는데 해당 DTO를 domain 밑으로 가져가는 것은 어떨까요? 물론 이렇게 될 때 이름은 ItemSaveDto 등이 더 적합할것 같습니다. 그렇게 생각한 이유는 1. Web -> Domain 의존은 있어도 괜찮다. 2. 기존 Item 생성후 setter를 이용하는 부분을 리펙토링 하고 싶다. (아래와 같이 생성자로 전달) //성공 로직 Item item = new Item(form);// item.setItemName(form.getItemName());// item.setPrice(form.getPrice());// item.setQuantity(form.getQuantity()); 3. REST API 서버 역할을 하는데도 DTO가 필요하다. 입니다. 그래서 이전 질문한분의 생성자에 넣는 방법 + 패키지 구조 자체까지 domain으로 이동하는 방법은 어떻게 생각하시는지 질문드립니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
user-service에서는 토큰 유효성 검사를 안하나요?
user-service에서는 토큰 유효성 검사를 안하나요? 게이트웨이에서 jwt 토큰의 유효성을 검사하기 때문에 user-service는 jwt를 발급만할뿐, 유효성 검사를 할 필요는 없나요? 물론, 서비스를 구성하는 방식에 따라 달라지겠지만 MSA 방식에서는 모든 요청은 게이트웨이를 통하는게 대부분(혹은 전부)라고 할 수 있을까요? 강의중에서 이미 발급된 토큰은 user-service가 restart되지 않으면 괜찮다고 하셨는데, 정확히 말하면 user-service는 토큰을 발급만할뿐 유효성 체크를 하지 않으니 토큰의 유효시간이 지나지만 않았다면 MS들이 재기동이 되든 말든 상관없어야 하는게 맞다고 생각해서요 추가) 같은 내용으로 다른분이 질문해주셨군요. 그 질문에 답변해주신 내용으로 이해했습니다. 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
this, static
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 1. Order에서 생성메서드 구현한 부분입니다. 보통 [접근 제어자] [리턴타입] [메서드명] (파라미터..) { ... } 이렇게 작성해왔습니다. 여기서 static 과 Order는 어떤 기능을 하는지 궁금합니다. static의 경우 이 생성메서드포함 Order도메인 내에서는 접근 가능하다는 것을 나타내는 걸까요? public static Order createOrder(Member member, Delivery delivery, OrderItem... orderItems) { 2. Order에서 비즈니스 로직(주문 취소)한 부분입니다. 여기서 this가 어디서 넘어온 것일까요? 파라미터로 넘겨준 것이 없는데 혹시 자신을 나타내는 것일까요? public void cancel() { if(delivery.getStatus() == DeliveryStatus.COMP) { throw new IllegalStateException("이미 배송완료된 상품은 취소가 불가능합니다."); } this.setStatus(OrderStatus.CANCEL); // this가 의미하는 것 for(OrderItem orderItem : orderItems) { orderItem.cancel(); }}
-
미해결운영체제 공룡책 강의
06. 프로세스간 통신의 실제: Chapter 3. Processes (Part 4) 에 그림 3.16 3.17 실습 오류
강사님 그림 3.16과 3.17 실습 중 이렇게 오류가 뜨는데 어떤게 문제 일까요?
-
미해결함수형 프로그래밍과 JavaScript ES6+
강의 내용 질문있습니다.
후반부에서 getUserById함수에서 find한 값 없을 경우를 함수 내부에서 처리를 했는데 이런 경우 순수함수라고 할 수 있나요??그리고 상황에 따라 다르겠지만 지금처럼 Promise.reject을 함수 안에서 다 만들어서 에러가 나도록 코드를 작성하는 것이 좋을까요?답변 주시면 감사하겠습니다ㅎㅎ 강의 너무 잘 보고 있습니다. 감사합니다 :)
-
미해결배달앱 클론코딩 [with React Native]
안드로이드 스튜디오 기본위치설정시 구글맵이 안보입니다.
안녕하세요. 강사님, 열심히 따라하며 학습하고 있는데요, 챕터 4의 내위치가져오기 파트에서, 안드로이드 에뮬레이터에서 제 위치를 임의로 설정하는 부분에서, 구글맵이 뜨지 않아서 설정을 하지 못하는데요, 이럴경우 어떻게 해야 하나요? 검색을 해보면, 대부분 개발하면서 어플리케이션에 구글맵 사용하는 내용만 나와서요....
-
미해결Svelte.js SPA 영화 검색 프로젝트
영상 위치 [11:21] 안내
강의 잘 듣고 있습니다.! 덕분에 스벨트를 쉽게 이해하고 있습니다. 감사합니다. 궁금한점: 11:21초에 보면 18번 행에서 '<Loader absolute>' 라고 적었는데요. (Movie.svelte 에서 선언한 Loader컴포넌트) 여기서 absolute가 적용되는 원리가 궁금합니다. 질문1) 'Loader.svelte' 컴포넌트에서 11번행 위치에 선언된 'class:absolute' 스타일이 적용되어서 html 태그의 속성처럼 사용할 수 있게되는 것인지요? 다른 질문 2) 테스트시 런타임환경에서 개발자도구에 들어갔을때 콘솔에서 간헐적으로 웹 소켓에 대한 에러가 주기적으로 (30초?1분?)발생 합니다. 제가 잘 못 코드를 작성한 경우 이런일이 발생 할 수 있나요? 질문3) 그냥 물어보는? 해결이 안되어도 괜찮습니다.! IDE 툴로 웹스톰을 사용중입니다. 예를들어 스크립트에서 선언한 변수를 스벨트내 html태의 스타일을 변수로 사용하는 경우 웹스톰에서 에러로 인식합니다.(작동에는 전혀 지장이없음.) 그러나 자꾸 눈에 거슬립니다. 혹시 방법을 아시는지요? 아래코드는 예제 부가 설명 코드) <script> export let scale</script><div style="transform: scale({scale})"> <div> 올려주신 내용 덕분에 너무나도 잘 배우고 있습니다. 다시한번 감사드립니다.
-
미해결스프링 핵심 원리 - 기본편
안녕하세요. 컨테이너와 스프링 빈 하면서 오류나는 부분 여쭤봅니다.
안녕하세요. 섹션 4. 스프링 컨테이너와 스프링 빈을 공부하면서 해당 코드에서 계속 문제가 나서 질문을 드립니다. 오류가 나는 코드는 assertThrows(NonUniqueSessionRepositoryException.class 이 부분 입니다.오류 내용은 이러합니다. 해결 방법이 있을지 궁급합니다. ㅜ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
파라미터 ...
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Order에 생성 메서드를 구현할때 파라미터에 ... 넣는 의미를 모르겠습니다. 어느 경우에 사용하나요? public static Order createOrder(Member member, Delivery delivery, OrderItem... orderItems) { }
-
미해결실전 HTML & CSS 강좌
피피티 다운이 안되요ㅠㅠ 다들 인강만 보시는건가요?
자료 다운받으면 티스토리 존재하지 않는 화면이라고 뜹니다ㅠㅠ 다들 인강만 보시는건가요? 아니면 다운 경로가 따로 있을까요?
-
미해결이펙티브 자바 완벽 공략 1부
굳이 팩토리 메소드 패턴을 쓰는 이유가 뭔가요??
우선 추천해주신대로 디자인패턴 강의를 아직 수강하지는 않았습니다. (수강 예정입니다!) 이 강의에서 팩토리 메소드 패턴을 보여주셨습니다. 물론 책에서 "팩토리 메소드 방식도 적용할 수 있다"라는 문구때문에 예시를 들어주신 것 같긴한데, 이 강의에서 보여주신 예제만 보면 SpellChecker 클래스의 클라이언트가 Dictionary 인터페이스의 구현체만 주입해줘도 충분할 것 같습니다.그런데 굳이 팩토리를 주입받고 그 팩토리로부터 Dictionary 구현체를 반환받아 자신의 Dictionary 타입의 필드에 할당하는게 조금 와닿지가 않습니다. 최대한 단순하게 예시를 들어주신거라고 이해하고는 있습니다만 궁금해서 질문드립니다. 추가) 강의 끝 부분에 객체를 생성하는 과정이 복잡할 때 사용한다고 하셨는데, 클라이언트에게 복잡한 객체를 생성하는 일을 시키지 않기 위해서...사용하는 것일수도 있겠네요.(자문자답일까요..)
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션5 - 3. 연속부분수열1
안녕하세요 강의 잘 듣고 있습니다 ^^ 이 문제에서 for문을 사용하셨는데 이전 강의들처럼 while문을 사용해도 되나요?? while(p1<test.length && p2<test.length){} 이렇게 for문 대신 while문을 돌리면서 while 안에 내용은 강의랑 유사하게 해도 될까요???
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
혹시 코드를 다운받는 곳은 있나요?
강의를 보면서 따라치는데 에러가 나왔습니다. 아직 초보이다보니 고치기가 쉽지 않아서 강사님의 코드를 보고 수정하고 싶은데 코드를 다운받을 수 있는 곳이 있나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
쿠키와 개인 정보
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 영한님의 강의를 듣고 스스로 프로젝트를 구성하면서 쿠키 관련 질문이 생겨서 남겨봅니다. 상황 Oauth2.0으로 유저에 대한 정보를 받았는데 닉네임에 관한 정보가 없어서 유저에게 추가로 데이터를 받고 싶습니다. 그러면 Oauth2.0에서 받은 정보를 저장하거나 닉네임과 함께 client가 넘겨주는 방법이 있는 데 그 중 client가 넘겨주는 방법을 생각중에 있습니다. client가 서버로 값을 넘겨줄 수 있도록 Oauth2.0에서 받은 개인 정보를 cookie에 넣으려고 하는데 개인 정보를 쿠키에 넣으면 안된다고 들어서 암호화된 값을 넣는다면 괜찮을 것이라는 생각이 들었습니다. 왜냐하면 그 쿠키의 값은 암호화되어서 다른 user가 알 수 없고 최초 닉네임을 받기 위해서만 사용되어서 쿠키를 재사용해도 쓸모가 없다고 판단됩니다. 질문 1. 다른 페이지(닉네임 입력 페이지)로 redirect하는 상황에서 이미 받았던 데이터(oauth로 받은 개인정보)를 사용하고 싶다면 데이터를 db에 저장하는 방법이 좋을까요, 아니면 암호화된 value를 지니는 쿠키를 주는 것이 좋을까요 1-1. 둘 다 가능은 할 것이라고 생각될 때 db에 저장하는 것은 서버에 자원을 사용하는 것이라고 생각되서 쿠키로 넘겨주는 방법이 괜찮다고 느껴지는 데 어떻게 생각하는지 궁금합니다. 2. jwt에서도 데이터는 공개가 되어있는데 민감한 정보를 옮기는 다른 방법이 있는 것인가요? 아니면 사용할 필요가 없어서 없는 것인가요? 스스로 프로젝트를 하다보니 강의에서 배운 것 말고도 여러 의문이 떠올라서 질문을 남겨봅니다.