묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
안녕하세요... 또 에러가 너무많네요..
내 로그인정보 매번불러오기 를 보면서 loadUser 액션을 추가할때 그대로 한것 같은데 에러가 뜨네요... 저는 loadUser로 안하고 loadMyinfo 로 했는데, 그전까지 로그인도 되고 글도 써졌는데 액션 추가하고나니 저렇게 뜨고 로그인이 REQUEST 까지만 가고 무한로딩입니다.. 리덕스 툴에서 보니 성공이나 실패로 넘어가질 않아요 cors도 back의 app.js에서 app.use( cors({ origin: "http://localhost:3060", credentials: true, }) ); front의 saga index에서 axios.defaults.baseURL = "http://localhost:3065"; axios.defaults.withCredentials = true; 이렇게 하고, user saga는 function loadMyInfoAPI() { return axios.get("/user"); } function* loadMyInfo(action) { try { const result = yield call(loadMyInfoAPI, action.data); yield put({ type: LOAD_MY_INFO_SUCCESS, data: result.data, }); } catch (err) { yield put({ type: LOAD_MY_INFO_FAILURE, error: err.response.data, }); } } function* watchMyInfo() { yield takeLatest(LOAD_MY_INFO_REQUEST, loadMyInfo); } export default function* userSaga() { yield all([ fork(watchMyInfo), fork(watchLogin), fork(watchLogout), fork(watchSignup), fork(watchFollow), fork(watchUnfollow), ]); } 이렇게하고 user reducer에서는 export const initialState = { loadMyInfoLoading: false, loadMyInfoDone: false, loadMyInfoError: null, loginLoading: false, ....... 생략} export const LOAD_MY_INFO_REQUEST = "LOAD_MY_INFO_REQUEST"; export const LOAD_MY_INFO_SUCCESS = "LOAD_MY_INFO_SUCCESS"; export const LOAD_MY_INFO_FAILURE = "LOAD_MY_INFO_FAILURE"; const user = (state = initialState, action) => produce(state, (draft) => { switch (action.type) { case LOG_IN_REQUEST: draft.loginLoading = true; draft.loginError = null; draft.loginDone = false; break; ..........생략 case LOAD_MY_INFO_REQUEST: draft.loadMyInfoLoading = true; draft.loadMyInfoDone = false; draft.loadMyInfoError = null; break; case LOAD_MY_INFO_SUCCESS: draft.loadMyInfoLoading = false; draft.user = action.data; draft.loadMyInfoDone = true; break; case LOAD_MY_INFO_FAILURE: draft.loadMyInfoLoading = false; draft.loadMyInfoError = action.error; break; pages 폴더안에있는 index에는 useEffect(() => { dispatch({ type: LOAD_MY_INFO_REQUEST, }); dispatch({ type: LOAD_POSTS_REQUEST, }); }, []); 이렇게 했는데.. 왜 안되는걸까요..? 긴글읽어주셔서 감사합니다,,,
-
미해결자바스크립트 중고급: 엔진 핵심
질문 있습니다.
제가 이해한 2가지를 적어보면 아래와 같습니다. 1. 함수가 호출될 때 실행 컨텍스트가 만들어진다. 2. 실행 컨텍스트가 만들어질 때 외부 렉시컬 환경 참조에 설정되는 것은 해당 실행 컨텍스트를 만들고(호출하고) 있는 실행 컨텍스트의 환경 레코드를 설정한다. 예를들어 아래 샘플코드에서는 add(200)이 호출될때 만들어지는 실행 컨텍스트의 외부 렉시컬 환경 참조에는 outer0() 실행 컨텍스트의 환경 레코드{value0:300, add:function, get:function}가 설정 된다. 최종적으로 add(200)의 실행 컨텍스트는 아래와 같다 이게 맞는 설명 인가요? outer0() 실행 컨텍스트 : { 렉시컬 환경 컴포넌트 : { 환경 레코드 : { value0 : 300, add : function, get : function } } } add(200) 실행 컨텍스트 : { 렉시컬 환경 컴포넌트 : { 환경 레코드 : { param : 200 }, 외부 렉시컬 환경 참조 : { // outer0 실행컨텍스트의 환경 레코드를 참조 value0 : 300, add : function, get : function } } } function outer0() { var value0 = 300; function add(param) { value0 += param; }; var get = function() { return value0; } add(200); console.log(get()); }; outer0();
-
해결됨코로나맵 개발자와 함께하는 지도서비스 만들기 1
모바일웹에서 현재위치 미작동
안녕하세요. localhost:3000에서는 강의내용 테스트 완료했습니다. 우분투서버에 올리고, 안드로이드에서 '크롬'이나 '네이버'앱으로 접속해봤습니다. 내위치 정보가 진행되지 않네요. 아이폰 시뮬레이터로도 해보니 내위치정보가 작동하지 않습니다. 모바일 이용시 내위치정보 관련해서 추가로 검토해야할 것이 있는지요?
-
미해결MATLAB으로 시작하는 프로그래밍
plotyy 함수 질문
다음과 같은 오류가 발생합니다... 다음 사용 중 오류가 발생함: plot 벡터들의 길이는 같아야 합니다. 오류 발생: plotyy>fevalfun (385번 라인) h = feval(func,x,y); 오류 발생: plotyy (78번 라인) [h1,ax(1)] = fevalfun(fun1,ax(1),x1,y1,caxspecified); 오류 발생: textread_test (24번 라인) plotyy(1:3500, temper,1:3500, psu) 아래와 같이 코드를 작성하였습니다. temper = flipud(temper); psu = flipud(psu); plotyy(1:3500, temper,1:3500, psu) legend('temper', 'psu') 원인이 뭔지 알고싶어요
-
미해결쉽고 빠르게 끝내는 GO언어 프로그래밍 핵심 기초 입문 과정
Powershell 창이 떠요.
명령프롬포트 속성( 레거시 콘솔 사용으로)바꿨는데... new terminal 터미널을 열면 Powershell 창이 떠요.
-
미해결캐글 Advanced 머신러닝 실전 박치기
def함수에서 이해가 가지 않는 부분이 있습니다.
해당 함수에서 is_amt가 true이면 필터링 조건 넣는 곳이 이해가 가질 않습니다. is_amt가 true이면 if is_amt=True: cond_amt=df[column]<500000 이라고 생각했는데 적어주신 조건은 어떻게 되는건지 이해가 가질 않습니다.
-
해결됨홍정모의 따라하며 배우는 C++
#define의 효력이 미치는 범위와 관련해서 질문 있습니다.
#define LIKE_APPLE #include "different_source.h" 이 순서대로 코드를 작성하니 "Apple"이 출력되었습니다. 그러면 강의에서 "Orange"가 출력된 것은 LIKE_APPLE의 정의가 헤더파일을 포함시키는 부분 뒤에 있기 때문이 아닌가요? 이 경우에는 LIKE_APPLE의 정의가 그 아래에 포함된 헤더파일에 영향을 미친다고 할 수 있지 않나요? (윈도우, mingw64, vs code 사용중입니다)
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
제대로 작동이 안되요
윈도우고 아톰도 깔았고, 파이썬도 깔았는데 print 쓰면 빨간색으로 autocomplete-python traceback output: 이렇게 오류가 뜹니다. 인터넷 찾아보니 파이썬을 못찾는다고해서 다시깔고해봐도 안되네요 cmd에서 python 치면 파이썬 인터넷창이 켜집니다. idle 은 정상 작동되구요, 어떻게 해야 하나요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
20x 상태코드에 대한 질문입니다.
이런 수업이 다른 곳에 없다보니 질문이 많게 되네요 ;; 저같은 경우 게시글 추가 API, 회원가입API 같은 경우 post method로 클라이언트에서 서버로 요청하고 서버는 그 요청에 성공적으로 응답할 때 200 상태코드와 함께 post_id나 user_id를 리턴하도록 하였습니다. 만약 헤더내의 location을 이용한다면 user_id, post_id까지 사용하지 않게 될테니 204로 리턴해도 되겠네요. 그런데 201 스펙처럼 클라에서 요청한 데이터값을 서버가 다시 리턴하는 이유가 있을까요? 왜냐하면 게시글추가라던지, 회원가입이라던지 어차피 클라이언트에서 보낸 데이터라 클라이언트에서 쿠키에 저장하면 될 것 같거든요. 불필요하게 서버에서 클라이언트에게 '클라이언트가 보낸 데이터'를 보낼 필요가 있는가에 대한 의문이 들어서 질문하게 되었습니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
질문있습니다.
질문1. zip을 만드는것 까지는 성공했는데 그 뒤 sudo unzip awscliv2.zip 명령어를 치면 저런 오류가 납니다. sudo를 빼거나 낮은 권한으로 해도 저 오류가 계속뜨네요.. 저 오류에 대해 구글링을 해서 여러가지 시도를 했지만 해결이 안되네요 어디서 잘못했을까요... 질문 2. 탄력적 ip를 받는것 까지 했습니다. 프론트가 3.35.154.166 백엔드가 52.79.107.170 그런데 도메인을 구입하지 않고 배포하려는 경우 app.js의 if (process.env.NODE_ENV === 'production') { app.use(morgan('combined')); app.use(hpp()); app.use(helmet({ contentSecurityPolicy: false })); app.use(cors({ origin: 'http://nodebird.com', credentials: true, })); } else { app.use(morgan('dev')); app.use(cors({ origin: true, credentials: true, })); } app.use(session({ saveUninitialized: false, resave: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, secure: false, domain: process.env.NODE_ENV === 'production' && '.nodebird.com' }, })); 이부분과 config.js의 export const backUrl = process.env.NODE_ENV === 'production' ? 'http://api.nodebird.com' : 'http://localhost:3065'; 이부분을 바꿔주어야 할것 같은데 어떠한 형태로 바꿔주어야 하나요? 또한 위의 코드말고도 고쳐야 할 곳이 있는지 궁금합니다?
-
해결됨초보자를 위한 HTML 기초
address 요소 설명 중 궁금한 것이 있어서 질문드립니다.
- 스펙 문서를 보면 중에 https://html.spec.whatwg.org/multipage/sections.html#the-address-elementaddress의 요소에 대한 관한 설명을 보면 연락처 정보를 나타낸다고 나오는데 , 그 중에서 연락처 정보(contact information) 외 이외의 다른 정보를 담으면 안된다고 해서요.아래는 스펙 문서 내용입니다. ------------------------------------------------------------------------------------------------------------------- The address element must not be used to represent arbitrary addresses (e.g. postal addresses), unless those addresses are in fact the relevant contact information. (The p element is the appropriate element for marking up postal addresses in general.) The address element must not contain information other than contact information. -------------------------------------------------------------------------------------------------------------------그런데 강의에서는 발행자 정보(작성자명, 발행일자 등)를 담아낼수 있다고 해서 궁금해서 질문합니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
Cannot read property 'push' of undefined
자꾸 Cannot read property 'push' of undefined 에러가 발생하는데, John Ahn님 깃허브에 들어가봐도 원인을 잘못찾겠어서 ㅠㅠ 질문남깁니다.
-
미해결웹 게임을 만들며 배우는 React에 TypeScript 적용하기
lodash 사용 유무에 대한 고견을 듣고 싶습니다.
우선 해당 강의와 연관성 없는 질문 죄송합니다. 현업에서 lodash 라이브러리를 사용하는 것에 대해 어떻게 생각하시는지 궁금합니다. 선생님께서는 최신 JS 문법들을 활용하고 조합하시는 것 같아서 궁금합니다.
-
미해결함수형 프로그래밍과 JavaScript ES6+
lodash 사용 유무에 대한 질문.
선생님께서는 현업에서 lodash 라이브러리를 사용하는 것에 대해 어떻게 생각하는지 궁금합니다. 필요한 함수들을 전부 직접 만들어 사용하시는 편이신가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
put/patch에 대한 질문입니다
회원정보수정할 때 "patch를 사용할까?"라는 궁금증이 생겨서 질문하게 되었습니다. 왜냐하면 회원정보 수정시 patch개념을 이용하여 수정하게 되면 서버 로직에서 유저 정보 데이터 유무에 따라 분기하여 db에 update하게 되어 중복되는 코드가 많아진다고 생각했습니다. // 회원정보수정 API에서 nickname, email 바디값을 받는다고 했을 때 // 아래 코드와 같이 구현해야한다고 생각했습니다. if(nickname){ update user set nickname = 'inflearn' where id = 1 } else if (email){ update user set email = 'inflearn@gmail.com' where id = 1 } // 왜냐하면 만약에 회원정보수정 API에서 클라이언트에서 nickname은 보내고 email은 안보내는 상황에 // if문같은 분기가 없으면 아래 코드와 같이 email에 null값이 들어갈 것으로 예상되었기 때문입니다. update user set nickname = 'inflearn', email = null where id =1 그래서 저같은 경우는 회원정보수정API는 put메서드를 사용하고 유저정보를 다 보내도록 했습니다. 그리고 회원정보수정API에 모든 회원정보 데이터를 보내도록 하고 아래 코드와 같이 회원정보수정API 로직이 시작하는 부분에 모든 예외상황을 생각해서 바디값이 왔는지 유무를 체크하여 예외처리하는 식으로 구현했습니다. if (!profile_nickname) return res.status(400).json({ code: 'invalid_profile_nickname' }) 그러다보니 클라이언트에서는 회원정보 수정데이터가 10개중에 하나만 바뀌어도 모든 데이터를 회원정보수정API에 보내는 비효율적인 문제가 생기더라고요. 저도 제가 구현한 방식이 비효율적인 걸 알고 있는데 어떻게 구현하는게 맞는지 생각이 나지않아 질문하게 되었습니다. 어떻게 하면 patch를 잘 이용할 수 있을까요?현재 저 같은 경우는 수정과 관련된 API이면 put만 사용하고 예외적으로 patch를 사용하는 경우는 비밀번호 변경일 때만 사용했는데요. 왜냐하면 user테이블의 비밀번호 부분만 변경을 하는거니까 patch를 사용하는게 맞다고 생각했습니다.
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
ㅜㅜdiv가 왜 0.5초만 보여지고 다시 감춰질ㄲㅏ요
ㅜㅜdiv가 왜 0.5초만 보여지고 다시 감춰질ㄲㅏ요
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
이상한 문구가 나오네요
print('Hello Python Basic!') 이렇게 입력했는데 하단에는 Python [Finished in 0.316s]이렇게 나와요 ㅠ
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
3xx-리다이렉션 강의 중 질문 있습니다.
안녕하세요:) 결제 API에서 클라이언트와 서버 통신 예외처리에 대해 질문이 있습니다. 6분 34초경에 "클라이언트에서 유저가 페이지 리로드할 경우가 있어서 동일 주문이 서버에 요청이 될 수 있기 때문에 서버에서도 예외처리해놔야한다"고 하셨습니다. 제가 영한님의 말씀을 듣고 처음 생각난 방식은 클라이언트에서 주문번호를 난수로 만들어준 다음 쿠키에 저장하여서 동일한 주문번호를 서버에 요청했을 때 서버에서 거절하면 된다고 생각했은데, 클라이언트에서 주문번호를 자리수가 짧은 난수로 만들었을 때 중복되는 값이 발생할 것으로 생각이 드네요. 그래서 이 방법은 또 다른 이슈를 발생시킬 것 같아 좋은 방법은 아닌 것 같고... 2 번째로는 처음 생각한 방법을 응용한건데 난수를 유저테이블의 index와 구분자 그리고 현재 유닉스시간까지 숫자를 합쳐서 만들면 중복될 가능성이 낮아질 것 같다는 생각을 했습니다. 예) 12/1609305240 혹시 더 나은 방법이 있을까요? 8분30초 경에 말씀해주시는 주문 중복을 피하는 방법에 대해서는 이해했습니다!
-
미해결스프링 기반 REST API 개발
HATEOAS 질문
강의를 듣다보니까 과거에 제가 네이버 댓글 크롤링을 한 기억이 생각 났는데요. 그 곳에서 현재 댓글 목록을 보는 API 응답으로 다음 댓글 페이지, 이전 댓글 페이지 URL이 JSON 요소로 담겨서 왔는데 이런 것이 HATEOAS를 지키는 예라고 이해하면 되나요?
-
해결됨진짜 현업에서 쓰이는 직장인의 실무 엑셀 - 데이터 가공부터 분석까지
개인 정보 수준 에러에 대해서
강의 내용 중에 body를 함수로 변환하고표2에서 body 함수를 불러올 때,개인 정보 수준에 대해서 묻고, 뭘 누르든 간에 에러가 납니다.(office365 최신 엑셀 기준, 옵션은 공공, 프라이빗 같은 선택이 가능) 개인 정보 강화 측면에서 <body> 함수를 불러올 때,입력해놓은 인증키 코드의 일부분이 삭제되거나 해서제대로 불러오지 못한 현상이 아닌가 싶습니다. (추측) 이래저래 검색해보니 꽤 유명한 에러인 듯 합니다.https://docs.microsoft.com/ko-kr/power-query/dataprivacyfirewall(에러 상세 내용) 강의에는 문제가 없으나내용 참고하셔서 보충해주셨으면 좋겠습니다. 감사합니다!