묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
aws에 배포상황, cors 옵션에 credenitals: true, axios에 axios.defaults.withCredentials = true 했는데...왜 프론트에 쿠키가 등록이 안될까요...무한삽질중입니다..
안녕하세요. 쿠키문제로 무한 삽질중입니다. 로컬에서 할 때는 쿠키가 제대로 (localhost:3000), (localhost:3065)에도 등록이 되는걸 확인했습니다. 현재 aws에 배포한 상황입니다.. 백엔드에는 쿠키가 등록이 되는데 프론트에 쿠키가 등록이 안되는 상황입니다. 무슨설정을 잘못하거나 확인해봐야할지 너무 난감하네요. 구글링해도 나오는건 1. 백엔드 프론트 도메인이 달라서 등록이 안된다. ✅ 프론트: broccolidb.com / 백엔드: api.broccolidb.com으로 서브도메인으로 되어있어서 문제라고 생각안됩니다. 2. credentials를 true로 안해줘서 안된다. ✅ axios에도 cors에도 관련 설정을 등록했습니다. 로컬에서도 확인했는데. 설정들 빼가면서도 확인해봤는데 오타문제는 아니라고 생각합니다.......ㅠ 단서는 아직 찾는중인데.. 좀 더 타겟팅할 관련정보를 얻을 수 있을까해서요~ ✅ 현재코드: 관련부분만 붙여봤습니다. // app.js const sessionOpt = { resave: false, saveUninitialized: false, secret: process.env.SECRET, cookie: { httpOnly: true, secure: false, //domain: process.env.NODE_ENV === 'production' && '.broccolidb.com' }, store: new RedisStore({ client: redisClient }) } const corsOptions = { origin: ['http://localhost:3000', 'https://broccolidb.com'], credentials: true } app.use(cors(corsOptions)) if (process.env.NODE_ENV === 'production') { sessionOpt.proxy = true sessionOpt.cookie.secure = true app.use(helmet()) app.use(hpp()) } app.use(session(sessionOpt)) // saga index.js axios.defaults.baseURL = `${process.env.API_URL}` axios.defaults.withCredentials = true // response header 부분 // 프론트 쿠키저장소 //백엔드 쿠키저장소 현재 계속 구글링 중이긴 한데 단서가 혹시 될만한게 있을까해서 문의드립니다. 쿠키 세션 옵션 관련해서는 위에 적은것들 이외에 테스트를 더 해볼건데, 일단 프론트쪽 문제인지 백쪽 문제인지도 확인이 안되서요. ㅠ 그리고 관련한 에러로그는 현재 없습니다ㅠ
-
미해결처음 배우는 리액트 네이티브
sign out 버튼 기능 구현 과정에서 진행이 되지 않습니다.
반복하여 찾아봐도 잘 모르겠습니다. 도와주세요. ㅠㅠ sign out 버튼 RED로 진행하는 부분까지는 잘 되었습니다. 그 이후에 구글 Auth signOut 기능을 이용하여 signout 기능 구현을 따라 했으나 아래와 같은 에러가 발생됩니다. 저 오류에서 가리키고 있는 부분은 다음과 같습니다. export const getCurrentUser = () => { const {uid, displayName, email, photoURL} = Auth.currentUser; return {uid, name: displayName, email, photo: photoURL}; }; signout쪽 코드는 다음과 같습니다. export const signout = async () => { await Auth.signOut(); return {}; }; 지금까지의 풀 코드가 있는 깃허브 주소는 다음과 같습니다. https://github.com/Schidshow/kbjChatApp 감사합니다!!
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
강의 잘 들었습니다!!
안녕하세요. 처음으로 글써봅니다. ㅎㅎ 백엔드 개발자를 준비하는 취준생으로서 로드맵 따라서 입문-핵심-mvc 까지 완주했습니다! 정말 많은 도움이 되었습니다. 감사합니다. ( 할인받으려고 계정하나 더 만든건 비밀 .. ) 이제 배운걸 복습겸 혼자 좀 끄적이고 싶어서 강의 마지막에 했던 부분과 DB 연동부분을 추가해서 로그인까지 만들어보고 싶은데 ... 패키지 설계에서 살짝 막혀버렸습니다.. 크게 domain Controller Repository Service 이런식으로 분류를 하고나면 domain패키지에서 만약 member가 있다면 member저장 및 처리와 관련memberRepository나 member관련 로직을 처리해주는 memberService가 있다고 가정했을때 member와 관련된 것들을 같은 패키지에 둬야 맞는건지 아니면 Service Repository 패키지에 따로 분류를 해줘야하는건지 와 같은 패키지 설계부분에서 조언을 좀 얻을 수 있을까요 .. ? ( 연관된것 끼리 묶는것 ? vs 계층 별로 묶는것?)
-
미해결윤재성의 만들면서 배우는 Spring MVC 5
세션 빈 주입 질문
빈을 주입하고 세션영역에 저장할 수 있는 방법은 없나요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
오답 질문입니다
이분검색 문제인데요 import java.util.*; class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int input1 = sc.nextInt(); int input2 = sc.nextInt(); int[] array = new int[input1]; for(int i = 0 ; i <input1; i++) { array[i] = sc.nextInt(); } int tmp = 0; for(int i = 0; i < input1-1; i++) { for(int j = 0 ; j < input1-2; j++) { if(array[j] > array[j+1]) { tmp = array[j+1]; array[j+1] = array[j]; array[j] = tmp; } } } int lt = 0; int rt = input1-1; int mid = (int)((lt+rt)/2); while(true) { if(array[mid] == input2) { System.out.print(mid+1); break; } if( array[mid] > input2) { rt = mid-1; mid = (int)((lt+rt)/2); } if( array[mid] < input2) { lt = mid+1; mid = (int)((lt+rt)/2); } } sc.close(); } } 짝수인경우 홀수인경우 입력해보았는데요 왜 오답이 뜨는지 모르겠습니다 ㅠㅠ;; 오답이 떴을때 원인 찾는 노하우라도 있나요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Interlocked를 사용하지 않고 원자성을 만드는 방법
C#에서 어떻게 할 수 있을까요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
range가 list가 맞나요?
for구문(2-1)에서 수업을 받는중인데요. 선생님께서 sum은 내부적으로 리스트를 받는다고 하신 후 range함수는 리스트를 생성해준다고 하셨습니다. 하지만 print(type(range(10)))을 해보면 <class 'range'>라고 나오고 sum함수에 대해 검색해보니 리스트 말고도 튜플 딕셔너리와 같은 iterable한 자료형을 받는다고 했습니다. 구글링을 해보며 봤는데 어떤 곳은 선생님처럼 range는 리스트를 만든다고 하지만 다른 곳에서는 range는 리스트를 만드는게 아닌 list 유사의 객체를 만드는 것이라고 합니다. 생활코딩이라는 곳에서도 range가 range(10)이 10개의 리스트를 만드는건 아니지만 10번 반복할 수 있게 해준다고 하고 있고요... 제가 이해력이 부족해서... 너무 헷갈려서 질문드립니다.
-
미해결파이어베이스(Firebase)를 이용한 웹+안드로이드 메모 어플리케이션 만들기
Failed to get instance details for instance: memo-816e9-default-rtdb. See firebase-debug.log for more details.
npm install firebase-tools -g firebase login firebase init 위 명령어를 순서대로 입력 후 database를 선택하면, 아래와 같은 로그가 표시되며 넘어가지 않습니다. === Database Setup i database: ensuring required API firebasedatabase.googleapis.com is enabled... + database: required API firebasedatabase.googleapis.com is enabled Error: Failed to get instance details for instance: memo-816e9-default-rtdb. See firebase-debug.log for more details. 로그를 확인하라는데 바탕화면에 만든 프로젝트 폴더에 없고요. OS는 Windows10이고 해당 오류 메세지로 구글 검색을 해도 해결법을 찾지 못했습니다. database 규칙이 .read, .write 모두 false인 것과 관련 있을까요? 영상처럼 auth != null로 바꾸거나 auth로 해도 parse error가 나서 게시할 수 없습니다.
-
미해결머신러닝 엔지니어 실무
강의 슬라이드 공유 부탁드립니다.
완강 후 강의 수강평 남겼습니다. 강의 슬라이드 공유 부탁드리겠습니다. (haenara.shin@gmail.com) 감사합니다~
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
시작부터 에러가 나네용
아래 캡처와 같은 에러가 발생하면서 설치가 안되네요
-
미해결CSS Flex와 Grid 제대로 익히기
제가 잘 이해하고 있는게 맞다면
flex #7 강의 3:13 초 장면은 늘어난게 아닌 줄어들고 있는거죠 ?? flex-grow 기본 값이 0이고, flex-shrink는 1이니까 지금 확면 꽉차게 늘어난 것처럼 보여도 사실은 content가 길어서 쭉 늘어진 걸 shrink가 줄이고 있는 거구여 ?
-
미해결웹 게임을 만들며 배우는 React
<td>를 <table>이 자식으로 가지지 못하는 문제
아래의 문제가 나와 검색해보니 <tbody></tbody>로 묶어주어야한다고 하여 묶어 주었으나 계속 같은 문제가 발생되어 여쭤봅니다...
-
미해결웹 게임을 만들며 배우는 React
import 사용 불가 문제
웹팩 설정을 똑같이 한 것 같은데 require문은 사용이 가능한데 import 사용시 이와 같은 에러가 나옵니다. webpack의 babel 옵션을 검색해보았으나 import to require 옵션을 찾기 힘들어 여기에 여쭤봅니다. const path = require("path"); const RefreshWebpackPlugin = require("@pmmmwh/react-refresh-webpack-plugin"); module.exports = { name: "tictactoe-dev", mode: "development", // publish option -> production devtool: "eval", resolve: { extensions: [".js", ".jsx"], }, entry: { app: ["./client"], // already webpack knows about wordchain.jsx file }, // Input module: { rules: [ { test: /\.jsx?/, loader: "babel-loader", options: { // Adding all browsers can affect performance, so adding only the browsers you want is important. // It also allows you to apply different options in detail // plugins are setting for preset presets: [ [ "@babel/preset-env", { targets: { browsers: ["> 5% in KR", "last 2 chrome versions"], // browserslists }, debug: true, }, ], "@babel/preset-react", ], plugins: [ "@babel/plugin-proposal-class-properties", "react-refresh/babel", ], }, }, ], }, // extension, if you need to add more options // add debug in all module components // plugins: [new webpack.LoaderOptionsPlugin({ debug: true })], plugins: [new RefreshWebpackPlugin()], output: { path: path.join(__dirname, "dist"), filename: "app.js", publicPath: "/dist/", }, // Output devServer: { publicPath: "/dist/", hot: true, }, };
-
미해결UX/UI 시작하기 : Figma 입문 (Inflearn Original)
섹션2 플랜 선택 질문이요!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 무제한으로 버전을 관리한다는 게 어떤 걸 의미하는 건지 잘 모르겠어요 ㅠㅠ 30일 이상으로 무료로 버전을 관리한다는 게 ui 프로젝트를 진행해서 디자인된 게 30일 지나면 없어진다는 건가요..? 예시로 설명해 주실 수 있을까요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
Round에 대한 부정확함이 +0.5 라는게 이해가 되지 않습니다.
0.5를 더해서 round를 구해서 오류를 막으라는 말씀 같은데, 그럼 예를 들어서 3.4 의 반올림 결과는 3이어야 하는데, 0.5를 더하고 구하면 4가 되는데 이런 경우들은 어떻게 해야하나요? 정확하려면 오름값을 구하고, 오름값고 차이를 통해서 대치해준다거나 이런 노가다 방법 뿐인걸까요...?...
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
passport serializeUser 질문 드립니다.
강의 들으면서 프론트엔드도 직접 만들어가면서 실습 중인데요 로그인 부분에서 에러가 발생하는데 도무지 해결이 안되서 질문드립니다. Error: Failed to serialize user into session [0] at pass (C:\Users\L-108\Desktop\web\react-node\node_modules\passport\lib\authenticator.js:281:19) [0] at Authenticator.serializeUser (C:\Users\L-108\Desktop\web\react-node\node_modules\passport\lib\authenticator.js:299:5) [0] at SessionManager.logIn (C:\Users\L-108\Desktop\web\react-node\node_modules\passport\lib\sessionmanager.js:14:8) [0] at IncomingMessage.req.login.req.logIn (C:\Users\L-108\Desktop\web\react-node\server\node_modules\passport\lib\http\request.js:50:33) [0] at C:\Users\L-108\Desktop\web\react-node\server\routes\auth.js:42:20 [0] at Strategy.strategy.success (C:\Users\L-108\Desktop\web\react-node\server\node_modules\passport\lib\middleware\authenticate.js:219:18) [0] at verified (C:\Users\L-108\Desktop\web\react-node\server\node_modules\passport-local\lib\strategy.js:83:10) [0] at Strategy._verify (C:\Users\L-108\Desktop\web\react-node\server\passport\localStrategy.js:17:21) 이런 에러가 발생합니다. serializeUser가 호출이 안되나 싶어서 console.log를 찍어가며 확인을 했는데 req.login 안에서 찍은 console.log는 문제없이 출력되고 serializeUser에서 찍은 console.log는 출력이 되지 않습니다. serializeUser가 호출이 제대로 안되고 있는건가요? 어떤 부분을 살펴봐야 할까요 답변 부탁드립니다.ㅠㅠ //auth.js router.post('/login', isNotLoggedIn, (req, res, next) =>{ passport.authenticate('local', (authError, user, info) => { if(authError){ console.error(authError); return next(authError); } if(!user){ return res.redirect(`/?loginError=${info.message}`); } return req.login(user, (loginError) => { console.log("check"); if(loginError){ console.error(loginError); return next(loginError); } // 세션 쿠키를 브라우저로 보내준다. return res.redirect('/'); }); })(req, res, next); }); //passport/index.js const passport = require('passport'); const local = require('./localStrategy'); const kakao = require('./kakaoStrategy'); const User = require('../models/user'); module.exports = () =>{ passport.serializeUser((user, done) => { console.log("1234"); done(null, user.id); }); passport.deserializeUser((id, done) =>{ User.findOne({ where: { id }}) .then(user => done((null, user.id))) .catch(err => done(err)); }) local(); kakao(); }; 주세요.
-
미해결웹 게임을 만들며 배우는 자바스크립트
iput 입력글자 제한에러...
안녕하세요 선생님 강의 잘듣고 있습니다 다른 기능은 잘되는데 input창에 처음으로 답을 입력할때 4글자 까지 입력이 되는데 2번째 입력할때 입력 글자가 3글자로 제한되는데.. 뭐가 문제일 까요 ㅠㅠㅠ 아 , 그리고 또 궁금한점이 함수 숫자뽑기() 에서 처음에는 조건이 var i = 0; i < 4; i += 1 로 쓰이는데 틀리면 조건이 var i = 0; i < 3; i += 1 으로 쓰는건 왜인가요?? // 숫자야구 var 바디 = document.body; var 숫자후보; var 숫자배열; function 숫자뽑기() { 숫자후보 = [1, 2, 3, 4, 5, 6, 7, 8, 9]; 숫자배열 = []; for (var i = 0; i < 4; i += 1) { var 뽑은것 = 숫자후보.splice(Math.floor(Math.random() * (9 - i)), 1)[0]; 숫자배열.push(뽑은것); } } // 문제 시작 숫자뽑기(); console.log(숫자배열); // 게임 답 확인용 var 결과 = document.createElement("h3"); 바디.append(결과); var 폼 = document.createElement('form'); document.body.append(폼); var 입력창 = document.createElement('input'); 폼.append(입력창); 입력창.maxLength = 4; // input 입력 4글자로 제한 var 버튼 = document.createElement('button'); 버튼.textContent = "입력"; 버튼.style.marginLeft = '3px'; 폼.append(버튼); var 결과창 = document.createElement('div'); document.body.append(결과창); var 틀린횟수 = 0; 폼.addEventListener('submit', function 콜백함수(e) { e.preventDefault(); var 답 = 입력창.value; if (답 === 숫자배열.join("")) { // 답이 맞으면 결과.textContent = "홈런"; 입력창.value = " "; 입력창.focus(); // 새로운 문제 내기 숫자뽑기(); 틀린횟수 = 0; } else { // 답이 틀리면 var 답배열 = 답.split(" "); var 스트라이크 = 0; var 볼 = 0; 틀린횟수 += 1; if (틀린횟수 > 4) { // 4번 넘게 틀리면 결과.textContent = '4번 넘게 틀려서 실패! 답은' + 숫자배열.join(',') + '였습니다.'; 입력창.value = " "; 입력창.focus(); // 새로운 문제 내기 숫자뽑기(); 틀린횟수 = 0; } else { // 4번 미만으로 틀리면 console.log('답이 틀리면', 답배열); // 에러 확인용 for (var i = 0; i < 3; i += 1) { if (Number(답배열[i]) === 숫자배열[i]) { // 같은 자리인지 확인 스트라이크 += 1; console.log('같은자리?'); // 에러 확인용 } else if (숫자배열.indexOf(Number(답배열[i])) > -1) { //같은 자리는 아니지만, 숫자가 겹치는지 확인 && 여기서 -1 은 indexOf에서 없는값을 의미 볼 += 1; console.log('겹치는 숫자?'); // 에러 확인용 } } 결과.textContent = 스트라이크 + "스트라이크" + 볼 + "볼 입니다"; 입력창.value = " "; 입력창.focus(); } } });
-
미해결실전 리액트 프로그래밍
react IE polyfill 관련해서 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 d있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의들으면서 관련 프로젝트를 진행중입니다. IE 9 / IE 10 환경에서도 react가 흰화면이 아닌 정상적으로 나오도록 react-app-polyfill 모듈을 사용하여 polyfill 적용을 해보고있는데, IE11은까지는 확인을 했는데, IE 9 / IE 10 환경에서도 정상적으로 작동하도록 하려면 어떻게해야하는지 궁금합니다. IE 11 에 나오도록 작업한 방법은 index.js 파일에 import 'react-app-polyfill/ie11'; import 'react-app-polyfill/stable'; 를 추가 하였고, package.json 의 브라우저 리스트에 "e 11" 을 추가하면서 확인을 하였는데, IE 9 환경에서도 나오도록 확인하기위해 import 'react-app-polyfill/ie9'; import 'react-app-polyfill/stable'; 이렇게 index.js 파일에 추가하고 package.json 의 브라우저 리스트에 "e 9" 을 추가하면서 확인을 하였는데, 구문 에러가떠서 어떻게 해야할지 모르겠습니다. 모듈 캐시폴더도 지워보고 해봤는데, 어떤방법이 더있을까요? 구문 에러는 SCRIPT : 1002 구문에러가 뜹니다. (IE 9 / IE 10 환경에서)
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
44강 WYSIWYG 에디터에서 blockquote가 안먹어서요
강의상에서도 시범 보이실때 한번도 blockquote는 누르지 않으시더라구요. 그래서 원래 그런건지 확인이 되질 않아서 문의드립니다 원래 그런거라면 이 에디터에 욕심은 없어서 괜찮은데.. 강의 내용을 공부하고 꼼꼼히 기록해두는거라서 제가 코드 실수한건 아닐까 해서 계속 봤는데 blockquote만 반응을 안합니다. !
-
미해결홍정모의 따라하며 배우는 C언어
함수부분
함수 부분을 바로 넘어가셨는데 저는 그 함수부분이 잘 이해가 안되어서요.. 죄송하시만 저 함수가 어떻게 작동하는지 설명해주실 수 있나요? 또 while()괄호안에 getchar()인경우와 c = getchar()인 경우는 차이점이 무엇인가요??