묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring Boot JWT Tutorial
SecurityConfig에서 질문이 있습니다!
UsernamePasswordAuthenticationFilter 전에 JwtFilter을 넣어주고, corsFilter도 UsernamePasswordAuthenticationFilter에 넣어주는데 , 이 둘(JwtFilter, corsFilter)의 순서는 상관 없나요?
-
미해결Axure RP 9,10 - 서비스 기획자를 위한 최적의 프로토타이핑 툴
노션 활용 추가 질의
안녕하세요. 스타트업에서 일하면서 틀을 좀 잡아보고 있는데 많은 도움이 되는 챕터네요! :) 영상을 보면 노션을 이용해서 문서를 정리하고 디스크립션도 이 노션에 담는다고 하셨는데요. US외에 어떤 내용들까지 노션으로 관리하는지 궁금합니다. 와이어프레임 외에 프로세스/플로우는 액슈어로 관리하실 것 같은데, 예를 들면 기존에 디스크립션 작성할 때 유효성/중복 체크라던지, 각 피쳐 별 예외처리 정책들도 노션으로 정리하시는지 궁금합니다 액슈어와 노션으로 ppt나 워드 등 을 대부분 대체할 수 있다면 소통하기 편리하겠네요
-
미해결스프링 핵심 원리 - 기본편
스프링 내부의 컨테이너(?)
강의내용을 되짚어 보다가 문득 궁금증이 생겨 질문드립니다. 스프링 컨테이너를 직접 만들지 않아도 빈 객체들을 주입 받을 수 있는데, 스프링 내부에 컨테이너가 있는 걸까요? 내부에 컨테이너가 있는게 맞다면 어떤 종류의 컨테이너이며, 어떤 라이프 사이클을 가지고 동작하는 건가요? 공식 문서에도 컨테이너를 만들고 사용하는 것에대해서만 설명하고 내부에 컨테이너가 있다는 말은 찾지 못했는데, 이런 내용은 어떻게 확인 할 수 있을까요? 알려주신 것 같이 컨테이너(Config)를 직접 만들어 쓰는 경우가 많나요? 주로 어떤 상황에서 많이 쓰이나요? 감사합니다!
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
쿠키 관련 질문
안녕하세요. 현재 토이 프로젝트로 프론트/백엔드 따로 하여 프로젝트 진행중입니다. 저는 리엑트로 프론트하고 백엔드분은 자바 스프링으로 하고 있구요. 지금 쿠키를 받는 부분을 하고 있는데 이상한 부분이 있어 질문 드립니다. Network 탭에서 분명 로그인시마다 응답으로 헤더에 쿠키가 포함되어 오는것은 확인을 하였습니다. 그러나, Application 탭의 Cookies에 쿠키가 없더라고요. 원래 Application 탭의 Cookies에 쿠키가 저장되고 삭제하더라도 로그인마다 받아와야하는것이 정상이 아닌가요? 백엔드에서는 잘 가고있다고하는데 이것은 문제가 아닌지 궁금하여 여쭤봅니다. 백엔드에서 뭔가 설정을 잘못하여 그런게 아닐까 싶어서요.
-
미해결무작정 따라하며 원리를 깨우치는 웹 해킹 : WebGoat 편
버퍼수트 URL 변환 궁금한점입니다.
강의시간 : 6:23 내용중 버프 스위트 기능에 URL ALL CHARACTER과 URL KEY CHARACTER 기능의 차이가 궁금합니다.
-
미해결유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발
소행성의 HP UI 위치가 리셋 됩니다
강의 따라서 똑같이 코드를 넣었는데 이상하게 소행성 프리펩에서 UI 위치 잡아 둔게 적용이 안되고 생성만 되면 UI의 위치가 (0,0,0) 이렇게 됩니다 현재는 오리진 좌표를 얻는 부분에다가 임의로 Vector3()를 더해주는 걸로 해결 했는데 왜 이러는지 도대체 이해가 안됩니다
-
미해결Spring Boot JWT Tutorial
JwtFilter의 doFilter 질문 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. JwtFilter의 doFilter 질문 있습니다. doFilter에서 SercurityContext에 검증된 authentication을 넣는데, 매번 같은 유저가 요청을 하면, 같은 authentication을 SecurityContext에 계속해서 넣어주나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Accept vs Content-Type
안녕하십니까 강사님 강의를 듣던 도중에 미디어 타입 조건 매핑에서 Accept와 Content-Type이 헷갈려서 질문드립니다. (Http 강의를 듣고 정리한 것도 보고 왔습니다) Accept는 클라이언트가 선호하는 표현을 요청하는 것으로 클라이언트 입장에서 응답을 받을 때, Accept헤더에 있는 데이터 타입이 오지 않으면 내가 말한 데이터가 아니잖아라고 거절을 하는 것이고, Content-Type은 해당 헤더에 있는 데이터가 오지 않았을 경우 서버 입장에서 내가 처리할 수 있는 데이터가 아닌데? 라고 거절을 하는 건가요?? Accept가 요청 때만 사용한다고 알고있어서 헷갈리게 되어 질문드립니다 감사합니다
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
프러스텀에서 사용하는 행렬에 대해서
안녕하세요. 행렬에 관해서 궁금해서 질문 남깁니다. 선생님께서는 카메라와, 투영행렬 역행렬 그리고, 곱으로 행렬을 구하셨자나요 구글링 일부 블로그에서는 프러스텀 컬링 절두체를 만들 때는 뷰행렬에다가 투영행렬을 곱하는 것으로 설명되어 있는데, 선생님께서 하신거랑은 다른 개념인건가요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
질문은 아니고 이런 방식도 있음을 알려드립니다.
제 코드 입니다. 선생님께서 하신 방식은 제가 C++강의에서 배웠었는데 파이썬에서는 애초에 그냥 input을 전부 string 으로 받은 뒤 형변환을 하는 방식으로 처리하였습니다. N = int(input()) res=[] arr = input().split() def digit_sum(x): total=int(0) for i in range(len(x)): total+=int(x[i]) return total for i in arr: res.append(digit_sum(i)) curmax=-1 for i in range(len(res)): if curmax <=res[i]: curmax = res[i] Key=0 for key,value in enumerate(res): if curmax == value: Key=key break print(arr[Key])
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
안녕하세요 질문있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 잘 듣고 있습니다. 강의를 듣다가 궁금한 점이 한가지 생겼는데 def coroutine2(x): print('>>> coroutine stated:{}'.format(x)) y = yield x print('>>> coroutine received y:{}'.format(y)) z = yield x+y print('>>> coroutine received z:{}'.format(z)) cr3=coroutine2(30) print(next(cr3)) print(cr3.send(120)) 위 code는 선생님이 작성하신 code에서 숫자만 바꾼것입니다. 제가 잘 이해가 안가는건 위 code를 실행하였을때 출력이 >>> coroutine stated:30 30 >>> coroutine received y:120 150 이렇게 되잖아요? 그런데 아래처럼 print(next(cr3)) 를 추가하여 실행하면 def coroutine2(x): print('>>> coroutine stated:{}'.format(x)) y = yield x print('>>> coroutine received y:{}'.format(y)) z = yield x+y print('>>> coroutine received z:{}'.format(z)) cr3=coroutine2(30) print(next(cr3)) print(cr3.send(120)) print(next(cr3)) >>> coroutine stated:30 30 >>> coroutine received y:120 150 >>> coroutine received z:None Traceback (most recent call last): File "c:\python-ex\py.py", line 12, in <module> print(next(cr3)) StopIteration 이렇게 출력이 됩니다 그런데 전 빨간색 줄이 잘 이해가 안가요 ㅠㅠ z는 이미 150으로 값이 정해지지 않았나요? 그런데 왜 None으로 출력되는건가요
-
미해결유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발
보스의 HP 바를 초기화 두번 시켜주는 이유
안녕하세요 보스의 HP바의 스케일을 왜 Init()과 Start()에서 각 각 총 두번 초기화를 시켜주는 건가요? GameManager.cs에서 보스가 생성 되는 과정에서 보면 Instantiate를 하고, 그 다음에 Init()을 호출 하는데 보스가 생성 되자 마자(Instantiate()) BossScript의 Start()가 호출 될 것이고 곧이어 Init()이 호출이 되는데 어째서 두번 초기화 시켜주는건지 궁금합니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
서버에서의 Send
안녕하세요 강사님 항상 신속하고 정확한 답변에 다시한번 감사의 말씀드립니다. 다름이 아니라 여태 작성한 코드를 이해하기 위해 읽어보던중, 서버에서 클라로 데이터를 보내 Hello server! i am 10 과같은 정보들이 뜨는 과정을 이해하려 했습니다. 보면 Server program에서 GameRoom을 static 으로 받아서 안에 있는 코드가 실행된거 같은데 맞나요? 매번 강의 들으면서 코드를 이해하려고 노력하고 있습니다. 일단 기초가 너무 없어서 흐름이라도 알아야 나중에 뭐라도 할수 있을것 같아서요. 볼때마다 각각 클래스마다 조직적으로 깔끔하게 분리되어 아름답게 동작하는 느낌이 들지만, 읽고 이해하려고 보면 정말 머리가 아프고 어렵네요... ㅠㅠㅠ
-
미해결윤재성의 Java 기반 Android 9.0(pie) App 개발 심화 2단계
문의 드립니다.
AVD를 추가 한게 Android 7.1.1 인데 설명에서는 안드로이드 7 이하의 버전에서 개발자가 발생시킨 쓰레드에서 화면에 관련된 작업을 하면 오류가 발생한다고 하셨습니다7이하의 버전이라는게 7.0 까지의 버전을 말씀 하시는겁니까? 그렇다면 7.11에서 화면에서 튕기는건 왜 그런건지요? 다른 질문을 드립니다.안드로이드 앱을 개발한 후 마켓에 올려서 앱의 어떤 화면에서 링크를 타고 다른 화면으로 갈때 앱의 도메인이나 IP를 전달하는게 가능한가요?앱이라는게 도메인이 있는게 아닌거 같고 IP는 가지고 있는건가요? 바쁘시겠지만 답변 부탁 드립니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
제가 윈도우 환경인데
강사님은 mac 환경이시면 제가 강의듣다가 명령어 타이핑 내용이 안맞는 경우가 많을 까요?
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
실행이 안되요
그동안 잘 연습하고 있었는뎅 갑자기 실행 시키면 2021-09-28 23:40:44.477 INFO 3339 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2021-09-28 23:40:44.483 INFO 3339 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. 실행이 안됩니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
GameScene에서 인스턴스화 할때 애니메이션 재생 에러 관련 질문 드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. c++ 서버 수업 듣고 재밌어서 그만 유니티까지 들으러 와버렸습니다ㅎㅎ.. 질문드릴 게 생겼는데, 이틀동안 여러가지 검색어로도 찾아보고, 혼자서 머리도 굴려봤는데, 답을 찾기가 쉽지 않아서 질문드립니다. Prefabs/knight를 선택해서 드래그로 하이라키로 미리 올려놓은 프리펩은 아무런 문제 없이 애니메이션이 재생되지만, 코드 상에서 Spawn시킨 프리펩들은 인게임 화면에서는 애니메이션이 재생되지 않는 문제입니다. 이게 혹시 초기화할 때 애니메이션 클립이 제대로 세팅되지 않은건가 하고 디버그로 클립을 확인해봐도 제대로 등록이 되어있고, Animator 상에서도 ScanRange에 들어가면 RUN 클립이 제대로 재생되는 것 까지 확인했는데, 정작 인게임 화면에서 애니메이션이 재생되는 게 아니라 아무것도 안 하고 있는 상태로 그냥 speed*_deltaTime 속도로 순간이동 해옵니다.(ATTACK 아무 모션 없이 HP만 감소시킴) 한편, 런타임 중에 그냥 프리펩을 드래그해서 생성시킨 오브젝트 역시 애니메이션이 먹통이 되버립니다. 이 부분에서 저는 '하이라키에 미리 올려둔 프리펩을 제외한 모든 프리펩들, 즉 런타임에 생성한 오브젝트들은 싹 다 먹통이다' 라는 뇌피셜로 검색을 더 해봐서 결국 임시 해결책을 찾긴 했습니다. 바로 animator 컴포넌트를 체크 해제후 다시 체크하는 방법이 유효했습니다. 이 방법대로 Spawn으로 생성시킨 프리펩에 대해서, 플레이어를 락온 하지 않은 상황에서 Animator 컴포넌트를 직접 손으로 체크해제 했다가 다시 체크를 하면 애니메이션이 정상적으로 작동합니다. (락온한 상황에서는 Animator 컴포넌트를 조작해봤자 정상적으로 애니메이션이 작동하지 않습니다) 이를 자동화 하기 위해서 Spawn함수에서 _monsters.Add(go) 이후 go.GetComponent<Animator>를 anim으로 해주고, anim.enabled = false; anim.enabled = true; 로 추가해주니 잘 작동하는데, 이 방법이 깔끔하다고 생각되지는 않네요...ㅠ 이게 해결 방법이야 어찌됐든 억지로 찾아냈지만, 원인 파악이 도저히 안 됩니다. 코드 상의 문제였다면 하이라키에 미리 올려놓은 프리펩만 정상적으로 작동하는 것이 기이하기 때문에 코드 상의 문제는 아닌 것 같고 아무리 봐도 유니티 엔진 자체 초기화 과정 문제이거나 유니티 애니메이션 시스템에 대한 이해부족이 원인인 것 같긴 한데, 이거야 제 뇌피셜일 뿐이고 혹시 비슷한 상황이 있으셨는지 질문드립니다!
-
미해결캐글 설문조사로 데이터 분석 입문하기
10/13일편 2:52초
show_countplot_by_qno("Q13") >>> 이 위의 친구가 자꾸 시각화가 안되서 나오는데 영상처럼 무엇이 문젤까요 지금까지 그대로 잘 따라왔는데요!! 위의 데프 함수 만든거에서는 그래프로 잘나오더라고요 show_multiple_choice_bar_plot_by_qno("Q1")
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기
처음 페이지 npm run dev했을떄 로그인 된상태고 로그아웃안되시는분들
다음과 같은 에러가 뜨면서 안되시는분들은 몽고DB에서 자신의 IP를 허용해 주면 제대로 작동합니다. https://developer0809.tistory.com/82 해당 사이트에서 알려준대로 IP를 추가해서 다음과 같이 Network Access 에 자신의 IP나 모든 IP허용 을 해주니 제대로 작동합니다
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
user 세션 serialize 문제 질문
[Nest] 25160 - 2021. 09. 28. 오후 10:32:34 ERROR [ExceptionsHandler] Failed to serialize user into session 강의보는 도중에 나왔던 동일한 에러가 나와서 동일한 방법으로, auth.service.ts 파일에 validateUser() 에서 select에 'id'를 추가 하였습니다. 그렇게 했는데도 동일한 에러가 발생해서 user 값을 제대로 받아오는지 확인 하기 위해 console.log를 통해 확인해본 결과 정상적으로 select 한 값들(id, email, password, nickname)을 받아온 것을 확인하였습니다. 그래서 serializer가 제대로 등록되지 않았나 확인하기 위해github에 있는 sleact를 다운받아auth 폴더의< auth.module.ts, auth.service.ts, local-auth.guard.ts, localserializer.ts, local.strategy.ts>app.modules.tsapp.service.tsmain.ts 등을 확인하고 serialize가 들어 가는 내용을 검색해 보았으나 모두 동일하게 등록되어 있음을 확인하였습니다. 이 상황에서 제가 어느 부분을 중점적으로 살펴 보아야 할지 감이 오지 않아 여쭤보게되었습니다.에러 문구 : [Nest] 25160 - 2021. 09. 28. 오후 10:32:34 ERROR [ExceptionsHandler] Failed to serialize user into session Error: Failed to serialize user into session at pass (D:\Slack\nest\dist\main.js:14933:19) at Authenticator.serializeUser (D:\Slack\nest\dist\main.js:14951:5) at SessionManager.logIn (D:\Slack\nest\dist\main.js:15239:8) at IncomingMessage.req.login.req.logIn (D:\Slack\nest\node_modules\passport\lib\http\request.js:50:33) at D:\Slack\nest\dist\main.js:13559:64 at new Promise (<anonymous>) at LocalAuthGuard.<anonymous> (D:\Slack\nest\dist\main.js:13559:23) at Generator.next (<anonymous>) at D:\Slack\nest\dist\main.js:13516:71 at new Promise (<anonymous>)[Nest] 25160 - 2021. 09. 28. 오후 10:32:34 ERROR [ExceptionsHandler] Failed to serialize user into session Error: Failed to serialize user into session at pass (D:\Slack\nest\dist\main.js:14933:19) at Authenticator.serializeUser (D:\Slack\nest\dist\main.js:14951:5) at SessionManager.logIn (D:\Slack\nest\dist\main.js:15239:8) at IncomingMessage.req.login.req.logIn (D:\Slack\nest\node_modules\passport\lib\http\request.js:50:33) at D:\Slack\nest\dist\main.js:13559:64 at new Promise (<anonymous>) at LocalAuthGuard.<anonymous> (D:\Slack\nest\dist\main.js:13559:23) at Generator.next (<anonymous>) at D:\Slack\nest\dist\main.js:13516:71 at new Promise (<anonymous>) -----------D:\Slack\nest\dist\main.js:14933:19)------- Authenticator.prototype.serializeUser = function(fn, req, done) { if (typeof fn === 'function') { return this._serializers.push(fn); } // private implementation that traverses the chain of serializers, attempting // to serialize a user var user = fn; // For backwards compatibility if (typeof req === 'function') { done = req; req = undefined; } var stack = this._serializers; (function pass(i, err, obj) { // serializers use 'pass' as an error to skip processing if ('pass' === err) { err = undefined; } // an error or serialized object was obtained, done if (err || obj || obj === 0) { return done(err, obj); } var layer = stack[i]; if (!layer) { return done(new Error('Failed to serialize user into session')); } function serialized(e, o) { pass(i + 1, e, o); } try { var arity = layer.length; if (arity == 3) { layer(req, user, serialized); } else { layer(user, serialized); } } catch(e) { return done(e); } })(0); }; ---------------------auth.service.ts ------------------- import { Injectable } from "../../node_modules/@nestjs/common"; import bcryptjs from '../../node_modules/bcryptjs' import { Repository } from "typeorm"; import { Users } from "src/entities/Users"; import { InjectRepository } from "@nestjs/typeorm"; @Injectable() export class AuthService { constructor( @InjectRepository (Users) private usersRepository: Repository<Users>, ) {} async validateUser(email: string, password: string){ const user = await this.usersRepository.findOne({ where: {email}, select:['id', 'email', 'password', 'nickname'], }) console.log(user); if(!user){ return null; } const result = await bcryptjs.compare(password, user.password); console.log(result); if(result){ const {password, ...userWithoutPassword} = user; return userWithoutPassword; } return null; } }