묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
음...passport를 사용하는 이유...?
일단 제목만 보고 상당히 "어...?"하셨겠지만, 정말 궁금했던 것 중에 하나입니다. 일단 저는 nodejs교과서를 책으로 읽고, express로 토이프로젝트를 2번 정도 진행을 해본 경험이 있으며, 그 중 한번만 jwt를 이용하여 auth를 구현하였습니다.(passport 없이) [제가 구현한 방식은]: ID,PW를 받아서 PW를 bcrypt로 암호화하여서 DB에 넣고, 후에 로그인 요청이 오면 ID,PW가 맞는지 확인한 후, 맞으면 jwt 토큰을 쿠키 형식으로 부여. 후에 요청하면 token을 verify하여 회원인지 확인. 이었습니다. 개인적으로 토이프로젝트를 제 개인 서버에 올려 24시간 가동되게 하는 것을 선호해서, 트래픽도 없지만 굳이 세션으로 무리를 주고 싶지 않았고, 또한, 굳이 세션이 필요한 서비스가 아니여서 jwt만으로 하였습니다. nodejs 교과서에서는 세션과 쿠키 처리 등 복잡한 작업을 쉽게 처리해줄 검증된 모듈로 passport를 소개하였는데, 만약에 위와 같은 정도의 작업만을 하게되는 경우, passport를 쓰는 것의 이점이 있나요? 제가 passport의 장점을 크게 느끼지 못하고 있는 것이, session을 사용하지 않으면 굳이 passport를 사용해야 하나 라는 생각이 들어서 질문드립니다. 아 그리고, 저 정도의 기능을 구현한다고 하면 passport를 사용하는 것보다 직접 코드를 짜는것이 더 짧아서 passport를 사용하는 것의 장점이 더욱더 궁금하였습니다... session을 이용하지 않는, passport-local의 경우이겠네요.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
w로 나눠 주는건 그냥 규칙인 건가요?
좌표가 (x,y,z,w)가 있다고 했을 때 나중에 다음 단계로 넘어가게 될 때, 즉 rasterizer 단계로 넘어가게 될 때 (x/w, y/w, z/w, w/w) 이런식으로 다 w값으로 나눠주고 있다고 하셨는데 w값으로 나눠주는 건 그냥 규칙인 건가요? 변환행렬 시간에 z값이 깊이 값이 되는 건 행렬에서 배웠는데 w로 나눠주는건 생소한 부분인거 같아서요.
-
해결됨스프링 핵심 원리 - 기본편
SOLID관련 질문 드립니다
질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]SOLID 원칙 중에서 SRP(단일 책임 원칙)이 하나의 책임만 주고 변경에 대해 다른 객체들에게 영향을 미치지 않는다라고 이해를 했습니다. 그리고 ISP(인터페이스 분리 원칙)는 클라이언트가 의존을 하지 않도록 중간에 인터페이스를 두어서 분리를 시킨다라고 이해를 했습니다. 그런데 이 두개가 책임을 나눈다라는 같은 문제에 대해 제시하는 해결책이라고 생각이 드는데 구현 시에 어느 원칙을 준수하는게 더 우선시 되는 건가요?
-
미해결업무가 100배 빨라지는 엑셀 데이터 활용과 분석 노하우
파워쿼리_필드명변경
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요?파워쿼리 업무에 잘 이용하고 있습니다. 그런데 문의 드립니다. 테이블 범위내에 필드명이 변경되는 경우 새로고침을 하면 로드가 되지않아서요즉, 쿼리의 원본인 테이블의 필드명이 바뀌는 경우 쿼리가 실행이 안되나요 그리고 쿼리 편집기에서 이름을 변경하는 경우도요그리고 질문드립니다. 원본데이터는 1,2,3, 이렇게 연속하는 순번입니다. 그런데 로드되는 시트내에함수를 이용하여 row()-7이렇게설정하였습니다. 이 경우 새로고침하면 함수가 없어져서요그래서 쿼리편집기에서사용자 지정열을 추가하여 row 함수를 이용하려고 하는데 잘 되지 않습니다. 200개 이상 되는 데이터 인데요예를 들어 거래처 별로 나누다 보면 중간에 있는 거래처가 그 시트내에서는 무조건 1로 시작하는 순번을 줄려고 합니다. 이 경우 해결 방법이 있을 까요?!
-
미해결자바스크립트 어나더레벨_temp
사운드가 작게들려요
이번 강의 사운드가 작게 들려요 전부터 점점 작게 들리는데 체크좀 해주셨으면 좋겠어요
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
4장 5장 수업에서의 질문
안녕하세요 맛비님 제가 수업 들으면서 공부하던 도중 궁금한 점이 생겼습니다 4장 5장에서 PS와 PL 영역을 사용하는 모습을 보여주십니다 여기서 궁금한 점이 1. FPGA에 있는 PS 영역을 사용하기 위해서는 반드시 Vivado의 바이티스를 통해야만 하는 건가요? 예를 들어 우리가 .v 파일안에 약속된 명령어?? 이런 것을 넣어서 generate bitstream 하는 방식으로는 FPGA의 PS 영역을 사용할 수는 없는 건가요? 1-1) 질문을 하면서 떠오른 생각인데, 하드웨어를 SW적으로 조작하기 위해 탑재하는 것을 펌웨어라고 알고 있습니다 Vivado의 바이티스는 보드에 맞는 펌웨어를 자동적으로 만들어주는 그런 역할인건가요??? 2. PS 영역을 사용하기 위해서는 반드시 IP Integrator안의 block diagram 기능을 이용해야 하는 것인가요? 3. 하드웨어를 만들 때 시즌 1에서는 .v 파일에 verilog 만으로도 만들었던 것 같은데 4장 5장에서는 주로 block diagram을 이용해서 만드시는 것 같습니다. .v 파일을 통해 verilog로 기술하는 경우와 block diagram을 쓰는 경우가 어떻게 차이가 있는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build 실패
./gradlew build 를 해야하는데 ./gradlew 만 입력하여 BUILD FAILED 1 actionable task: 1 executed 라고 나오는데 어떻게 해야 하나요 ??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequestParam 어노테이션이 required=false인 경우, 쿼리파라미터 이름만 있고 값이 없는 경우
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. Q1. 예를 들어 @RequestParam(required=false) Integer age 로 매개변수를 선언한 경우, 요청시 쿼리파라미터 정보 중 age라는 이름의 데이터는 있지만 값이 없으면, (?age=) username과 같이 빈문자가 들어올 것이라고 생각하였지만, null이 들어왔습니다. 이를 통해 쿼리파라미터의 값을 넘길 때 이름만 있고 값이 없는 경우 String으로 받으면 빈문자가 들어오고, 그외의 타입으로 받으면 null이 들어오는 것이 맞는지 궁금합니다. Q2. 또한 @RequestParam(required=false) int age 로 매개변수를 선언한 경우, 요청시 age라는 이름의 데이터 자체가 없다면 설명해주신 것 처럼 null이 들어가는데, int형 변수에 null을 넣을 수는 없으므로 이는 서버측 오류인 500대 오류라는것을 확인하였습니다. 그런데 동일 상황에서 age라는 이름의 쿼리파라미터만 있고 값이 없는 경우(?age=), Q1과 같이 null이 넘어가고 이 null값은 int형 변수에 대입이 안되므로, 이 또한500대 오류가 날 것 같았는데 400대 오류가 나왔습니다. 왜 400대 오류가 나는지를 잘 모르겠습니다. 항상 좋은 강의 및 답변 감사합니다!!
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
seo를 위한 google search console 질문이 있습니다.
안녕하세요 제로초님 리액트 노드 버드 강의를 통해 배운 내용을 통해 응용하여 개인 프로젝트를 진행해서 알려주신 배포 방법으로 배포까지 진행하였습니다. seo 최적화를 위해 이것저것 알아보다가 google search console을 알게 되었는데 혹시 제로초님께서 사용해보셨을까 해서 질문을 작성하게 되었습니다. 제 사이트를 등록하려고 2번 방법인 meta 태그를 통해 소유권을 확인하려고 _app.tsx에서 next의 Head를 이용해서 그 안에 주어진 meta 태그를 추가하였습니다. 하지만 아래와 같이 계속 실패가 나와서 혹시 방법을 아시나요? ㅠㅠ 제가 의심가는 부분은 next의 Head를 이용해 meta태그를 추가하면 실제 페이지 개발자 도구에서는 html의 head 태그가 아닌 body태그 안에 script NEXT_DATA라는 부분 안에 meta 태그가 들어있어서 그런건가 싶긴 합니다 ㅠ
-
미해결쉬우면서 강력한 유니티(Unity) 에디터 프로그래밍
영상속 코드 누락 문의
영상 속 코드 중, Targets.Add(so, props); 하기 전에 단순히 serializedOjbect.FindProperty 만 해주고 해당 리턴 값을 List 에 넣지 않아, EditorWindow에 출력이 되지 않는 문제가 있는것 같은데 맞나요??
-
미해결하울의 안드로이드 인스타그램 클론 만들기
화면전환시 색깔이 안나오고 흰바탕입니다
코드는 제대로 입력되어있습니다 무엇을 더 건드려야할까요
-
미해결스프링 핵심 원리 - 기본편
웹 스코프 강의에 대해서
웹 스코프 이전 코드들은 test를 통해서 구현했는데 웹 스코프는 main에서 바로 구현한 이유가 따로 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
서비스 계층에 트랜잭션 추가 하는 이유
서비스 계층에 @Transactional 을 추가하셨는데 이유가 궁금하고 그 역할이 궁금합니다! Test클래스의 메서드 위에 붙인거랑은 어떤차이가 있는건가요??
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
리덕스 실제 구현시 에러발생
<../reducers/index.js> [const initialState = { user: { isLoggedIn: false, user: null, signUpData: {}, loginData: {}, }, post: { mainPosts: [], }, }; export const loginAction = (data) => { return { type: 'LOG_IN', data, }; }; export const logoutAction = (data) => { return { type: 'LOG_OUT', }; }; //action creator 함수 -> 데이터값을 액션하는 함수 //액션 자체는 객체라서 값을 수정못하니 모든케이스마다 객체를 만들어줘야하니 함수로 만들어서 //그때 그때 만드는 것으로한다!! // const CHANGE_NICKNAME = (data) => { // return { // type: 'CHANGE_NICKNAME', // data, // }; // }; // CHANGE_NICKNAME('boogicho'); // store.dispatch(changeNickname('mighty tak')); //이전상태와 액션을 실행했을 떄, 다음상태 두가지를 다 실행하는 함수! const rootReducer = (state = initialState, action) => { switch (action.type) { case 'LOG_IN': return { ...state, user: { ...state.user, isLoggedIn: true, user: action.data, }, }; case 'LOG_OUT': return { ...state, user: { ...state.user, isLoggedIN: false, user: null, }, }; } }; export default rootReducer; <..store/configureStore.js> import { createWrapper } from 'next-redux-wrapper'; import { createStore } from 'redux'; import reducer from '../reducers'; const configureStore = () => { const store = createStore(reducer); return store; }; const wrapper = createWrapper(configureStore, { debug: process.env.NODE_ENV === 'development', }); export default wrapper; <터미널 에러 표시> ❯ npm run dev > react-nodebird-front@1.0.0 dev > next Browserslist: caniuse-lite is outdated. Please run: npx browserslist@latest --update-db ready - started server on http://localhost:3000 error - ./store/configureStore.js Attempted import error: 'createWrapper' is not exported from 'next-redux-wrapper'. 처음엔 단순히 리덕스버전 문제인줄 알앗는데, 구글에서도 검색해도 잘 나오지 않고, 문제 이해가 어려워서 질문올립니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
index.html
궁금한게 localhost:8080에 들어가면 왜 index.html화면이 나오는건가요
-
미해결홍정모의 따라하며 배우는 C언어
12분 45초 가량부분 질문드립니다.
일괄적으로 \\을 추가하거나 코드에서 일괄적으로 \\을 삭제하는 것은 어떻게 하는것 인가요?1
-
미해결
getMapping을 제대로 했는데 다른 주소로 이동되는 경우는 어떤 경우인가요?
안녕하세요 제목과 같이, getMapping을 통해서 html 파일로 이동되도록 잘 설정한 것 같은데 만든 홈페이지에서 클릭을 하면 다른 곳으로 이동됩니다... 예를 들면 회원 정보 보기를 눌렀는데 로그인 페이지로 이동합니다. 수동으로 회원정보보기 주소를 입력해도 바로 로그인 페이지가 뜹니다;;ㅜ 404 에러가 뜨는것도 아니고... 이건 어떤 케이스일까요? 감사합니다...
-
미해결면접과 취업을 부르는 '퍼블리셔 개인 포트폴리오 홈페이지' 제작
placehold.it 이미지가 안나와요
(사진)
-
미해결홍정모의 따라하며 배우는 C언어
01:09 에서 비밀번호 string으로 응용
본 강의 1분 쯤에 비밀번호 프로그램을 보여주신 것을 봤습니다. 비밀번호를 337로 하셨는데 저는 비밀번호가 int가 아닌 string으로 하고 싶어서 비밀번호를 "asd"로 만들어봤습니다. 근데 아쉽게도 asd를 입력해도 무한 루프로 돌아갑니다. 뭐가 잘못된 건지 오래 고민해봤는데 해결이 안되네요. 새삼 말씀드립니다만 좋은 강의 감사합니다. ------------------------------------------------------ #include <stdio.h> int main() { const char pass[100] = "asd"; char code[100]; while (pass != code) { printf("Enter secret code : "); scanf("%s", code); } printf("Good!"); return 0; }
-
미해결스프링 핵심 원리 - 기본편
contextLoads에서 에러가 발생합니다
AllTest를 실행시키면 contextLoads에서 다음과 같은 에러가 발생합니다 에러의 내용은 memoryMemberRepository와 getMemberRepository / rateDiscountPolicy와 getDiscountPolicy 의 빈 충돌입니다. AutoConfig의 ComponentScan에 excludeFilters를 제대로 작성을 했습니다. MemoryMemberRepository 클래스와 RateDiscountPolicy 클래스에 @Primary 애너테이션을 붙여주면 AllTest가 모두 통과가 되는데 영한님께서는 @Primary를 붙이지 않고서도 통과가 됬는데 제건 어디서 꼬여버린걸까요... 소스코드가 필요하시다면 보내드리겠습니다. 추가 질문입니다. 1. contextLoads 이외의 우리가 작성한 테스트 케이스에서는 스프링 컨테이너의 설정 정보를 AutoConfig, AppConfig 중 하나만 넘겨줬는데 이럴 경우(테스트를 실행한 경우) 스프링 컨테이너의 설정 정보로 등록되지 않은 클래스도 (excludeFilters 정의 안해준 default 상황일 경우) 스프링의 빈으로 등록이 되는건가요?