묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결프론트엔드 개발자를 위한 웹팩
webpack-dev-server 실행시 index.html 안쓰는 법
안녕하세요 강사님! 웹팩 강의 너무 잘 보고 있습니다!! 드리고 싶은 질문은, 제가 webpack-dev-server실행 시 index.html을 안불러오고 main.js를 통해 App.vue를 실행시키고 싶은데, 옵션을 어떻게 설정해야 할까요? 참고하고 있던 소스가 vue-cli를 사용하고 있어서 vue.config.js 옵션 설정과는 조금 다른지 헷갈리네요..!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
ls -arlth 가 무엇을 뜻하는 명령어 인가요??
2분 20초대에 실행하신 ls -arlth 명령어가 무엇을 뜻하는 명령어 인가요??
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
JDK 오류, java 파일 빨간불
안녕하세요. 저는 야생형 코스를 따라 강의를 듣고있습니다. jap 활용 1을 모두 듣고 jap 기본편을 학습하려는데 갑자기 project jdk is not defined 가 뜨면서 자바 파일에 모두 빨간불이 뜨며 run 버튼도 비활성화 됐습니다. 이전부터 쓰던 java파일을 통해 jdk를 설정해주어도 여전합니다. 최근에 자바를 새로 설치한 적도 없고 이전부터 java 11버젼을 계속 써왔던터라 당황스럽습니다. 이전 프로젝트에서도, 새 프로젝트를 만들어도 같은 상황입니다. 어떻게 해야 하나요? 사진1) java 파일 옆 빨간 표시 사진2) run 비활성화 3) java 11 설정
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
express session 설정 질문드립니다
강사님 안녕하세요 질문드리기 전에, http 쿠키와 세션 강의를 먼저 복습했습니다 아래처럼 정리했습니다 서버측에서 클라이언트를 구분하기 위해 보내는 게 쿠키 쿠키의 중요한 정보를 클라이언트의 브라우저로 보내면 보안위험이 있고 그래서 쿠키의 중요한 정보는 서버에서 갖고, 클라이언트에게 안보내서, 브라우저에서는 중요정보는 못알아내도록 서버에서 관리하는 게 세션 예를 들면 4장의 session.js에서는 쿠키의 name 대신, 현재 시간을 보낸다 라고 복습하고 http 세션 코드도 복습했습니다 그리고나서 cookie2.js를 익스프레스 코드로 변환시킨 코드를이번에는 session을 이용한 코드로 변경해보려고 했습니다 const express = require('express'); const path = require('path'); const { nextTick, rawListeners } = require('process'); const morgan = require('morgan'); const cookieParser = require('cookie-parser'); const bodyParser = require('body-parser'); const session = require('express-session'); const { connect } = require('http2'); const app = express(); app.set('port', process.env.PORT || 3000); //'port' 라는 속성에 포트번호 3000번을 설정합니다. //서버의 포트를 3000번으로 지정합니다. app.use(morgan('dev')); //app.use(morgan('dev')); //쿠키를 객체화 시킵니다. app.use(cookieParser('zerochopassword')); //cookieparser를 사용하기 위해 //app.use('/',express.static(__dirname, 'kkk')) app.use(express.static(path.join(__dirname, 'kkk'))) app.use(express.json()); app.use(express.urlencoded({extended: true})); //post요청에 의한 req.body를 사용하기 위해서 console.log(path.join(__dirname, 'kkk')) //login 경로의 경우입니다. app.get('/login', (req, res, next) => { req.cookies // 쿠키 객체화 const expires = new Date(); expires.setMinutes(expires.getMinutes() + 5); res.cookie('name', encodeURIComponent(req.query.name),{ expires: expires, httpOnly: true, path: '/', }) // app.use(session({ // name: 'connect.sid', // resave: false, // saveUninitialized: false, // secret: 'zerochopassword', // cookie:{ // expires: expires, // httpOnly: true, // path: '/', // }, // })); // req.session.id = req.query.name; res.redirect('/'); }); app.get('/', (req,res)=>{ console.log("req.url "+req.url); if(req.cookies.name)//name이라는 쿠키가 있는 경우입니다. { //res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' }); res.send(`${req.cookies.name}님 안녕하세요`);//쿠키에 넣은 이름이 웹페이지에 출력됩니다 } else{ //로그인도 아니고, 쿠키도 없는 경우입니다. //next(createError(404)); try { // console.log("진입"); //res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' }); //익스프레스에서는 writeHead를 쓰면 안된다 에러가 생긴다 //res.send( ) 할 때 이미 자동으로 res.status().send() 이런 식으로 헤더를 설정해준다 //res.sendFile(path.join(__dirname, '/cookie2.html'));//cookie2.html 파일을 클라이언트에게 보내준다 //console.log(err.status) console.log("진입"); res.setHeader('Content-Type', 'text/html'); //익스프레스에서는 writeHead를 쓰면 에러가 생긴다 그러므로 setHeader를 써라 res.sendFile(path.join(__dirname, 'cookie2.html')); //cookie2.html 파일을 클라이언트에게 보내준다 } catch (err) { // res.writeHead(500, { 'Content-Type': 'text/plain; charset=utf-8' }); // res.end(err.message); next(err); //콜백함수에 err 라는 인자가 있는 app.use로 이동한다 } } }); // app.get('/:id',(req,res)=>{ // console.log("req.url "+req.url); // console.log("req.params.id "+req.params.id); // res.send(`Hello ${req.params.id}`); // }) //아래는 에러처리입니다. app.use((req,res,next)=>{ // 찾는 경로가 없으면 get을 다 지나서 use로 온다 console.log("req.url "+req.url); next(createError(404)); //찾는 경로가 없으면 404처리 }) app.use((err,req,res,next)=>{ // /favicon.ico도 여기로 간다 에러도 여기로 간다 console.log("req.url "+req.url); console.log(res.locals.message); res.locals.message = err.message; res.locals.error = req.app.get(`env`) === `development` ? err:{}; console.log(err.status) res.status(err.status ||500).send(err.message); }); app.listen(3000, () => { console.log(app.get('port'), '번 포트에서 서버 대기 중입니다!'); }); 저는 아래처럼 변경해봤습니다 공식문서도 참고했습니다 프로덕션 환경의 Express를 위한 보안 우수 사례 (expressjs.com) 그런데 로그인을 하면 세션이 안생겨서 혹시 제가 잘못 알고있는 부분을 가르쳐주시면 감사하겠습니다 + 그리고 63행과 66행에서 req.cookies.name을 req.session.id로 변경해도 에러가 해결이 안되더라구요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
${#fields.Error()}
안녕하세요 선생님. 구글링을 해도 정보를 찾을수 없어 질문드립니다. 제가 하고싶은건 bindingResult를 통해 등록한 에러 메세지를 자바 스크립트에서 쓰고싶습니다. 아래와 같이 코드를 작성해봤고 여러가지 시도를 해보았으나 작동하지않습니다. controller (등록) bindingResult.reject("loginFail","아이디 또는 비밀번호가 맞지 않습니다."); html (작동하지 않는 코드) <script th:inline="javascript"> alert([[${#fields.errors('*')}]]);</script> 다음과 같은 경우는 잘 작동합니다. controller model.addAttribute("loginFail","아이디 또는 비밀번호가 맞지 않습니다."); html <script th:inline="javascript"> alert([[${loginFail}]]);</script> alert 정상출력. --------------- ${#fields.grobalErrors()} 관련 변수는 자바 스크립트에서 사용이 불가능한가요? 사실 model을 통하여 등록하면 된다지만 코드한줄 줄이고싶은 욕심에 몇시간 알아보다가 해결하지 못하여 이렇게 질문드립니다 ㅠㅠ..
-
미해결진짜 현업에서 쓰이는 직장인의 실무 엑셀 - 데이터 가공부터 분석까지
쿼리 업데이트시 데이터 병합 오류가 뜨는데 원인을 알수 있을까요 ?
한 폴더에서 매출데이터를 통합하는 쿼리를 만들고 있는데요, 모든 raw데이터 양식을 동일하게 만들었음에도 불구하고 아래와 같은 에러메세지가 뜨는데, 이유와 해결방법을 알수 있을까요 ?? [DataFormat.Error] Date 값에 제공된 입력을 구문 분석할 수 없습니다.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
깃헙 권한 요청드립니다.
인프런 아이디 : kr.bae@lgcns.com인프런 이메일 : kr.bae@lgcns.com 깃헙 아이디 : ssnvan@naver.com깃헙 Username : ssnvan감사합니다.
-
미해결스프링부트 시큐리티 & JWT 강의
db에 ROLE 등록할 때 질문입니다
ROLE_ADMIN ROLE_USER 이렇게 ROLE_ prefix를 꼭 붙여야 하는건가요? 그렇다면 이유가 궁금합니다 좋은 강의 감사합니다 선생님
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
강의의 코드를 github에 올려도 되나요?
https://github.com/mun9769/UnityMultiGame 입사 포트폴리오용은 아니고 단순히 개인공부를 정리하고 싶어서 github에 올렸습니다. 문제가 될 시 private으로 바꾸겠습니다.
-
미해결Vue.js 시작하기 - Age of Vue.js
모듈화를 위한 여러가지 패턴들에 관한 질문
안녕하세요, 판교님 질문있어서 들어왔습니다. JS가 그 동안 역사적으로 OOP를 구현하기 위해서 여러가지 시도를 많이 한 것 같습니다. 판교님 코드를 보니 다시 한번 이해가 되었는데요, ES5에서 많이 했었던 모듈패턴의 IIFE패턴을 소개해 주셨는데, 이번에 MDN사이트가 개편됐습니다, 확인이 늦어서 그런지 모르겠네요. 아무튼 판교님께서 소개해주신 IIFE 코드가 있었고, 더 아래에 생성자 함수를 통해서 reactivity 를 구현하려는 코드가 더 있더라구요, 그래서 이제 판교님 생각에 둘의 어떤 특별한 차이가 있는지 궁금했습니다, 깊게 생각하지 않지만, 판교님께서는 이러한 부분에 대해서 어떻게 생각하시는지 궁금합니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
권한 요청드립니다! (+질문)
인프런 아이디 : @taejun1999 인프런 이메일 : taejun1999@naver.com 깃헙 아이디 : taejun1999@gmail.com 깃헙 Username : SakuraKitsune+ 추가로 질문 있습니다.영상에서는 TSLint를 설치하라고 해주셨는데제가 알기로는 TSLint는 더이상 지원을 하지 않아서ESLint를 사용해야 하는 걸로 아는데 ESLint를사용해도 문제가 되거나 그러지는 않을까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
zybo 보드에서 파형문제
안녕하세요. zybo보드 구매해서 강의보면서 따라하고 공부중 입니다. 테스트중 스코프로 파형을 찍어 봤는데요 그림처럼 스위칭 노이즈로 보이는 노이즈가 상당히 크게 발생됩니다. 이런 노이즈등은 FPGA 설계의 문제 아니면 다른 원인이 있는건지 또는 좀더 안정시킬 수 있는 방법이 있는지 궁금합니다. 직접적인 강의의 코드질문이 아니라서 죄송합니다만 강의 내용중에 하드웨어 직접 다운로드하고 이를 검증하는 부분들이 빠져 있는것 같아서 조금 아쉽네요. ^ ^; 미리 감사드립니다.
-
해결됨MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
useEffect 2번 실행되는 이유
안녕하세요. 강의를 잘 듣고있는 학생입니다. 다만 선생님과 다른 부분이 궁금하여 질문하게 되었는데요, upload에서 list로 페이지 이동할 때 axios를 이용해서 요청 성공과 실패를 확인하는 부분인데요. useEffect 조건에 빈 배열을 넣을 경우 실행코드가 한 번만 뜨는 걸로 알고있었는데 자꾸 저한테는 실행코드인 alert창이 두 번씩 뜹니다.. 왜 이러는 걸까요? 현재로써는 코드에서는 다른 부분이 전혀 없어보입니다. 혹시 해결 방법을 아시는지 도움을 요청해봅니다..!!
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
DataBinding을 통해 버튼의 text를 바꿔보고 싶은데 생각처럼 동작하지 않습니다.
안녕하세요 선생님의 데이터 바인딩 강의를 보던 중 버튼을 누를 때마다 버튼의 텍스트를 바꿀 수는 없을지 해서 코드를 작성해봤습니다. 인터넷을 뒤져보니, xml에 <data> 와 그 안에 <variable> 을 잘 정의해주면 된다고 해서 <variable>의 name을 "activity" 라고 정하고 type은 기본으로 생성해준 MainActivity를 설정했습니다. 그리고 Button의 android:text의 값을 @{activity.text}라고 넣어줬습니다.(이후 MainActivity.kt 에서 생성해주었습니다.) MainActivity.kt에서 text라는 이름을 가진 변수를 "0" 으로 초기화하고, xml에서 설정한 id를 binding 변수에서 찾아 text에 클릭할 때마다 1씩 증가하는 변수를 toString을 통해 넣어줬습니다. 혹시 몰라 Toast를 통해 text를 띄워보았습니다. 하지만 생각처럼 되지는 않았는데요. 혹시 왜인지 알 수 있을까요? [XML] <?xml version="1.0" encoding="utf-8"?> <layout> <data> <variable name="activity" type="com.example.databinding_ex.MainActivity" /> </data> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <Button android:id="@+id/testBtnId" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" android:text="@{activity.text}" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> </androidx.constraintlayout.widget.ConstraintLayout> </layout> [MainActivity.kt] package com.example.databinding_ex import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.Toast import androidx.databinding.DataBindingUtil import androidx.databinding.ObservableField import com.example.databinding_ex.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding private var clickedCount = 1 var text = "0" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 2. with dataBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_main) binding.testBtnId.setOnClickListener { text =(clickedCount++).toString() Toast.makeText(this, text, Toast.LENGTH_LONG).show() binding.invalidateAll() } } }
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
Pem(키페어) 파일을 다른 컴퓨터에서 사용할 경우 질문입니다.
안녕하세요 제로초님. 개인적으로 포트폴리오 사이트를 만드는 중입니다. 궁금한것이 현재 강좌까지 진행 했다는 가정하에 git clone, 코드를 수정해서 깃헙에 commit, push도 하고, ssh 접속 및 ubuntu 경로에서도 git pull 등 전반적인 작업을 두 컴퓨터에서 진행하고 싶습니다. git clone을 한 상태여서 pem(키페어) 파일 같은 경우는 git.ignore로 인해서 clone을 해도 pem 파일은 없는 상태여서 ssh 접속을 못하는 상태입니다. pem 파일안에 들어있는 코드를 복사해서 다른 컴퓨터에 pem 파일을 만든 뒤 복사한 코드를 붙여넣기 해도 ssh 접속이 가능할까요? 개인 사정 상 두개의 컴퓨터에서 작업을 진행해야 해서요!
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
JPA PK String 관련 문의드립니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 김영한 강사님의 강의를 듣고 프로젝트에 JPA를 적용해보려고 합니다. 기본키의 값을 Long(정수)타입이 아니라 String 타입으로 받고싶은데 JPA에서 따로 지원하는 기능이 있는 지 문의드립니다. ex) YYYYMMDD + 시퀀스값(숫자) 좋은 강의 해주셔서 항상 감사드립니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃헙 권한 요청드립니다.
인프런 이메일 : qoskdud15@daum.net 인프런 아이디 : BaeNayeong 깃허브 아이디 : tjrdnjs1609@hanmail.net 깃허브 Username : tjrdnjs1609
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
설정대로 올렸는데 api-gateway가 ocalhost로 붙으려고해요;
안녕하세요. 수업 잘 듣고 있습니다. local test에서는 잘 되던 게 여기서 막히네요; 혹시 어떤 설정때문에 docker에서 설정한 uri로 안넘어가는 걸까요? 오류 로그는 아래에 남기겠습니다 2022-05-08 23:44:26.208 INFO 1 --- [or-http-epoll-1] c.m.s.filter.GlobalFilter : Global filter baseMessage: Spring Cloud Gateway Global Filter 2022-05-08 23:44:26.208 INFO 1 --- [or-http-epoll-1] c.m.s.filter.GlobalFilter : Global Filter Start: request id -> 983024ba-8 2022-05-08 23:44:26.213 ERROR 1 --- [or-http-epoll-1] a.w.r.e.AbstractErrorWebExceptionHandler : [983024ba-8] 500 Server Error for HTTP POST "/user-service/users" io.netty.channel.AbstractChannel$AnnotatedConnectException: finishConnect(..) failed: Connection refused: localhost/127.0.0.1:38991 Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Error has been observed at the following site(s): *__checkpoint ⇢ org.springframework.boot.actuate.web.trace.reactive.HttpTraceWebFilter [DefaultWebFilterChain] *__checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain] *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] *__checkpoint ⇢ HTTP POST "/user-service/users" [ExceptionHandlingWebHandler] Original Stack Trace: Caused by: java.net.ConnectException: finishConnect(..) failed: Connection refused at io.netty.channel.unix.Errors.newConnectException0(Errors.java:155) ~[netty-transport-native-unix-common-4.1.73.Final.jar!/:4.1.73.Final] at io.netty.channel.unix.Errors.handleConnectErrno(Errors.java:128) ~[netty-transport-native-unix-common-4.1.73.Final.jar!/:4.1.73.Final] at io.netty.channel.unix.Socket.finishConnect(Socket.java:320) ~[netty-transport-native-unix-common-4.1.73.Final.jar!/:4.1.73.Final] at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.doFinishConnect(AbstractEpollChannel.java:710) ~[netty-transport-classes-epoll-4.1.73.Final.jar!/:4.1.73.Final] at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.finishConnect(AbstractEpollChannel.java:687) ~[netty-transport-classes-epoll-4.1.73.Final.jar!/:4.1.73.Final] at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.epollOutReady(AbstractEpollChannel.java:567) ~[netty-transport-classes-epoll-4.1.73.Final.jar!/:4.1.73.Final] at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:470) ~[netty-transport-classes-epoll-4.1.73.Final.jar!/:4.1.73.Final] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) ~[netty-transport-classes-epoll-4.1.73.Final.jar!/:4.1.73.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[netty-common-4.1.73.Final.jar!/:4.1.73.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.73.Final.jar!/:4.1.73.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.73.Final.jar!/:4.1.73.Final] at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
BumbleBee 에서 파이어베이스 연결 헤매시는 분들!!
https://flow9.net/bbs/board.php?bo_table=thisisandroid&wr_id=129 아래 링크 참고하셔서 하시면 됩니다~ 그리고 구글링은 bumblebee firebase connect 대충 이런식으로 검색해서 찾으시면 해결 됩니당~
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
혹시 이 방법으로 풀어도 괜찮을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. import java.util.*; public class 문자열압축 { public static String solution(String str){ String answer = ""; char temp=' '; int num = 1; str+=" "; for(int i=0;i<str.length();i++){ if(temp==str.charAt(i)){ num++; }else{ answer+=temp+Integer.toString(num); num=1; } temp=str.charAt(i); } answer=answer.replaceAll("1","").trim(); return answer; } public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str = scan.nextLine(); System.out.println(solution(str)); } } replaceAll, trim을 사용하여 출력을 받았고 이전에 저장해준 값을 가져와서 쓰는 방식으로 구현하였습니다.