묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
mentions 질문
https://github.com/ZeroCho/sleact/blob/master/nest-typeorm/src/entities/ChannelChats.ts 제로초님 소스코드를 보면 channelChats 테이블에 mentions과 관련된 테이블이 없고 mentions테이블 칼럼으로는 그냥 chatId만 해줬는데 (@ManyToOne() 이런것없이) 어떻게 chanelchats과 mentions가 연결될수 있는지 궁금합니다.
-
미해결웹 게임을 만들며 배우는 React
22년3월4일 기준 강의 내용을 그대로 따라하면 정상적으로 실행됩니다.
여러분들도 포기하지말고 여기 파트 그냥 넘어가지 마시고 꼭 오류 나더라도 제로초님 강의따라서 코드따라 쳐보시고 커맨드라인으로 npx webpack 한 후에 html파일 꼭 크롬에 띄워서 확인 해보시길 바랍니다~! 저도 이걸 왜 해야 하나 처음엔 생각했지만 구동 원리를 조금은 엿볼수 있어서 좋았습니다. 꼭 꼭 해보세요~!
-
미해결윤재성의 Kotlin 기반 안드로이드 앱 개발 Part2 - 메뉴와 4대 구성요소
textView 질문
여기서 textView 가 안불러와지는건가요? 문제를 정확하게 찾아보니까 xml 에서 가져오는 것을 못하는 것 같습니다.
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
th:replace
강의 중에<div th:replace= ~~~와 <div class= ~~~(th없음) 코드가 혼재되어 있는데 th없이 단순 class만 명시한 코드도 정상 동작 하네요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
안녕하세요 질문사항입니다.
강의 잘보고 있습니다. 다름이아니라 지금 로그인접속정보 계속 유지하기 부분 보고있습니다 그런데 로그인 후 새로고침 후 page index.js 에서 useEffect 에 LOAD_MY_INFO_REQUEST -> 리덕스, saga 로넘어갈때 action.data : null 입니다. 그런데 브라우저 애플리케이션 단에서 쿠키는 확인 되었습니다. 쿠키가 있는 상태면 passport 로직에 의해서 두번쨰 로그인부터는 req.user에 첫 로그인시 select 했던 로그인정보가 새로고침후에 action .data에 담겨야하는거죠? 근데 안담기네용.... 어디를 봐야할까용... const passport = require('passport');const local = require('./local');const {User} = require('../models');module.exports = () => { passport.serializeUser((user, done) => { //done에 첫번째인자는 error 두번째 인자는 성공 //req.login 에 정보가 여기로들어감 done(null, user.id); //세션 저장 즉 서버에서 세션 connectSID랑 쿠키와 함께 저장 [{id: 1, cookie : 'clhxy'}] //그리고 쿠키에게 뿌려줌 }); //로그인을 성공하고나서 그 다음 요청부터 매번실행함 //이 부분이 라우터 실행되기 전에 매번 실행된다. 그렇다면 성능적으론 상관없을지 몰라도 // 유지보수 측면에서 이로직을 통한 분산이 가능하다. //라우터 접근 전에 deserializeUser 내부적으로 한 번더 실행함 저장되어있던 아이디를 토대로 select 해서 가지고온다. req.user 로 routes에서 접근이 가능하다 . passport.deserializeUser(async (id, done) => { try { const user = await User.findOne({ where : {id} }); //그래서 id 값을 where 절에 넣고 반환값 user를 done(null, user); //done(user) 넣어주고 이 값이 req.user에 반환된다 . }catch (e) { console.error(e); done(e); } }); local();}; const passport = require('passport');const { Strategy:LocalStrategy } = require('passport-local'); //비구조화 할당에서 : 를 하면 LocalStrategy로 변수명을 변경할 수 있다.const { User } = require('../models');const bcrypt = require('bcrypt');module.exports = () => { passport.use(new LocalStrategy({ usernameField: 'email', passwordField: 'password', }, async (email, password, done) => { //req.body 부분 done 부분 확인 필요 done은 callback부분 결과값 done을 내보낸다. routes.post(login) 쪽으로 넘어가는 값은 done() 이다 . try { // done : e 에러, info fail reason, user success o doen(에러, false-reason, user) const user = await User.findOne({ where: { email } }); if(!user) { return done(null, false, {reason: "존재하지 않는 이메일입니다.!"}); //이유 info } const result = await bcrypt.compare(password, user.password); //else if(result) { return done(null, user); } return done(null, false, {reason : "비밀번호가 일치하지 않습니다."}); //else }catch (e) { console.error(e); return done(e); //server가 error 인 경우 } }));}; 리덕스 상 diff LOAD_MY_INFO_REQUEST { type: 'LOAD_MY_INFO_REQUEST' } LOAD_MY_INFO_SUCCESS { type: 'LOAD_MY_SUCCESS', data: null }
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
Throttle 설정이 적용되지 않아요
안녕하세요! 강의 잘 듣고 있습니다. DRF 최대 호출 횟수 제한 강의를 보고 적용해보기 위해서 다음과 같이 settings.py를 수정하였는데 리퀘스트 제한이 걸리지 않습니다. 서버를 리스타트해봐도 해결이 안되는데 뭐가 문제일까요? settings.py 소스코드 일부 REST_FRAMEWORK = { 'PAGE_SIZE': 20, 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.IsAuthenticated', ], 'DEFAULT_THROTTLE_CLASSES': [ 'rest_framework.throttling.UserRateThrottle', # 'rest_framework.throttling.AnonRateThrottle', ], 'DEFAULT_THROTTLE_RATES': { 'user': '3/day', # 'anon': '3/day', },} httpie Response 메시지
-
미해결인터랙티브 개발 실무 끝장내기 [역량 강화편]
질문이용~
혹시 저 빨간색 부분은 저렇게 안에 넣으면 안되는걸까요?! 위에 같은걸 반복하는것같아서 안에 넣었는데 안되네용,, 잘 모르겠습니다!!ㅠㅠㅠㅠ
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
글자가 깨집니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. encoding error인지 CP949, EUC-KR, Utf-8 다 해봐도 글자가 계속 깨져서 나옵니다, 맥 vs code 쓰고 있습니다.
-
미해결만들면서 배우는 리액트 : 기초
안녕하세요 왜 메인카드와 타이틀은 컴포넌트가 아닌 화살표 함수를 이용하셨을까요?
궁금합니다!
-
미해결파이썬 플라스크(Flask) 기반 웹 개발 및 업무 자동화 서비스 활용
렌더템플릿안에는 경로 안써도 되나요?
자동으로 경로를 설정해주는건가요? 파일 안에 들어가있으니까 써야될것같은데..
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Handler 질문 + 11분 질문
강사님이 13분 쯤에 실행 하는 부분에서 똑같이 cmd창에 10명이 입장은되는데 클라에서 보낸 메세지를 서버가 받아서 BroadCast하는 부분이 계속 호출이 안되었었습니다. 거의 3시간동안 뭐가 문제지?? 하다가 찾은 부분이 Server > PacketHandler부분에서 C_chatHandler부분이 이렇게 ClientSession clientSession = new ClientSession(); 되어 있어서 if문에 걸려서 그냥 return 을 해버린거 같은데 인자에 받은 session을 new ClientSession()으로 하게되면 새로 "빈" 갓난아기의?? ClientSession을 다시 만들어 버리기때문에 ClientSession의 Room이 항상 비어있는 상태라 retrun 으로 끝내버리게 되어서 ServerSessionManager의 Register하는 부분에서 _onRecv를 한다음 어떤 행동을 할것인가 == _handler 부분에서 매핑해놓은 C_chatHandler가 호출 되기는 하지만 new ClientSession 때문에 if에 걸려서 바로 return 을 하게 되어서 클라에 뿌려줄 수가 없었다.... 그래서 new ClientSession을 하면 안되고 여기서 이어서 받이온 session을 ClientSession으로 캐스팅을 하고 (안에 정보가 있으니까) 이어서 사용을 해야한다. 라고 이해를 했는데 어느정도 맞는 흐름일까요..??
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
successfulAuthentication과 AuthenticationSuccessHandler
항상 좋은 강의 잘 보고 있습니다. 저는 선생님 강의를 듣기 전 혼자 시큐리티로 JWT를 발급하는 것을 공부해보며, successfulAuthentication가 아닌 AuthenticationSuccessHandler를 상속받아 구현하여, 이곳에서 JWT를 발급받게 해주었습니다. successfulAuthentication에서 발급해주는 것과 AuthenticationSuccessHandler에서 발급하여 주는것의 차이가 있을까요? 혹시 별 차이가 없다면 어떠한 방법을 더 선호하시나요?
-
미해결Vue.js 끝장내기 - 실무에 필요한 모든 것
코드 스플리팅하면 기존의 MPA 방식과 차별점이 뭘까요?!
안녕하세요! vue 막 시작하는 입문자입니다! 너무 기본적인 질문일 수도 있어서.. 미리 양해 부탁드립니다. 코드 스플리팅을 통해서 페이지 전환 시, app.js를 초기에 다 받아오는 방법이 아니라 해당 컴포넌트의 정보를 그때그때 가져온다고 하셨는데요!, 기존에 MPA 방식(?)도 페이지 전환 시 마다 서버에 해당 정보를 요청해서 받아오는것 아닌가요?!답변 부탁드립니다! 감사합니다!!!
-
미해결
d3dx12.h를 깃헙에서 설치했는데 이제 어떻게 해야죠?
인터넷에서 나온데로 깃헙 사이트로 들어가 zip 파일로 설치 후 압축 해제까지 했는데요. 이제 뭘해야 할 지 모르겠네요. 임시로 다른 폴더에 넣어두었는데, 비쥬얼 스튜디오에서 사용하려 했는데 없다고 뜨네요.
-
미해결PHP 7+ 프로그래밍
업로드 및 ckditor가 제대로 적용안되요...
강의영상처럼 코드를 작성하고 했는데 bottom.php 부분에서 ckeditor작성법이 달라 <script src="https://cdn.ckeditor.com/4.16.2/standard/ckeditor.js"></script>으로 변경해서 정상적으로 돌아가는걸 확인했습니다. 그런데 write.php에서 <div class="editor uk-align-center"> <textarea name="content"></textarea> <div id="editor"></div> </div> 여기에서 이렇게 작성을 하면 이런식으로 나타나 어떻게 하면 좋을까요... 여기에 글을 작성하면 데이터베이스에 정상적으로 데이터가 들어가는데 이미지 사진은 업로드가 되지않습니다.
-
미해결예제로 배우는 스프링부트 입문
security 로그인 관련 질문합니다.
안녕하세요. 로그인을 구현하고 크롬에서 테스트해봤는데 아래와 같은 창이 뜹니다. 이런 문구는 왜 뜨는 건가요? 해결할 수 있는 방법이 있나요? 에러는 아니지만 궁금해서 여쭤봅니다.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
npm i vue-router@버전 이걸로 설치 안되시는분들 계시면
yarn add vue-router 로 설치해보세요 혹시나 해서 글 남겨요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
모바일에서 Resources 폴더 사용 문제
이번에 새로 만드는 모바일 게임에서 만들어주신 프레임워크를 활용하려고 합니다. 그런데 기기 테스트를 해보니 로고가 나간 뒤 본 화면이 뜰 때까지 1초~2초 남짓의 시간이 걸리는 것을 발견했습니다. 원인을 계속 찾다가 Resources 폴더 안의 파일들이 게임 실행 시 일괄적으로 로딩이 되어 그렇다는 얘기를 듣고 Resources 폴더를 삭제해보니 딜레이가 사라졌습니다. 모바일에서는 Resources 폴더를 사용하면 안되는 걸까요? 아니면 딜레이를 해결할 수 있는 방법이 있을까요? 제 선에서는 딜레이가 생기는 도중 로딩 화면을 넣는 걸 생각해 봤지만 방법은 모르겠습니다. 답변 부탁드립니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
switch에 사용 가능한 변수 형식에 관한 질문입니다.
안녕하세요. switch에 관해서 공부하다 이상한점이 있어 질문 드립니다. using System; namespace MyCsharp { class Program { static void Main(string[] args) { double a = 5.3; double b = 10.5; switch(a, b) { case (> 5.0, > 10.0): int c = 15; Console.WriteLine("{0}",c); break; } } } } 제가 해당 강의에서 배우고 인터넷으로도 찾아본 바로는 switch에 사용할수 있는 변수 형식은 정수, 문자, 문자열, 열거형 변수뿐이였습니다. 그런데 해당 코드는 double 실수형 변수를 switch에 사용해도 문제없이 작동합니다. 저의 C#은 9.0버전인데 버전 차이로 인해 실수형도 switch에 사용 가능하게 바뀐것인가요? 답변 부탁드립니다.
-
해결됨만들면서 배우는 리액트 : 기초
리액트에서 addEventListner는 별로 사용하지 않나요?
onclick에 비해 addEventListner('click',eventhandler)의 이점으로 이벤트핸들러를 여러개 계속 더해줄수 있고, 세번째 인자로 버블링 캡처링 조정이 된다는 점이 있다고 들어서 무작정 저는 addEventListner가 더 좋은줄 알고 있었는데요. 강의 중에선 onClick을 많이 쓰는 것 같아 질문드립니당 리액트의 onClick은 addEventListner에 비해 나은 장점이 있나요? 혹은 addEventListner를 쓰면 안될 이유가 있나요?