묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결남박사의 파이썬으로 실전 웹사이트 만들기
pymongo.errors.operationfailure 에러는 왜 발생할까요??
아래 스크립트 실행 하였고 from flask import Flask from flask import request from flask import render_template from flask_pymongo import PyMongo app = Flask(__name__) app.config["MONGO_URI"] = "mongodb://localhost:27017/myweb" mongo = PyMongo(app) @app.route("/write", methods=["GET", "POST"]) def board_write(): if request.method == "POST": name = request.form.get("name") title = request.form.get("title") contents = request.form.get("contents") print(name, contents, title) board = mongo.db.board post = { "name": name, "title": title, "contents": contents, } board.insert_one(post) return "" else: return render_template("write.html") if __name__ == "__main__": app.run(host="0.0.0.0", debug=True, port=9000) 웹페이지에서 값 입력 후 제출 버튼 누르면 아래 에러가 발생합니다. 왜 이러는 걸까요?? 혹시 robo3T에서 어드민을 설정해서 이런걸까요?? 뭐 하나 할때마다 이런 에러가 나네요...ㅜㅜ
-
미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
크롤링 후 가공에서 원이랑 , 빼는 부분에서 되는 열이 있고 안되는 열이 있는데 왜 그런지 몰르겠어요
크롤링 후 가공에서 원이랑 , 빼는 부분에서 되는 열이 있고 안되는 열이 있는데 왜 그런지 몰르겠어요
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
선생님 ㅠㅠ 질문이요
로그인 기능 구현중 빨간줄로 오류가 나서 서버 스타트를 하지 못하는 상황인데.. 전 선생님과 코드를 똑같이 진행했는데 왜 오류가 나는 걸까요?ㅠㅠ 단순 오류 같은데 못찾겠어서 이렇게 질문 드립니다.. 그리고 무료로 좋은 강의 해주셔서 감사합니다 !!
-
미해결예제로 배우는 스프링 입문 (개정판)
localhost:8080으로 접속하였으나
스프링 프레임워크를 처음 시작한 사람입니다. 강의를 보면서 차근차근 따라해보고 있는데,,, 어째서인지 강의에서 보여준 화면과 다르게 위 사진처럼 나옵니다ㅠㅠ 혹시 제가 중간에 빠트린 부분이 있는지, 아니면 뭘 잘못건드린건지 잘 모르겠습니다ㅠ.ㅠ
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
GPUs 할당량 변경이 안됩니다.
구글측에서 이런 답변만 계속오는데 어떻게 해야하나요
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
풀스택 개발의 경우 어떤 순서로 개발을 하나요?
현재 배포 전까지의 강의를 복습을 하고 있는 중입니다. 저는 일단 db를 디자인 하고 swagger로 api를 작성하고 있습니다. 그런데 하다보니 이런 순서로 하는게 맞나 하는 생각이 드네요. 지금이야 백엔드 구조를 알고 있으니 이렇게 하고 있지만 몰라도 이렇게 했을까 생각중입니다. 먼저 프론트를 만들면서 필요한 백엔드에 대한 swagger api를 같이 작성하고 그 다음에 백엔드를 만드는게 더 깔끔한게 아닌가 싶네요. 제로초님은 풀스택 개발을 하실 때 어떤 순서로 진행하시나요?
-
미해결비개발자를 위한 RPA 강의 (UiPath 입문편)
오케스트라연동말고 별도 실행방법???
안녕하세요 강의로 많은 도움을 받았습니다. 이번 강의와는 약간 별개로 여쭈어보는데 혹시 uipath를 이용하여 프로세스를 개발완료했는데 이것을 오케스트라연동으로 실행이 아닌 사용자가 직접 사이트를 이용하지않고 URL 이라든지 프로세스등을 이용하여 실행할 수 있는방법이 있을까요 ? 예로 작업자가 필요할 경우에만 프로세스를 실행할 수 있는 방법이 필요합니다.
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
문의 드립니다. 팔로우 언팔로우 부분을 끝으로 강의해주신 부분을 테스트중에 회원 가입 부분을 실행해보니 아래와 같은 오류가 발생합니다. 런타임
회원 가입페이지 자체가 열리지 않습니다. AppLayout.js import React from "react"; import PropTypes from 'prop-types'; import Link from 'next/link'; import { Menu, Input, Row, Col } from 'antd'; import styled from 'styled-components'; import { useSelector} from 'react-redux'; import UserProfile from '../components/UserProfile'; import LoginForm from '../components/LoginForm'; const SearchInput = styled(Input.Search)` vertical-align: middle; `; const AppLayout = ({children}) => { const me = useSelector((state) => state.user.me?.id); // const inputStyle = useMemo(() => ({ verticalAlign: 'middle' }), []); return ( <div> <Menu mode="horizontal"> <Menu.Item> <Link href="/"><a>노드버드</a></Link> </Menu.Item> <Menu.Item> <Link href="/profile"><a>프로필</a></Link> </Menu.Item> <Menu.Item> <SearchInput enterButton /> </Menu.Item> <Menu.Item> <Link href="/signup"><a>회원가입</a></Link> </Menu.Item> </Menu> <Row gutter={8}> <Col xs={24} md={6}> {me ? <UserProfile /> : <LoginForm />} </Col> <Col xs={24} md={12}> {children} </Col> <Col xs={24} md={6}> </Col> </Row> </div> ); }; AppLayout.propTypes = { children: PropTypes.node.isRequired, }; export default AppLayout; signup.js import React, { useCallback, useState, useEffect } from 'react'; import { Form, Input, Checkbox, Button } from 'antd'; import { useDispatch, useSelector } from 'react-redux'; import Router from 'next/router'; import Head from 'next/head'; import styled from 'styled-components'; import { SIGN_UP_REQUEST } from '../reducers/user'; import useInput from '../hooks/useInput'; import AppLayout from '../components/AppLayout'; const ErrorMessage = styled.div` color: red; `; const Signup = () => { const dispatch = useDispatch(); const [ signUpLoading, me, signUpDone ] = useSelector((state) => state.user); const [email, onChangeEmail] = useInput(''); const [nickname, onChangeNickname] = useInput(''); const [password, onChangePassword] = useInput(''); const [passwordCheck, setPasswordCheck] = useState(''); const [passwordError, setPasswordError] = useState(false); const [term, setTerm] = useState(false); const [termError, setTermError] = useState(false); useEffect(() => { if (me) { alert('로그인했으니 메인페이지로 이동합니다.'); Router.push('/'); } }, [me && me.id]); useEffect(() => { if (signUpDone) { Router.replace('/'); } }, [signUpDone]); const onSubmit = useCallback(() => { if (password !== passwordCheck) { return setPasswordError(true); } if (!term) { return setTermError(true) } console.log(email, nickname, password ) return dispatch({ type: SIGN_UP_REQUEST, data: { email, password, nickname }, }); }, [email, password, passwordCheck, term]) const onChangePasswordCheck = useCallback((e) => { setPasswordCheck(e.target.value); setPasswordError(e.target.value !== password); }, [password]); const onChangeTerm = useCallback((e) => { setTerm(e.target.checked); setTermError(false); }, []); return ( <AppLayout> <Head> <meta charSet="utf-8" /> <title>회원가입 | NodeBird</title> </Head> <Form onFinish={onSubmit} style={{ padding: 10 }}> <div> <label htmlFor="user-email">이메일</label> <br /> <Input name="user-email" type="email" value={email} required onChange={onChangeEmail} /> </div> <div> <label htmlFor="user-nickname">닉네임</label> <br /> <Input name="user-nickname" value={nickname} required onChange={onChangeNickname} /> </div> <div> <label htmlFor="user-password">비밀번호</label> <br /> <Input name="user-password" type="password" value={password} required onChange={onChangePassword} /> </div> <div> <label htmlFor="user-password-check">비밀번호 체크</label> <br /> <Input name="user-password-check" type="password" value={passwordCheck} required onChange={onChangePasswordCheck} /> {passwordError && <ErrorMessage style={{ color: 'red'}}> 비밀번호가 일치하지 않습니다. </ErrorMessage> } </div> <div> <Checkbox name="user-term" checked={term} onChange={onChangeTerm}> 제로초 말을 잘 들을 것을 동의합니다. </Checkbox> {termError && <ErrorMessage style={{ color: 'red' }}> 약관에 동의하셔야 합니다. </ErrorMessage> } </div> <div style={{ marginTop: 10 }}> <Button type="primary" htmlType="submit" loading={signUpLoading}>가입하기</Button> </div> </Form> </AppLayout> ); }; export default Signup; reducers/user.js import produce from 'immer'; export const initialState = { logInLoading: false, // 팔로우 시도중.. 로딩창을 띄운다. logInDone: false, logInError: null, logOutLoading: false, // 언팔로우 시도중.. 로딩창을 띄운다. logOutDone: false, logOutError: null, followLoading: false, // 로그인 시도중.. 로딩창을 띄운다. followDone: false, followError: null, unfollowLoading: false, // 로그인 시도중.. 로딩창을 띄운다. unfollowDone: false, unfollowError: null, signUpLoading: false, // 회원가입 시도중.. 로딩창을 띄운다. signUpDone: false, signUpError: null, changeNicknameLoading: false, // 닉네임 변경 시도중.. 로딩창을 띄운다. changeNicknameDone: false, changeNicknameError: null, isLoggingIn: false, isLoggedIn: false, isLoggingOut: false, me: null, signUpData: {}, loginData: {}, }; export const LOG_IN_REQUEST = 'LOG_IN_REQUEST'; export const LOG_IN_SUCCESS = 'LOG_IN_SUCCESS'; export const LOG_IN_FAILURE = 'LOG_IN_FAILURE'; export const LOG_OUT_REQUEST = 'LOG_OUT_REQUEST'; export const LOG_OUT_SUCCESS = 'LOG_OUT_SUCCESS'; export const LOG_OUT_FAILURE = 'LOG_OUT_FAILURE'; export const SIGN_UP_REQUEST = 'SIGN_UP_REQUEST'; export const SIGN_UP_SUCCESS = 'SIGN_UP_SUCCESS'; export const SIGN_UP_FAILURE = 'SIGN_UP_FAILURE'; export const CHANGE_NICKNAME_REQUEST = 'CHANGE_NICKNAME_REQUEST'; export const CHANGE_NICKNAME_SUCCESS = 'CHANGE_NICKNAME_SUCCESS'; export const CHANGE_NICKNAME_FAILURE = 'CHANGE_NICKNAME_FAILURE'; export const FOLLOW_REQUEST = 'FOLLOW_REQUEST'; export const FOLLOW_SUCCESS = 'FOLLOW_SUCCESS'; export const FOLLOW_FAILURE = 'FOLLOW_FAILURE'; export const UNFOLLOW_REQUEST = 'UNFOLLOW_REQUEST'; export const UNFOLLOW_SUCCESS = 'UNFOLLOW_SUCCESS'; export const UNFOLLOW_FAILURE = 'UNFOLLOW_FAILURE'; export const ADD_POST_TO_ME = 'ADD_POST_TO_ME'; export const REMOVE_POST_OF_ME = 'REMOVE_POST_OF_ME'; export const ADD_COMMENT_TO_ME = 'ADD_COMMENT_TO_ME'; export const REMOVE_COMMENT_OF_ME = 'REMOVE_COMMENT_OF_ME'; const dummyUser = (data) => ({ ...data, nickname: '제로초', id: 1, // sequlize 에서 합쳐주는 데이터라서 앞글자가 대문자 이다. Posts: [{ id: 1 }], // 내가 쓴 게시글 Followings: [{nickname: '부기초' }, { nickname: 'Chanho Lee' }, { nickname: 'neue zeal'}], // 내 팔로윙들... Followers: [{nickname: '부기초' }, { nickname: 'Chanho Lee' }, { nickname: 'neue zeal'}], // 내 팔로워들... }); export const loginAction = (data) => { return { type: LOG_IN_REQUEST, data, }; }; export const logoutAction = () => { return { type: LOG_OUT_REQUEST, }; }; export const changeNickname = () => { return { type: CHANGE_NICKNAME_REQUEST, }; }; // return 이 생략된다. // const reducer = (state = initialState, action) => return produce (state, (draft) => { const reducer = (state = initialState, action) => produce (state, (draft) => { switch (action.type) { case FOLLOW_REQUEST: draft.followLoading = true; draft.followError = null; draft.followDone = false; break; case FOLLOW_SUCCESS: draft.followLoading = false; draft.me.Followings.push({ id: action.data }); draft.followDone = true; // me: action.data, => me: { ...action.data, nicname: 'zerocho' }, => dummyUser{ action.data }, break; case FOLLOW_FAILURE: draft.followLoading = true; // isLoggingOut: true, => logOutLoading: true, draft.followError = action.error; // logInError: action.error, => logOutDone: false, break; case UNFOLLOW_REQUEST: draft.unfollowLoading = true; draft.unfollowError = null; draft.unfollowDone = false; break; case UNFOLLOW_SUCCESS: draft.unfollowLoading = false; draft.unfollowDone = true; draft.me.Followings = draft.me.Followings.filter((v) => v.id !== action.data); // me: action.data, => me: { ...action.data, nicname: 'zerocho' }, => dummyUser{ action.data }, break; case UNFOLLOW_FAILURE: draft.unfollowLoading = true; // isLoggingOut: true, => logOutLoading: true, draft.unfollowError = action.error; // logInError: action.error, => logOutDone: false, break; case CHANGE_NICKNAME_REQUEST: draft.changeNicknameLoading = true; // 닉네임 변경 시도중이니까 => 버튼 로딩 O draft.changeNicknameDone = false; // 닉네임 변경중 draft.changeNicknameError = null; break; case CHANGE_NICKNAME_SUCCESS: draft.changeNicknameLoading = false; // 닉네임 변경 요청이 성공했으니까 => 버튼 로딩 X draft.changeNicknameDone = true; // 닉네임 변경 완료 break; case CHANGE_NICKNAME_FAILURE: draft.changeNicknameLoading = false; // 닉네임 변경 요청이 끝났으니까 => 버튼 로딩 X draft.changeNicknameError = action.error; break; case SIGN_UP_REQUEST: draft.signUpLoading = true; // 회원가입 시도중이니까 => true isLoggingOut: true, => logInLoading: true, draft.signUpDone = false; draft.signUpError = null; break; case SIGN_UP_SUCCESS: draft.signUpLoading = false; // 회원가입 요청이 성공했으니까 => false isLoggingOut: false, => logOutLoading: false, draft.signUpDone = true; // isLoggedIn: false, => logOutDone: true, break; case SIGN_UP_FAILURE: draft.signUpLoading = false; // 회원가입 요청이 끝났으니까 => false isLoggingOut: false, => logOutLoading: false, draft.signUpError = action.error; // 추가 break; case LOG_IN_REQUEST: draft.logInLoading = true; draft.logInError = null; draft.logInDone = false; break; case LOG_IN_SUCCESS: draft.logInLoading = false; draft.logInDone = true; draft.me = dummyUser(action.data); // me: action.data, => me: { ...action.data, nicname: 'zerocho' }, => dummyUser{ action.data }, break; case LOG_IN_FAILURE: draft.logInLoading = true; // isLoggingOut: true, => logOutLoading: true, draft.logInError = action.error; // logInError: action.error, => logOutDone: false, break; case LOG_OUT_REQUEST: draft.logOutLoading = true; // 로그아웃 시도중이니까 => true draft.logOutDone = false; draft.logOutError = null; break; case LOG_OUT_SUCCESS: draft.logOutLoading = false; // 로그아웃 요청이 성공했으니까 => false isLoggingOut: false, => logOutLoading: false, draft.logOutDone = true; // isLoggedIn: false, => logOutDone: true, draft.me = null; break; case LOG_OUT_FAILURE: draft.isLoggingOut = false; // 요청이 끝났으니까 => false isLoggingOut: false, => logOutLoading: false, draft.logOutError = action.error; // 추가 break; case ADD_POST_TO_ME: draft.me.Posts.unshift({ id: action.data }); break; // me: { // ...state.me, // Posts: [{ id: action.data }, ...state.me.Posts], // }, // }; case REMOVE_POST_OF_ME: draft.me.Posts = draft.me.Posts.filter((v) => v.id !== action.data); break; // return { // ...state, // me: { // ...state.me, // Posts: state.me.Posts.filter((v) => v.id !== action.data), // }, // }; // case ADD_COMMENT_TO_ME: // break; // me: { // ...state.me, // Posts: [{ id: action.data }, ...state.me.Posts], // }, // }; // case REMOVE_COMMENT_OF_ME: // break; // me: { // ...state.me, // Posts: state.me.Posts.Comments.filter((v) => v.id !== action.data), // }, // }; default: break; // default: // return state; // default: { // return { // ...state, // }; // } } }); export default reducer; sagas/user.js // all fork call put delay debounce throttle takeLatest tabkeEvery takeLeding taekMaybe import { all, put, fork, takeLatest, delay } from 'redux-saga/effects'; import axios from 'axios'; import { LOG_IN_REQUEST, LOG_IN_SUCCESS, LOG_IN_FAILURE, LOG_OUT_REQUEST, LOG_OUT_SUCCESS, LOG_OUT_FAILURE, SIGN_UP_REQUEST, SIGN_UP_SUCCESS, SIGN_UP_FAILURE, FOLLOW_REQUEST, FOLLOW_SUCCESS, FOLLOW_FAILURE, UNFOLLOW_REQUEST, UNFOLLOW_SUCCESS, UNFOLLOW_FAILURE, } from '../reducers/user'; function followAPI(data) { return axios.post('/api/follow', data); } function* follow(action) { try { // yield put({ // type: 'FOLLOW_REQUEST', // }); // const result = yield call(followAPI, action.data); // ex> const result = yield call(logInAPI, action.data, a, b, c); a, b, c 인자를 추가시 yield delay(1000); // throw new Error('') // 아래 catch 로 넘어간다. yield put({ type: FOLLOW_SUCCESS, data: action.data, }); } catch (err) { yield put({ // put => dispatch 다. type: FOLLOW_FAILURE, data: err.response.data, }); } } function unfollowAPI(data) { return axios.post('/api/unfollow', data); } function* unfollow(action) { try { // yield put({ // type: 'UNFOLLOW_REQUEST', // }); // const result = yield call(unfollowAPI, action.data); // ex> const result = yield call(logInAPI, action.data, a, b, c); a, b, c 인자를 추가시 yield delay(1000); // throw new Error('') // 아래 catch 로 넘어간다. yield put({ type: UNFOLLOW_SUCCESS, data: action.data, }); } catch (err) { yield put({ // put => dispatch 다. type: UNFOLLOW_FAILURE, data: err.response.data, }); } } function signUpAPI(data) { return axios.post('/api/logout', data); } function* signUp(action) { try { // yield put({ // type: 'LOG_IN_REQUEST', // }); // const result = yield call(signUpAPI, action.data); // ex> const result = yield call(logInAPI, action.data, a, b, c); a, b, c 인자를 추가시 yield delay(1000); // throw new Error('') // 아래 catch 로 넘어간다. yield put({ type: SIGN_UP_SUCCESS, data: action.data, }); } catch (err) { yield put({ // put => dispatch 다. type: SIGN_UP_FAILURE, data: err.response.data, }); } } function logOutAPI() { return axios.post('/api/logout'); } function* logOut() { try { // yield put({ // type: 'LOG_OUT_REQUEST', // }); // const result = yield call(logOutAPI); yield delay(1000); yield put({ type: LOG_OUT_SUCCESS, }); } catch (err) { yield put({ // put => dispatch 다. type: LOG_OUT_FAILURE, error: err.response.data, }); } } function* logIn(action) { try { console.log('saga logIn'); // yield put({ // type: 'LOG_IN_REQUEST', // }); // const result = yield call(logInAPI, action.data); // ex> const result = yield call(logInAPI, action.data, a, b, c); a, b, c 인자를 추가시 yield delay(1000); yield put({ type: LOG_IN_SUCCESS, data: action.data, }); } catch (err) { yield put({ // put => dispatch 다. type: LOG_IN_FAILURE, error: err.response.data, }); } } {/* takeLeading - 1번째 클릭만 실행 takeLatest - 마지막 클릭만 실행 ( [프론트 서버에서만] 먼저 실행한 부분은 놔두고 동시에 여러게가 실행된 경우만 마지막 이벤트만을 실행한다. ) takeEvery - 1번 사용하면 사라지는 take 대신... while 문(반복문)을 사용하지 않고도.. 계속 재사용할수 있도록 해준다. */} function* watchFollow() { yield takeLatest(FOLLOW_REQUEST, follow); // take =>logIn 액션이 실행될때까지 기다리겠다. } function* watchUnFollow() { yield takeLatest(UNFOLLOW_REQUEST, unfollow); // take =>logIn 액션이 실행될때까지 기다리겠다. } function* watchLogIn() { yield takeLatest(LOG_IN_REQUEST, logIn); // take =>logIn 액션이 실행될때까지 기다리겠다. } function* watchLogOut() { yield takeLatest(LOG_OUT_REQUEST, logOut); } function* watchSignUp() { yield takeLatest(SIGN_UP_REQUEST, signUp); // take =>logIn 액션이 실행될때까지 기다리겠다. } {/* all 은 배열을 받아서 배열안에 있는 명령들을 한번에 실행 시켜준다. fork 함수를 실행해준다. call도 있다. fork[비동기] - 결과를 기다리지 않고 다음 명령 실행을 진행한다. [논블로킹] call[동기] - 응답을 기다렸다가 응답을 받고 다음 명령을 실행 [블로킹] */} export default function* userSaga() { yield all([ fork(watchFollow), fork(watchUnFollow), fork(watchLogIn), fork(watchLogOut), fork(watchSignUp), ]); }
-
미해결자바 프로그래밍 입문 강좌 (renew ver.) - 초보부터 개발자 취업까지!!
선생님 이클립스 어떤거 다운받아야하나요?
쌤 "자바 프로그래밍 입문 강좌(renew ver.) - 초보부터 개발자 취업까지!!" 강좌 듣는 학생이에요. 색션 0. OT 영상 중간부분 28:45부분에서 "Eclipse IDE for Developers" 다운받으라고 하셨는데 선생님이 다운받으라고 하셨던 "Eclipse IDE for Developers"가 없고 지금 이클립스에는 "Eclipse IDE for enterprise Java Developers"로 올라와있는데 이거 다운받으면 되는거겠죠?
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
pickle 에러
import pickle profile_file = open("profile.pickle", "rb") profile = pickle.load(profile_file) # file에 있는 정보를 profile에 불러오기 print(profile) profile_file.close() 이 부분에서 에러가 Traceback (most recent call last): File "/Users/terrykwag/Documents/PythonWorkspace/7. 입출력/pickle.py", line 4, in <module> import pickle File "/Users/terrykwag/Documents/PythonWorkspace/7. 입출력/pickle.py", line 13, in <module> profile = pickle.load(profile_file) # file에 있는 정보를 profile에 불러오기 AttributeError: partially initialized module 'pickle' has no attribute 'load' (most likely due to a circular import) 이렇게 뜨는데 왜 안되는걸까요? write는 잘 됐는데 ㅠㅠ
-
미해결생활코딩 - React
chrome extension 오류입니다.
This page doesn’t appear to be using React. If this seems wrong, follow the troubleshooting instructions. 라는 오류가 나서 access to url file 을 active 상태로 바꿨는데도 되지 않습니다.......
-
해결됨[라즈베리파이] IoT 딥러닝 Computer Vision 실전 프로젝트
vnc viewer 연결오류
해당 강의 다른 질문에서도 확인하였는데 vnc viewer 가 연결되기 위해서는 같은 무선네트워크에 접속해야한다고 하셨는데 만약 viewer를 데스크탑에 설치하여 랜선으로 연결되어있다면 연결은 불가능한건가요? 노트북으로 할때는 잘 되었는데 데스크탑 컴퓨터로 접속하니 timed out waiting for a response from a computer 라는 오류가 뜨며 연결이 안되네요
-
해결됨반응형 웹사이트 포트폴리오(Architecture Agency)
모바일에서 font-size, padding, width, margin등 질문있습니다.
보통 퍼블리셔들은 반응형만들때 psd를 보고하자나요.아이폰6기준 넓이 375라고하면 웹디자이너들은 375 * 2기준으로 디자인을 하거나 *3으로 디자인할때 padding이나 font-size는 어떻게 줘야하는지 em이나 rem에 대한 설명부분이 있엇으면 좋겠어요.
-
미해결React로 NodeBird SNS 만들기
제로초님 질문 있습니다
혹시 '더보기'나 '인피니트스크롤링' 말고 일반 게시판의 '숫자클릭이동식' 페이지네이션은 offset을 이용해서 하는게 적합할까요?
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
온라인 스터디를 제외하고 어떻게 만들어야 하나요?
강의 잘 듣고 있습니다!! 문제에선 월 3회는 온라인, 1회는 오프라인인데 각 스터디날짜들이 계속 겹치게 나오는데 어떻게 스터디날짜가 이전에 나온 스터디날짜와 겹치지 않고 출력할 수 있나요? ㅠㅠ
-
미해결왕초보를 위한 스위프트 프로그래밍 강좌 (iOS app with xcode&swift)
Xcode 최신이신분들
저도 최신 이라 처음 label추가 하는 부분에서 헤매었는데 방법 찾아서 글 올립니다.xcode오른쪽 상단에 + 버튼 누르시면 추가할 수 있는 요소들 나오네요!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
화살표 함수와 fucntion 함수의 차이가 궁금합니다
userSchema.pre('save', (next) => { var user = this; if (user.isModified('password')) { //비밀번호 암호화 시키기 bcrypt.genSalt(saltRounds, function (err, salt) { if (err) return next(err); bcrypt.hash(user.password, salt, function (err, hash) { if (err) return next(err); user.password = hash; return next(); }); }); } else { return next(); } }); --------------------------------------- 윗부분은 제 코드입니다 7강에서 강사님 코드 userSchema.pre('save', function (next) { } <-을 저는 ->userSchema.pre('save', (next) => { } 으로 하니까 오류가 나더라구요.. 왜 화살표 함수로 인자를 보내면 오류가 날까요 화살표 함수 사용시 {} 안에 return 해야한다는것을 알고 return next() 를했는데도 안되더라구요 ㅠㅠ 알려주세요!
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
heatmap 예제와 같은 형태로 데이터 2차원 배열 만들기
(사진)
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
return에 대해서
안녕하세요 제가 std_weight에 대해 해답을 보기전 혼자 풀었거든요 def std_weight(height, gender): height = height / 100 if gender == "여성": return height * height * 22 elif gender == "남성": return height * height * 22 height = height/100을 함수 내에 저장을 했는데도 같은 답이 나왔어요 (무게) 근데 바로 전 비디오에서 return gun부분은 이해가 가는데 (내부에서 계산된 gun값을 외부로 뺐기 때문에 외부 gun값을 replace) 왜 이 함수는 return height * height * 22를 했는데도 불구하고 답이 나오나요? return이 헷갈리네요 ㅠㅠ
-
미해결애플 웹사이트 인터랙션 클론!
playanimation 관련 질문드립니다.
안녕하세요. 강사님 강의 잘 듣고 있습니다. 현재 쇼핑몰을 제작 중인데 에어팟 프로 상세페이지를 보고 잘 만들었다는 생각을 많이 했습니다. 그러다 강사님 강의를 알게 되었고 이렇게 배울 수 있는 기회를 주셔서 감사합니다. 강의는 전체적으로 한번 듣고 다시 한 강의씩 들으면서 페이지 제작 중에 있는데 문제가 있어 이렇게 질문을 남깁니다. 일단 저는 아임웹을 이용해서 홈페이지를 만드는 중이고 '현재 활성씬 반영하기'까지 완료하고 콘솔창을 통해 제대로 작동하는 것까지 확인했습니다. 헌데 playanimation 함수를 통해 case들을 작성하고 잘 작동하는지 console.log콘솔창에 띄어보려고 해도 아무런 반응이 없습니다. 빨간색으로 어떤 에러도 표시가 안되어서 일단 무시하고 다음 내용들을 작성하여도 콘솔창에 모두 반응이 없습니다. console.log('0' play); console.log('1' play);console.log('2' play);console.log('3' play); console.log(messageA_opacity_0, messageA_opacity_1); 아임웹 특성상 코드위젯창을 통해 html, css, 자바 파일들을 한꺼번에 작성하고 있고, 또한 내비쪽은 아임웹쪽에서 이미 자체적으로 구성이 되어 있기 때문에 내비들은 제외하고 작성하고 있는데 이 과정에서 혹시 문제가 발생했을 수도 있는지 아니면 어떤 문제때문인지 알려주시면 감사하겠습니다! function playAnimation() { switch (currentScene) { case 0: console.log('0 play'); break; case 1: console.log('1 play'); break; case 2: console.log('2 play'); break; case 3: console.log('3 play'); break; } }