EC2 서버에서 로그 관리
미해결
[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
로컬에서 개발할 때는 morgan, winston으로 로그 관리를 하고 폴더를 열어서 기록을 확인할수가 있는데 ec2 같이 실제로 배포를 하면 어떻게 로그를 확인하고 관리하나요?
- Sequelize
- mysql
- nodejs
- mongodb
174만명의 커뮤니티!! 함께 토론해봐요.
미해결
[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
로컬에서 개발할 때는 morgan, winston으로 로그 관리를 하고 폴더를 열어서 기록을 확인할수가 있는데 ec2 같이 실제로 배포를 하면 어떻게 로그를 확인하고 관리하나요?
미해결
Slack 클론 코딩[실시간 채팅 with React]
ws@DESKTOP-9H6S8B6 MINGW64 ~/Desktop/sleact/back $ npx sequelize db:create Sequelize CLI [Node: 16.15.0, CLI: 6.4.1, ORM: 6.21.4] Loaded configuration file "config\config.js". Using environment "development". ERROR: Access denied for user 'root'@' localhost ' (using password: NO) 이런 오류가 계속 뜨고 다른 분들께서 질문하신 답변을 봐도 모르겠습니다... mysql 비밀번호는 확실하게 맞습니다.
미해결
실무에서 바로 쓰는 영어 이메일
안녕하세요! 강의 자료 부탁 드립니다. jihoon.noh@halla.com newlevel@naver.com (회사 메일은 block 될 수 있어 2개다 전송을 부탁 드립니다)
미해결
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
특정 주소의 위도와 경도값을 알고 싶은데 구글 맵스에서 나오지 않네요 어디서 확인할 수 있나요
미해결
스프링 핵심 원리 - 기본편
주문과 할인 도메인 설계 강의 8:00 부터입니다. 회원을 메모리가 아닌 실제 DB에서 조회하고, 정률 할인 정책을 지원해도 주문 서비스를 변경하지 않아도 된다고 하시는데 이전 강의 중 회원 도메인 설계에서 문제점으로 OCP, DIP 전부 다 위반한다고 하셨습니다. 이렇게 위반을 하니까 스프링을 사용해야 하는 것 같고요. 이 강의도 마찬가지로, OrderServiceImpl에서 private final MemberRepository memberRepository = new MemoryMemberRepository(); 를 사용함으로써 '회원을 메모리가 아닌 실제 DB에서 조회'하면 OrderServiceImpl 파일의 내용도 변경되어야 한다고 생각합니다. '회원을 메모리가 아닌 실제 DB에서 조회하고, 정률 할인 정책을 지원해도 주문 서비스를 변경하지 않아도 된다' 틀린 말 아닌가요?
미해결
ImportError: cannot import name 'pinv2' from 'scipy.linalg' (C:\Anaconda3\envs\myvenv\lib\site-packages\scipy\linalg\__init__.py) 이와같은 에러가 갑자기 생겼습니다. from pycaret.regression import * 을 실행할 때 생기는 에러 입니다 어떻게 해결할수있나요 ?? ㅠㅠㅠ
미해결
스프링 핵심 원리 - 기본편
(1) public class MemberServiceImpl implements MemberService{ private final MemberRepository memberRepository; public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } @Override public void join(Member member) { memberRepository.save(member); } @Override public Member findMember(Long memberId) { return memberRepository.findById(memberId); } } (2) public class AppConfig { public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } public MemberRepository memberRepository() { return new MemoryMemberRepository(); } } 두개의 코드가 있을때 Appconfig에 의해 인스턴스가 생성되고, MemberServiceImpl에 들어간다고 강사님께서 설명해주셧습니다. 이때 MemberServiceImpl에서 Appconfig 객체를 생성한다던지, 메서드를 호출하는 코드가 없는데 자동으로 주입되는 이유가 궁금합니다. 감사합니다.
미해결
Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
인프런 아이디 : er80ys@gmail.com 인프런 이메일 : er80ys@gmail.com 깃헙 아이디 : er80ys@gmail.com 깃헙 Username : jiandaddy1005
미해결
Vue.js + TypeScript 완벽 가이드
안녕하세요. 강의 잘 듣고 있습니다. 두번째 프로젝트 vue-news github repo 권한 요청드립니다. mykiller4@naver.com 감사합니다.
해결됨
스프링부트 시큐리티 & JWT 강의
안녕하세요 강의 잘 듣고있습니다. 감사합니다. 강의를 듣다가 MyFilter1()이 시큐리티 필터보다 먼저 실행되야 하는 이유가 궁금해서 질문드립니다. 항상 잘 듣고 있습니다. 감사합니다.
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
1.예 2.예 3.예 안녕하세요, 코드에대해 궁금한 점이 생겨 질문드립니다. 잘 부탁 드립니다. 질문 : @Override public Optional<Member> findById(Long id) { List<Member> result = jdbcTemplate.query("select * from member where id = ?", memberRowMapper()); return result.stream().findAny(); } select * from member where id = ? 의 결과값은 null 아니면 1개인데 List<Member> result를 사용하는 이유를 모르겠습니다. 혹시 리턴값이 Optional<Member>이기 때문인건가요?? 아직 잘 몰라서 바보같은 질문일 수도 있지만, 잘 부탁드립니다!!
해결됨
쉽고! 짧고! 강하게! 준비하는 웹디자인기능사 실기
어도비에 포토샵 CS06으로 구매 하려고 하니 CS06 버전은 지금은 판매가 되지 않고 최신 버전으로만 구입 가능하다고 하는데 최신 버전 구입 후 강의 들어도 똑같습니까?
미해결
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
플러터 중급 25강 정도 듣고 아주 좋아서 그런데 고급 강의는 언제쯤 오픈 될까요?
미해결
홍정모의 따라하며 배우는 C++
이 코드를 실행 시켰더니 마지막 문장은 안나오는데 왜그런걸까요?
미해결
[리뉴얼] React로 NodeBird SNS 만들기
page/profile import React from 'react' import Head from 'next/head' import AppLayout from '../components/AppLayout' import NicknameEditForm from '../components/NicknameEditForm' import FollowList from '../components/FollowList' import { useSelector } from 'react-redux' const Profile = () => { const { me } = useSelector((state) => state.user) return ( <> <Head> <title>내 프로필</title> </Head> <AppLayout> <NicknameEditForm /> <FollowList header="팔로잉 목록" data={me.Followings} /> <FollowList header="팔로워 목록" data={me.Followers} /> </AppLayout> </> ) } export default Profile reducer/user export const initialState = { logInLoading: false, // 로그인 시도중 logInDone: false, logInErr: null, logOutLoading: false, // 로그아웃 시도중 logOutDone: false, logOutErr: null, signUpLoading: false, // 회원가입 시도중 signUpDone: false, signUpErr: null, changeNickLoading: false, // 닉네임변경 시도중 changeNickDone: false, changeNickErr: null, 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_NICK_REQUEST = 'CHANGE_NICK_REQUEST' export const CHANGE_NICK_SUCCESS = 'CHANGE_NICK_SUCCESS' export const CHANGE_NICK_FAILURE = 'CHANGE_NICK_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' //더미데이터 const UserDummy = (data) => { return { ...data, nickname: '향훈', id: 1, Posts: [], Followings: [], Followers: [], } } //로그인 액션 export const loginRequestAction = (data) => { return { type: LOG_IN_REQUEST, data, } } //로그아웃 액션 export const logoutRequestAction = (data) => { return { type: LOG_OUT_REQUEST, data, } } const reducer = (state = initialState, action) => { switch (action.type) { case LOG_IN_REQUEST: return { ...state, logInLoading: true, } case LOG_IN_SUCCESS: return { ...state, logInLoading: false, logInDone: true, me: UserDummy(action.data) } case LOG_IN_FAILURE: return { ...state, logInLoading: false, logInDone: false, } case LOG_OUT_REQUEST: return { ...state, logOutLoading: true, } case LOG_OUT_SUCCESS: return { ...state, logOutLoading: false, logOutDone: true, logInDone: false, me: null, } case LOG_OUT_FAILURE: return { ...state, logOutErr: action.error, } case SIGN_UP_REQUEST: return { ...state, signUpLoading: true, } case SIGN_UP_SUCCESS: return { ...state, signUpLoading: false, signUpDone: true, } case SIGN_UP_FAILURE: return { ...state, signUpErr: action.error } case SIGN_UP_REQUEST: return { ...state, signUpLoading: true, } case SIGN_UP_SUCCESS: return { ...state, signUpLoading: false, signUpDone: true, } case SIGN_UP_FAILURE: return { ...state, signUpErr: action.error } default: return state } } export default reducer 선생님 '바뀐 상태 적용하고 eslint 점검하기' 강의 2분09초 부분에서 팔로잉 목록 데이터 부분에 data={me.Followings} 이걸로 넣어주시는데 오류가 안나시더라구요 저는 옵셔널 체이닝을 써야 오류 잡아지던데 제가 뭘 잘못한걸까요? 더미데이터로 넣어준 Followings에 값이 null이여서 랜더링 안되길레 옵셔널 체이닝 사용하여 랜더링 시켰습니다. 그런데 선생님 강의에는 옵셔널 체이닝이나 && 연산자 사용도 안하시는데 오류 안나던데 답변 부탁드립니다.
미해결
[리뉴얼] React로 NodeBird SNS 만들기
sagas/user.js import { delay, all, fork, put, takeLatest } from "redux-saga/effects"; function logInAPI() { return axios.post('/api/login') } function* logIn(action) { console.log('saga start') try { // const result = yield call(logInAPI, action.data) delay(1000) yield put({ type: 'LOG_IN_SUCCESS', data: action.data }); } catch (err) { yield put({ type: 'LOG_IN_FAILURE', data: err.response.data }); } } function logOutAPI() { return axios.post('/api/logaout') } function* logOut() { try { // const result = yield call(logOutAPI) delay(1000) yield put({ type: 'LOG_OUT_SUCCESS', }); } catch (err) { yield put({ type: 'LOG_OUT_FAILURE', }); } } function* watchLogIn() { yield takeLatest('LOG_IN_REQUEST', logIn) } function* watchLogOut() { yield takeLatest('LOG_OUT_REQUEST', logOut) } export default function* userSaga() { yield all([ fork(watchLogIn), fork(watchLogOut) ]) } 선생님 로딩스피너가 안돌아가고 바로 로그인이 되어버리는데 delay값을 수정해도 스피너가 안보여서 뭐가 잘못 된건가 하고 put으로 반환하는 type값을 없는값을 줬더니 스피너가 돌아가더라구요 delay값을 아무리 수정해도 바로 로그인 되어비리는데 제 코드가 잘못된건가요?
미해결
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
스프링 부트가 기본으로 제공하는 ExceptionResolver 는 다음과 같다. HandlerExceptionResolverComposite 에 다음 순서로 등록 1. ExceptionHandlerExceptionResolver 2. ResponseStatusExceptionResolver 3. DefaultHandlerExceptionResolver 우선 순위가 가장 낮다. 이 내용에서 우리가 직접등록한 MyHandlerExceptionResolver는 우선순위가 어떻게되나요 ? 스프링부트가 기본적으로 제공하는 ExceptionResolver와 우리가 직접 등록한 ExceptionResolver가 같은 예외를 처리하는 로직을 담고 있다면 어떤것에서 우선순위가 있어 처리되는지 궁금합니다.
미해결
[자동화 완전 정복] 인스타그램 휴대폰, 웹 자동화 프로그램 개발
[질문] 안녕하세요. 강사님. 영상을 순서대로 따라하고 있습니다. 이 영상에서 ui automator2 모듈 임포트를 하고 있는데요. 이전까지 모듈 설치가 안되어 있어서 오류가 납니다. 1:21에서 "지지난번 시간에 설치했던 ui automator2" 이라고 언급하신 설치방법이 어느 영상에 있는지 못찾고 있습니다.
미해결
[백문이불여일타] 데이터 분석을 위한 중급 SQL
강사님 안녕하세요. Top Earners(GROUP BY, HAVING) 문제 관련하여 질문드립니다. 제 생각에는 아래와 같은 쿼리로 답을 도출할 수 있을 것 같은데 의도한 대로 실행되지 않아서 질문드립니다. SELECT months * salary as earnings , count(*) FROM employee GROUP BY earnings HAVING earnings = MAX(earnings); earnings를 산출 earnings를 기준으로 그룹핑 earnings의 값이 최대값인 데이터만 조회 이런 생각으로 쿼리를 작성하였습니다. 그런데 최대 earnings에 해당하는 데이터만 조회되는 것이 아니라, 모든 earnings 별 데이터가 다 조회되는 것으로 나타났습니다. 어떤 이유에서 이렇게 동작한 것인지 질문드립니다. 강의 덕분에 mysql 잘 배우고 있습니다. 감사합니다.
미해결
Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
export const store = new VueX.Store .({ modules: { //모듈 명칭 : 모듈 파일 명 todo : todo } }); App.vue 하위 컴포넌트들에서는 mutation 이름으로 찾을텐데 따로 모듈명을 기재하는 이유는 혹시 store.js 끼리 같은 mutation 이름이 있을 수 있기 떄문에 따로 모듈명을 나누는 건가요?