묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
@nestjs/graphql , class-validator
안녕하세요 ㅎㅎㅎ 강의를 너무나도 잘듣고있습니다. 다른 코드를 보고있는데여 . graphql 를 사용해보지 않았지만 @nestjs/graphql 를 가져와서 마치.. class-validator 를 사용해서 dto 작성할때처럼 사용되어지는것을 봤습니다. 둘 비슷하다고 생각하면 될까요 ?? 아니면 완전 다른것일까요 .
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
선생님 코드 확인좀 부탁드립니다!
function solution(arr) { let answer = Number.MIN_SAFE_INTEGER; let check = Array.from({ length: arr.length }, () => false); for (let i = 0; i < arr.length; i++) { if (!check[i]) { let tmp = arr[i]; let cnt = 1; for (let j = i + 1; j < arr.length; j++) { if (tmp < arr[j]) { tmp = arr[j]; check[j] = true; cnt++; } } answer = Math.max(answer, cnt); } } return answer; } let arr = [5, 3, 7, 8, 6, 2, 9, 4]; console.log(solution(arr)); 선생님 이렇게 이미 어딘가에 포함된 배열은 check를 해서 건너뛰는 방식으로도 풀어보았는데요, 맞게끔 푼 것인지 잘 모르겠는데 확인좀 부탁드립니다!
-
미해결스프링 시큐리티
/preAuthorize 접근 시 NullPointerException
안녕하세요. @EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true) 설정 후 /preAuthorize 접근하니 아래와 같이 예외가 발생하였습니다. https://github.com/pmamoon/study 에 소스를 올렸습니다. 검토 부탁드립니다. 감사합니다. java.lang.NullPointerException: null at org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl.getReachableGrantedAuthorities(RoleHierarchyImpl.java:141) ~[spring-security-core-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.security.access.expression.SecurityExpressionRoot.getAuthoritySet(SecurityExpressionRoot.java:167) ~[spring-security-core-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.security.access.expression.SecurityExpressionRoot.hasAnyAuthorityName(SecurityExpressionRoot.java:83) ~[spring-security-core-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.security.access.expression.SecurityExpressionRoot.hasAnyRole(SecurityExpressionRoot.java:79) ~[spring-security-core-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.security.access.expression.SecurityExpressionRoot.hasRole(SecurityExpressionRoot.java:75) ~[spring-security-core-5.2.1.RELEASE.jar:5.2.1.RELEASE] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.expression.spel.support.ReflectiveMethodExecutor.execute(ReflectiveMethodExecutor.java:130) ~[spring-expression-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:139) ~[spring-expression-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:95) ~[spring-expression-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:188) ~[spring-expression-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.expression.spel.ast.OpAnd.getBooleanValue(OpAnd.java:57) ~[spring-expression-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.expression.spel.ast.OpAnd.getValueInternal(OpAnd.java:48) ~[spring-expression-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:117) ~[spring-expression-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:302) ~[spring-expression-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.security.access.expression.ExpressionUtils.evaluateAsBoolean(ExpressionUtils.java:26) ~[spring-security-core-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.security.access.expression.method.ExpressionBasedPreInvocationAdvice.before(ExpressionBasedPreInvocationAdvice.java:59) ~[spring-security-core-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.security.access.prepost.PreInvocationAuthorizationAdviceVoter.vote(PreInvocationAuthorizationAdviceVoter.java:72) ~[spring-security-core-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.security.access.prepost.PreInvocationAuthorizationAdviceVoter.vote(PreInvocationAuthorizationAdviceVoter.java:40) ~[spring-security-core-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.security.access.vote.AffirmativeBased.decide(AffirmativeBased.java:63) ~[spring-security-core-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.security.access.intercept.AbstractSecurityInterceptor.beforeInvocation(AbstractSecurityInterceptor.java:233) ~[spring-security-core-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:65) ~[spring-security-core-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:747) ~[spring-aop-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689) ~[spring-aop-5.2.1.RELEASE.jar:5.2.1.RELEASE] at io.security.corespringsecurity.aopsecurity.AopSecurityController$$EnhancerBySpringCGLIB$$b9f56cb.preAuthorize(<generated>) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888) ~[spring-webmvc-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793) ~[spring-webmvc-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) ~[spring-webmvc-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.2.1.RELEASE.jar:5.2.1.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.2.1.RELEASE.jar:5.2.1.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) ~[tomcat-embed-core-9.0.27.jar:9.0.27] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.2.1.RELEASE.jar:5.2.1.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) ~[tomcat-embed-core-9.0.27.jar:9.0.27] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.27.jar:9.0.27]
-
미해결홍정모의 따라하며 배우는 C언어
3.13 불리언형
#include <stdio.h> #include<stdbool.h> int main() { printf("%u\n", sizeof(_Bool)); // 1 byte _Bool b1; // Bool type 은 true 나 false -> 2가지만 가질 수 있음 b1 = 0; // false b1 = 1; // true // -> 정수형이기 때문에 false : 0, true : 1 printf("%d\n", b1); bool b2, b3; b2 = true; b3 = false; printf("%d %d\n", b2, b3); return 0; } 이렇게 코드 작성했는데 계속 식별자 "_Bool " 이 정의되어 있지 않다는 오류 메시지가 뜹니다 ㅠㅠ 영상에선 오류없이 잘 작동이 되던데 혹시 뭐가 문제인지 알 수 있을까요?
-
해결됨게임 프로그래머 취업 전략 가이드
영어 독해는 어떻게 공부해야하나요?
서류 전형 - 스펙에 영어에 관한 얘기가 나왔는데 그 중에서 영어 독해가 중요하다고 했는데요. 저도 옛날부터 신기술들을 영문 위주로 나오는 걸 느껴서 주위 사람들한테 영문서 읽는 걸 어떻게 해야하냐고 물어보니깐 그냥 읽으라고 합니다. 그냥 읽으면 나중에는 읽힌다고 해서 말도 안되는 말이긴 하지만 그 사람 경험이겠거니 해서 했는데 안되네요. 이 강의의 이후 교육과정을 보더라도 딱히 영어 공부하는 방법에 대한 내용이 없을 것 같아서 물어봅니다. 영어 독해는 어떻게 공부해야하나요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
ㅠㅠ주말에도 공부하고 싶어요 빨리부탁드려요 현기증나요
인프런 아이디 : wlsgus1149 인프런 이메일 : wlsgus1149@naver.com 깃헙 아이디 : wlsgus5932 깃헙 Username : wlsgus5932 ㅠㅠㅠ주말에도 공부하고 싶어요 빨리 부탁드려요 현기증나요
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
12장 몽고 DB대신 mysql로 사용해보려합니다.
안녕하세요 12장에서 데이터베이스를 몽고DB로 사용하지 않고 mysql로 사용해보려합니다. 카카오톡 연동 로그인 때문인데요(9장) schemas/chat.js room: { type: ObjectId, //ObjectId :명시적으로 ID를 선언할 때, required: true, ref: 'Room', //몽구스가 populate로Room의 Object가 아니라 Room에 대한 정보 객체로 치환 해줌 }, 혹시 이 선언을 mysql로 바꾸려면 어떻게 해야할까요?
-
미해결리눅스 쉘 스크립트 마스터
파일접근권한 강의
파일접근권한 강의에 chmod에 대한 설명이 있을줄 알았는데 없네요! 뒤에서 나오나요?
-
해결됨리액트로 나만의 블로그 만들기(MERN Stack)
build후 빈창만 뜬다면(해결법!)
환경: window 실행: putty 에서 실행, 인스턴스 t2 small 사용중 문제: 성공적으로 db까지 연결이 됬지만 아무것도 창이 띄어지지 않습니다. 보시다시피 퍼블릭IP주소를 입력했는데 빈값입니다. 혹시나 해서 dns접속도 했는데 새로고침만 화면 304만 뜹니다. 해결법: 원래는 강사님에게 질문하려다가 문제를 해결해서 혹시나 어려움이 있으신분들을 위해 해결법 작성합니다. server-app.js 들어가서 app.use(helmet)을 app.use(helmet({contentSecurityPolicy: false})로 변경 => 깃허브에 푸쉬후 cd MyBlog 가서 git pull => client/npm run build => MyBlog/npm run build:server
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
게임서버 병렬컴퓨팅
안녕하세요 좋은 강의 잘 듣고 있습니다 수업 외로 질문하나 하고 싶습니다 현재 컴퓨터공학 전공인 대학생인데 이번에 '대규모병렬컴퓨팅'이라는 강의를 수강하게 되었습니다 주제는 CUDA programming 입니다 수업에서는 그래픽스, AI 와 같은 분야에서 많이 활용된다고 해서 게임 서버에서 CUDA, OpenCL과 같은 병렬컴퓨팅 기법을 어떤 곳에 사용하는 지, 그리고 자주 사용하는 지 알고 싶습니다 그렇게 중요도가 높지 않다면 지금 당장 수강하지 않고 충분히 서버 쪽 기본기를 다지고 내년에 수강하려고 생각중이어서 질문드립니다 감사합니다 :)
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
localStorage 관련 질문입니다!
todoList를 하실 때 단어를 추가하면 localStorage에 저장하고 이를 store의 state에서 관리를 하셨는데, 그냥 store에서 관리안하고 바로 localStorage에서만 관리하면 안되는건가요?? 만약 test라는 리스트가 있을때, localStorage.setItem('test', test)이런식으로 저장하고 바로 리스트에 localStorage.getItem('test')로 가져와서 뿌려주면 되는데, 굳이 store에서 fetchTestList를 만들어서 test리스트를 관리하는 이유가 있을까요?? (이런 경우 store에서 관리를 안해도 되는지, 다시말해서 다 localStorage에서 관리를 하면 안되는지..) 질문 이해를 하셨을지 모르겠네요ㅠㅠ
-
해결됨홍정모의 따라하며 배우는 C언어
my_strcat 구현에 대해서 질문이 있습니다.
void my_strcat(char* str1, char* str2) { if (sizeof(str1) - strlen(str1) > strlen(str2)) { for (int i = 0; i < strlen(str2); ++i) *(str1 + strlen(str1) + i) = *(str2 + i); } } 이렇게 하고 puts()를 해보면 첫 글자만 덧붙여지길래 디버깅을 해보니 계속 str[13]에 null 이 찍혀있는 것을 확인했습니다. 그래서 도대체 틀린게 무엇인지 오랜시간 고민을 하다가 void my_strcat(char* str1, char* str2) { int number = strlen(str1); if (sizeof(str1) - number > strlen(str2)) { for (int i = 0; i < strlen(str2); ++i) *(str1 + number + i) = *(str2 + i); } } 이렇게 strlen(str1)을 number로 바꿔보니 제대로 작동하는 것을 확인할 수 있었습니다. 그 이유가 무엇인지 정말 궁금합니다.
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
models.py에서 서버단에서 확인한다는 의미와 create.html관련 질문 드리겠습니다.
models.py에서 모델을 설계할때 전 강의서부터, 어떤 필드들은 foms.py에서 메타클래스로 관리를 하고 어떤 필드들은 서버단에서 관리를 한다고 하시는데... 잘 와닿지 않아서요..ㅜㅜ 그 이유와 목적을 여쭤볼 수 있을까요..? 2. 그리고 create.html에서 히든인풋을 만들어 놓는 이유도 여쭤볼 수 있을까요??? <input type="hidden" name="article_pk" value=""> 저 부분인데 설명하시기를 "히든이라는 타입을 가진 인풋을 만들면 나중에 article_pk, 현재 article의 pk가 무엇인가 를 나중에 value값을 통해서 넘겨줄거고, 그거를 서버에서 받아서 comment를 만들때 완성할겁니다." 라고 하셨고, 추후에 article/detail.html에서 with article=target_article %} 을 통해 create.html안에서 변수를 쓸수 있게 된다고 하셨습니다. 그리고 value = {{ article.pk }} 를 해주셔서 "숨겨서 보내는 article.pk라는 밸류에 article.pk를 담아서 서버로 보낸다"라고 하셨는데 무슨말인지 전혀 모르겠네요... 숨겨서 보내는 건 어떤 의미가 있고, 왜 이렇게 하는지 설명 부탁드려도 될까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘
선생님 10:15 구간 질문이 있습니다
이니셜 라이저에서 노드 데이터 초기화 해줄때 Node() : _prev(nullptr), _next(nullptr), _data(T()) 에서 _data에 T()를 넣어 초기화 하는데 이렇게 초기화 하니 _data가 0으로 초기화 되더라고요 근데 어떻게 이게 가능 한지 모르겠습니다 각자료형 예를들어 int()의 생성자가 호출되었다고 가정한다 해도 생성자는 반환형이 없어 0을 반환하지 못할텐데 이게 가능한 이유가 어떻게 되나요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
GetType의 개념이 안잡혀요..
GetFields로 Monster의 필드를 가져왔는데 여기서 GetType이 굳이 필요한지 궁금합니다.아니면 GetType이 Monster의 필드를 가져오는 GetField의수단인지 정확히 GetType과 Type의 개념이 잘 안잡히네요....
-
미해결면접과 취업을 부르는 '퍼블리셔 개인 포트폴리오 홈페이지' 제작
선생님 안녕하세요! 포트폴리오 관련 부탁드립니다~
안녕하세요 선생님! 선생님 수업 열심히 잘 듣고있습니다 다름이 아니라 현재 포트폴리오가 80프로 정도는 완성 되었는데요 제가 지금 만들고있는게 제대로 되고있는지 판단이 안 서더라구요ㅠㅠㅠㅠ 전문가의 조언을 구할 방법이 선생님께 여쭤보는 방법뿐이더라구요 ㅠㅠㅠ 바쁘시겠지만 혹시 포트폴리오 피드백을 부탁드려도될까요? 혹시 피드백 가능하시면, 포트폴리오는 이메일로 보내드리는게 좋을까요??
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
dotenv는 그냥 개발할때만 쓰는건가요?
환경변수를 사용하는 이유는 여러 민감한 정보들을 숨기기 위함인데 dotenv를 사용해서 .env파일을 생성하면 나중에 배포용 서버를 aws같은 서버에 올릴 때는 .env 파일을 빼고 aws 인스턴스에 직접 환경변수를 설정해주는건가요? 아니면 배포할때도 .env파일을 같이 올리나요??
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
변수명에 $을 붙이는 이유가 무엇인가요?
선생님 안녕하세요 강의 듣기 전에 책을 사서 한번 훑어봤는데요 변수명에 $을 붙이는 이유가 무엇인가요? 그리구 $가 붙고 안붙고 차이가 있나요? 예제 보면 어떤건 붙고 안붙고 하더라구요
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
함수를 호출할때 배열형식 인자를 참조가 아닌 값 형식으로 전달하고자 한다면 어떻게 해야할까요?
static void WantValue(int[] scores) { // 생략 } static void Main(string[] args) { int[] scores = new int[5] { 1, 2, 3, 4, 5}; WantValue(scores); } 위의 내용에서 WantValue 함수를 호출하면 참조가 전달되는 것으로 알고 있는데요. 근데 만약 참조가 아닌 값 형식으로 전달하려고 한다면 어떤식으로 해야하는지 궁금합니다.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
GET .../members error
이전에 비슷한 문제를 겪은 글이 있었는데 해결되지 않아서 글을 작성하게 되었습니다. InviteChannelModal 컴포넌트에서 보내는 GET 요청 const { revalidate: revalidateMembers } = useSWR( userData ? `/api/workspaces/${workspace}/channels/${channel}/members` : null, fetcher, ); 위 코드의 실행되는 결과로 다음과 같은 에러가 발생합니다. const { workspace, channel } = useParams(); InviteChannelModal 컴포넌트에서 콘솔에 workspace와 channel을 찍어보니 channel이 undefined 값으로 나오는데 useParams를 사용하면 현재 URL에서 라우터에서 지정한 콜론 뒤의 키에 해당하는 값을 반환하는 것으로 알고 있습니다. 로그인 후 "http://localhost:3090/workspace/sleact/channel/일반" 주소로 이동하기에 channel 값이 일반으로 출력되기를 예상합니다만.. Workspace layouts 에서 라우터 설정을 했음에도 매칭되는 channel 값을 받아오지 못하기에 원인을 알 수 없어 여쭤봅니다. <Switch> <Route path="/workspace/:workspace/channel/:channel" component={Channel} /> <Route path="/workspace/:workspace/dm/:id" component={DirectMessage} /> </Switch>