묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
information_schema.tables 와 information_schema.columns에 관해 질문드립니다.
먼저 좋은 강의 늘 감사드립니다. 실무를 해본적은 없고 선생님 강의를 차근차근 따라가고 있는 중인데요, 순차적 메타데이터 목록화시에 information_schema.tables의 역할이 좀 애매한거같아서 여쭤봅니다. 테이블 네임에 관한 정보는 information_schema.columns에도 있더라구요. 그럼 information_schema.schemata에서 db name을 목록화 시킨 후에 바로 select table_name, column_name from information_schema.columns where table_schema='board' 이런식으로 table과 column을 한번에 목록화 시키는것이 더 효율적이지 않나요? 실무에서는 저 과정을 스킵했을때 문제가 되는경우가 있나요? 감사합니다.
-
미해결홍정모의 따라하며 배우는 C언어
안녕하세요
제가 실수로 어쩌다보니 x86 x64 두가지의 방식으로 빌드했는데요. x86으로 할때는 아무 에러 안뜨는데 x64로 했을때는 warning C4477: 'printf' : format string '%u' requires an argument of type 'unsigned int', but variadic argument 1 has type 'size_t' message : consider using '%zu' in the format string 그리고 C6328 Size mismatch:'unsigned_int64' passed as_Param_(2) when 'int' is required in call to 'printf'. 이런게 뜨는데요 Visual Studio IDE에서 x86이랑 x64이 기능의 역할이 뭔가 많이 다른가봐요? 그리고 혹시 Visual Studio IDE 도구들을 좀 더 자세하게 설명하는 그런 사이트 아시면 알려주실 수 있을까요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
행렬 분해 질문 드립니다!
안녕하십니까 선생님! 좋은 강의 감사하단 말씀 먼저 드리겠습니다~^^ 행렬분해 강의를 듣던중 궁금한 점이 생겨 질문드립니다.. 원본행렬로 부터 R = P * Q.T , 확률적 경사 하강법을 통해서 P와 Q라는 행렬로 분해가 되는것 이해가 됩니다. 하지만 factor의 차원을 정하는것? factor의 수? 해당 슬라이드와 교재에서는 factor1, factor2, 2개의 잠재요인으로써 P(4x2) Q(2x4) 행렬로 분해를 하였는데 당연히 저차원으로 분해를 하는 것이기에 M, N보단 작을 것이겠지만 굳이 (K=2)2차원으로 행렬분해를 하는 이유가 있는지.. 실제로는 User의 수와 Item의 수가 굉장히 클텐데 이 경우에도 K의 값은 증가 하나요? 따라서 원본행렬을 구하는 것이 목표이기에 적합한 K가 있는지 궁금합니다. 딥러닝 모델 구성에서 hidden layer의 수나 Node의 수를 결정하는 것처럼 경험적인 것인지 궁금합니다.. 감사합니다!
-
미해결파이썬 사용자를 위한 웹개발 입문 A to Z Django + Bootstrap
생성 및 수정 페이지 사용시 302 에러
새로만든 포스트 생성 페이지나 수정 페이지를 통해 게시물을 생성하거나 수정하려고 하면 아래와 같은 오류가 발생합니다. "POST /blog/6/update/ HTTP/1.1" 302 0"POST /blog/create/ HTTP/1.1" 302 0 게시물이 생성되는 것과 수정되는 것에는 문제가 없는데 302가 떠서 이게 뭔가하고 살펴보니 head_image는 새로 생성할수도, 변경할 수도 없습니다. 제가 어딘가에서 오타를 낸 걸까요?
-
미해결파이썬 사용자를 위한 웹개발 입문 A to Z Django + Bootstrap
views.py의 클래스명과 템플릿의 관계에 대해 이해가 잘 안됩니다.
views.py에서 PostCreate와 PostUpdate 클래스가 템플릿과 어떻게 연결되는지 이해가 되지 않습니다. PostList나 PostDetail은 post_list, post_detail을 자동으로 찾는다고 이해하고 있었는데,PostCreate와 PostUpdate는 post_create, post_update 없이 템플릿이 자동으로 지정된거 같아 혼란스럽습니다. 클래스가 어떻게 템플릿을 찾는지 설명해주실수 있을까요? 그리고 PostListByCategory는 post_list_by_category템플릿을 찾아야 하지만 by_category부분이 없어 post_list.html을 템플릿으로 삼는다고 이해하고 있는데 이게 맞는건가요?
-
해결됨스프링 핵심 원리 - 기본편
BeanDefinition을 이해하기-단편
말하자면, xxxBeanDefinitionReader가 java code 및 xml을 '번역'하여 BeanDefinition이라는 단일 표현체를 만드는 것이군요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
엇..저도 같은현상이...
이제 마지막부분에 로그인을 하려고 하니까 로딩중 만돌아가고 프로필이 뜨지 않습니다. 리덕스데브툴로 확인하니까 사가로 넘어가지가 않은거 같아요. 깃허브 채널 4로 비교해봐도 다른점을 못찾겠는데 왜그럴까요..
-
미해결Vue.js 시작하기 - Age of Vue.js
블로그에 내용정리
안녕하세요 캡틴! 수업을 듣고 배운 것을 종합 정리해서 블로그로 올릴려고 했는데 이미 누가 질문으로 물어봤더라구요. 출처만 잘 남기면 괜찮다고 하셔서 저도 그냥 바로 올렸는데 생각해보니 원작자에게 직접 허락을 받는게 맞는거 같아서 죄송스럽게도 사후보고(?)형태로 요청을 드리게 되었습니다. 혹시 블로그에 내용 정리를 업로드 해도 괜찮을까요? 강사님 강의랑 강사님께서 참고로 올려주신 블로그를 보고 나름 정리했습니다. 출처도 전부 적었구요. 혹시 문제가 된다면 삭제하겠습니다 ㅠㅠ
-
미해결반응형 웹사이트 포트폴리오(Architecture Agency)
안녕하세요 iframe css 에 대한 질문입니다.
안녕하세요, iframe 제이쿼리 연결해서 모달창 띄우는 부분에서 질문이 있는데요, 강의하신 내용대로 아래와 같이 수정하면 html 페이지 링크했을때는 괜찮은데 이미지를 링크하면 이미지도 화면에 꽉차게 뜨는데요, 혹시 이미지는 원래 기본설정대로 두고 html페이지에만 css 적용시킬 방법이 있을까요? 제작자 깃허브 보면 <a href="#" data-featherlight="myimage.png">Open image in lightbox</a> <a href="#" data-featherlight="myhtml.html .selector">Open ajax content in lightbox</a> <a href="#" data-featherlight="<p>Fancy DOM Lightbox!</p>">Open some DOM in lightbox</a>이런식으로 나뉘어져서 써있긴 한데 이렇게 해봐도 창은 전체화면 크기입니다. ㅠㅠ .featherlight .featherlight-content { position: relative; text-align: left; vertical-align: middle; display: inline-block; overflow: auto; padding: 0; border-bottom: 25px solid transparent; margin-left: 0; margin-right: 0; max-height: 100%; background: #fff; cursor: auto; white-space: normal; width: 100%; height: 100%; }
-
미해결스프링 웹 MVC
@SessionAttributes와 @ModelAttribute 질문있습니다!
--sampleController -- SampleControllerTest 핸들러 메소드 8부 강의를 듣고 있었는데 test잘 통과하던 createEvent 함수가 sampleController class에 sessionAttributes("event") 애노테이션을 붙이니깐 createEvent 함수가 실행되지 않았습니다. --console Error 여기 강의 질문에서와 구글링 해봐서 나름 찾아본 결과, ModelAttribute 애노테이션을 쓰면 sessionAttributes("event")에서 있는 지 확인해보는 데 처음에 없으면 에러를 뱉는다. 였습니다. 그래서 SampleController 클래스에서 @ModelAttribute 선언 대신에 주석 단 위치에 model.addAttribute("event") 하니깐 test 가 에러없이 통과하는 것을 확인했습니다. ModelAttribute애노테이션을 쓰면 왜 createEvent test함수가 통과하지 못 하는 이유와 이것을 다른 방법으로 해결할 수 있는 지 궁금합니다. 간단하게라도 참고사항이나 가이드 주시면 감사하겠습니다!
-
해결됨스프링 핵심 원리 - 기본편
메소드 인자
안녕하세요. ^^ 이번 강의에서 구현한 메소드 중 하나인 discount()에 관해 질문드립니다. 스펙은 int discount(Member member, int price) 이었는데요, discount() 내에서는 회원 등급.. member.getGrade()만 사용하는데 Grade 타입이 아닌 Member 타입 객체를 받는 이유가 궁금합니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] 번외편: ASP.NET Core 심화편
ConfigureServices 질문
호스트가 서비스 컨테이너를 생성하고 ConfigureServices 메서드를 사용하여 서비스 컨테이너에 서비스를 등록한다고 알고있습니다. ( 틀릴 수도 있어요.)강좌에서 ConfigureServices 메서드안에 생명주기가 있는 서비스를 넣는걸 보고 궁금해졌는데 Singleton 으로 만든 서비스는 앱 전체에서 하나만 생성되어 유일하게 사용되는것이고 나머지 Scoped 같은 것들은 HTTP 요청이 들어올 때 마다 새로운 서비스가 생성되어 사용되는건가요?
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
갑자기 복습하다가 오류가 떴습니다
안녕하세요 질문이 있어서 질문 남깁니다. 강의를 들을 때는 다 잘됐었는데 복습을 하는도중 loc부분만 다 에러가 뜹니다. 갑자기 왜 그러는지 이유를 모르겠습니다.
-
미해결CSS Flex와 Grid 제대로 익히기
flex 궁금합니다
flex 강의 잘 듣고 있습니다! 저기 메뉴 글자 product의 t가 안떨어 지도록 할 수 있는 방법이 궁금합니다 ㅠㅠ
-
미해결iOS/Android 앱 개발을 위한 실전 React Native - Basic
npm --version 6.4.1
안녕하세요, 좋은 강의 감사합니다. 제 mac 으로 npm --version 확인 시 6.4.1으로 뜨는데, 강의에는 6.13.7 버전입니다. 혹시 이 버전 다른 게 개발 환경에 영향이 있을까요? 감사합니다.
-
미해결몇 줄로 끝내는 인터랙티브 웹 개발 노하우 [초급편]
죄송한데 질문좀 드릴게요 ㅠ
x y 전역변수 0으로 초기화 해야 작동이 되는 이유가 궁금합니다. 숫자 값이 있어야 리 퀘스트 프레임이 작동되는 건가요?ㅠ 아그리고 이벤트리스너는 클라이언트만 가져오는 역할을 하는건가요? 마우스무브는 리스너에 있는데 루프함수에서 작동되는 원리를 몰라서요 ㅠ 초보라 .. 죄송합니다..
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
압축파일관련
강의와 관련 압축파일을 푸는데 파일이름이 너무 길다며 약 920개 정도의 파일이 압축해제가 안되었다고 뜨는데... 이게 정상적인가요..? 이런경우는 처음이라 질문드려요
-
미해결Vue로 Nodebird SNS 만들기
로그인 관련
요즘 자주 질문드리네요~ :) 해당 강좌를 질문을 통해서 무사히~ 로컬 회원가입, 로그인, 로그아웃이 되어서 SNS 로그인으로 넘어가고 있습니다. express passport를 이용한 google 인을 하고 싶어서 만들어봤는데 뭔가 하나가 부족해서 질문 남깁니다. 인터넷 stackoverflow에서 자료가 너무 없어서 passport.org에서도 자료를 최대한 찾아봤는데 해결이 안되네요.. 제 생각에는 1. HTML 에서 <a href=''> Google login </a> 로 트리거 하고 2. backend에서 get('/google') 로 들어오면 해당 scope를 가지고 패스포트로 strategy로 보낸 후 3. 인증 처리 이후 관련 user 정보를 google에서 받고 4. user 정보를 내 database에 저장한 후 5. 콜백 처리후 redirect로 프론트로 보내서 6. nuxtServerInit 함수로 db에 저장된 것을 불러와 store에 다시 저장후 로그인 인증을 유지한다. 여기까지 인데~ 문제점이 많습니다. 4번에 database 저장하는 것이 패스워드가 없어서 기존에 있던 User Model이 (nickname, email, password)인데 password를 넣을수가 없어서 에러가 납니다. 그래서 임의로 1111을 넣었는데 작동은 잘되는데 이건 아닌 것 같아서~ 어떻게 해야 하는지 모르겠네요. 관련 자료에 대해서 zerocho.com의 facebook을 봤는데 조금 달라서 잘 되지 않고 있습니다. Facebook 도 해보고 싶은데 제가 하는 방식과는 조금 달라서 난감한 상황이라 문의 드립니다. 1. backend/routes/auth.js const express = require('express'); const bcrypt = require('bcrypt'); const passport = require('passport'); const db = require('../models'); const { isLoggedIn, isNotLoggedIn } = require('./middlewares'); const router = express.Router(); router.get('/', (req, res)=>{res.send('logout')}) router.get('/failed', (req, res)=>{res.send('failed to log in')}) router.get('/good', isLoggedIn, (req, res)=>{ res.redirect('http://localhost:3000/setup') res.send(`welcome to ${req.user.displayName}`) }) //1. a tag 를 통해서 '/google' 로 오면 passport-setup.js 로 profile 정보를 가지고 감(id, password, email) router.get('/google', passport.authenticate('google', { scope: ['profile', 'email'] })); //6 req.user 정보가 안생기면 '/auth/failed', 정보가 생기면 '/auth/good' 으로 redirect 됨 router.get('/google/callback', passport.authenticate('google', { failureRedirect: '/auth/failed' }), function(req, res) { console.log(req.user) res.redirect('/auth/good') }); router.get('/google/logout', (req, res)=>{ req.session = null req.logout() res.redirect('/') }) 2. backend/passport/passport-setup.js const passport = require('passport'); const User = require('../models/User'); const GoogleStrategy = require('passport-google-oauth20').Strategy; const db = require('../models/') const bcrypt = require('bcrypt') //4 구글 아이디를 들고 쿠키를 싦음 passport.serializeUser(function(user, done){ done(null, user) }) // 5 user 정보를 보내줌 req.user passport.deserializeUser(async (user, done)=>{ try{ const newUser = await db.User.findOrCreate({ where:{ email: user.emails[0].value, username: user.displayName, password: '1111' } }) return done(null, user) }catch(error){ console.log(error) return done(error) } }) // passport.deserializeUser(function(user, done){ // console.log('google-user', user) // done(null, user) // req.user // }) //2 '/google'에서 넘어옴 아이디 패스워드 체크 후 인증이 되면 callback URL로 보내줌 passport.use(new GoogleStrategy({ clientID: "28194224462-job5pv0aswefef3s2hjqlf57tsdfsdflv956ko2r5hr.apps.googleusercontent.com", clientSecret: "lfj_aYTi6zgXe4nwefBHF1dpwefewfewfYyq", callbackURL: "http://localhost:3085/auth/google/callback" }, //3 구글 인증이 되면 해당 프로필로 구글 아이디를 User Db에서 받아옴 그리고 done으로 user 값을 받거나 err 나면 error를 보내줌 function(accessToken, refreshToken, profile, done) { return done(null, profile); } )); backend/app.js //------------------------------------------------// // BACKEND/FRONT PORT //------------------------------------------------// const backPort = '3085' const frontPort = '3000' const express = require('express') const db = require('./models') const cors = require('cors') const morgan = require('morgan') //------------------------------------------------// // ROUTER REQUIRE //------------------------------------------------// const userRouter = require('./routes/user') const authRouter = require('./routes/auth') // const widgetRouter= require('./routes/widget') // const imageRouter = require('./routes/image') // const databaseRouter = require('./routes/database') // const postRouter = require('./routes/post') // const loadPostRouter = require('./routes/loadPost') //------------------------------------------------// // PASSPORT MODULE //------------------------------------------------// const passport = require('passport') const passportConfig = require('./passport') const session = require('express-session') const cookie = require('cookie-parser') require('./passport/passport-setup') require('./passport/passport-facebook') const app = express() app.use(morgan('dev')) db.sequelize.sync({force:true} ) // db 실행 {force:true} app.use(express.json()) // express 가 json을 받기 위함 app.use(express.urlencoded( {extended: false})) // passport app.use(session({ resave: false, saveUninitialized: false, secret: 'ns747800', cookie: { httpOnly: true, secure: false, } })) app.use(cookie('ns747800')) app.use(passport.initialize()) app.use(passport.session()) passportConfig() //------------------------------------------------// // CORS FRONTEND PORT //------------------------------------------------// app.use(cors({ origin: `http://localhost:${frontPort}`, credentials: true })) //------------------------------------------------// // IMAGE STATIC FILES //------------------------------------------------// app.use('/', express.static('uploads')); //------------------------------------------------// // ROUTER API //------------------------------------------------// app.get('/', (req,res)=>{ res.send('hello wizeto') }) app.use('/user', userRouter) app.use('/auth', authRouter) // app.use('/image', imageRouter) // app.use('/widget', widgetRouter) // app.use('/database', databaseRouter) // app.use('/post', postRouter) // app.use('/loadpost', loadPostRouter) //------------------------------------------------// // LISTEN //------------------------------------------------// app.listen(backPort,()=>{ console.log(`YES backend server is ${backPort}`) }) 조금 자세히 설명해주시면 감사하겠습니다.~~~ vue - express - passport - google 관련 너무 자료가 없어요...
-
미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
PhantomJS 가 중단..
Important: PhantomJS development is suspended until further notice 라고 뜨네요. 추후 공지가 있을떄까지는 중단이라고 하는가 봅니다.
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
파이어 베이스 구글 로그인을 구현한뒤 몇가지 질문이 있습니다.
앱에서 구글 로그인을 사용하는건 편리하고 좋은거 같은데 (의미는 대충 파악하고 복붙만 했어여 구글 로그인 객체로 로그인한뒤 그 결과를 파이어 베이스 유저에 저장하면 루트 페이지에서 그 변화(로그인 상태 변화)를 감지해서 로그인 상태가 될경우 탭 페이지 출력 이런식으로 (인자값이나 토큰 설정 같은건 의미를 정확히 모르고 일단 복붙했어여 ) 그런데 이시점에서 질문이 4가지 있습니다 1.구글 파이어베이스 로그인을 구현한뒤 추가적인 계정 관련 정보를 저장해야 한다면 (전화 번호, 팔로잉 팔로우 등등) 클라우드 파이어 스토어에 nosql 형식으로 저장하나여? 2.로그인과 계정 정보(팔로잉 팔로워 등등)만 파이어베이스와 연동하고 그외는 전형적인 api 서버들과 연동하는것도 괜찮은 방식이 되나여? 3.로그인 로직은 그냥 복붙해서 써서 어렵지 않은거 같은데 orm 비슷한 로직들이 전형적인 api 서버(node,장고 등)에 대한 호출과는 조금 다른것 같아서 좀더 어렵게 느껴지는데 전형적인 api 서버 + flutter 강의는 아직 안찍으셨나여? 4.책도 구입하는게 좋을까여? (플루터와 다트 기초가 부족해서여 그리고 1,2,3의 답이 혹시 책에 있을까여?) 알려주시면 감사여 !