묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결청와대 청원 데이터 시각화
질문이 있어요
혹시 완성된 코드 (구글 웹크롤링, WordCloud) 어디서 다운받을수 있나요? 그리고 제가 처음에 구글드라이버를 설치한후 파일을 어디다가 둬야하나요?
-
미해결스프링 핵심 원리 - 기본편
@Qualify와 @Autowired 쓰이는 경우의 수가 궁금합니다.
안녕하세요. 강의 정말 잘 보고 있습니다. 다른 게 아니라 @Primary, @Qualifier 활용 부분을 처음에 설명하실 땐 @Qualify 나 직접 이름을 지정하는 방식을 사용해서 서브 커넥션 빈을 획득한다고 하셨는데요. 그럼 @Qualify 와 @Autowired 필드명 직접 변경 하는 두 경우 중에는 어떤 것을 많이쓰나요? 비슷하게 쓴다면 이 두개는 각자 사용하는 경우가 어떻게 다를까요?
-
미해결웹 게임을 만들며 배우는 React
숫자야구 질문!
안녕하세요 제가 숫자야구 코드를 이렇게 짰는데요 result가 숫자야구라는 h1 아래에 표시되게 하고 싶어서 이렇게 만들었어요. setTries에 새로 추가하는 객체의 result 내용이 setResult에 넣는 내용과 같아서 result:result로 변수를 직접 가져다 썼는데 처음 시도할 때 화면에 아래와 같이 표시되더라구요. 제목 밑에는 result에 내용이 잘 담겨서 출력이 되는데 왜 li태그 안에는 내용이 안나오는지 모르겠어요ㅠㅠ 그리고 또 하나 의문이 핫 리로딩을 사용하면 dist폴더에 app.js가 생성이 안되는데도 에러 없이 결과가 출력되던데 왜 그런지 알 수 있을까요? 좋은 강의 감사합니다!
-
미해결스프링 프레임워크 핵심 기술
IoC/DI와 POJO의 관계
안녕하세요! 스프링 공부 하다가 스프링이 추구하는 철학에 대해 궁금한 부분이 생겨 질문드립니다. 스프링 3대 철학은 IoC/DI, AOP, PSA이고 이 세가지 철학을 통해 궁극적으로 POJO와 같은 특정 서비스에 의존하지 않는 클래스를 만들어내는 것을 추구한다고 이해하고 있습니다. 다시 말해 3가지 개념을 잘 적용하면서 따라가다보면, 그 결과로써 POJO 클래스를 얻을 수 있다고 생각됩니다. 여기서 질문은, AOP나 PSA의 경우에는 클래스로부터 부가로직을 걷어내고 특정 기술을 추상화함으로써 클래스에 비즈니스 로직만을 남겨두기 때문에, POJO를 만드는 것과의 연결성이 직관적으로 이해가 되는데 반해, IoC/DI는 어떠한 역할을 하기에 POJO를 생성하는데 도움이 되는 것인지 그 연결성이 잘 이해가 되지 않습니다. 스프링의 IoC 컨테이너를 통해 많은 객체들의 라이프사이클 및 의존관계를 용이하게 설정할 수 있다는 장점은 떠오르지만, 이것이 어째서 POJO를 만드는 것인지 아무리 생각하고 찾아봐도 잘 이해가 안 되는 것 같습니다. 어떠한 부분에서 IoC/DI라는 개념이 POJO로 연결된다고 생각할 수 있을까요?
-
미해결자바 스프링부트 활용 웹개발 실무용
게시물 목록 jsp 를 보는 곳이 있을까요?
안녕하세요 강의를 잘 따라가는 중인데... 강의 후반부터는 깃헙에 소스가 제공되지 않아 겨우겨우 화면을 보고 타이핑중인데요. taglib 강의의 게시물목록관련 jsp는 전체가 보이지 않아 따라할 수 가 없네요 ㅜㅜ 혹시 어딘가에 소스가 올려져 있을까요?
-
미해결TensorFlow 2.0으로 배우는 딥러닝 입문
tf.keras.optimizers.schedules.ExponentialDecay와 같은 lr 스케줄러를 사용해야만 lr이 학습 중에 변경되는 것인가요?
안녕하세요 무조건 스케줄러를 설정해야만 lr이 변경되는 것인가요? 아니면 단순 옵티마이저 설정에도 내부적으로 조정을 하게 되는 것인가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
https와 stateless에 관해서 질문 드립니다.
1. https에서 공개키 방식을 이용해서 직접 메세지를 암호화하지 않는 이유가 공개키 방식을 사용하면 암호화하고 복호화하는 속도가 느리기 때문에 상대적으로 속도가 빠른 대칭키 방식을 사용한다고 알고 있습니다. 그런데 https도 http이고 그러면 stateless 특징을 갖고있어서 데이터를 한번씩만 주고 받으면 어차피 끊어질텐데 굳이 대칭키 방식으로 데이터를 주고 받는 이유가 뭘까요? https에서는 stateless 특징이 적용되지 않는건가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
세션에 관해서 질문드립니다.
1. https에서 세션 키라고 해서 하나의 통신 세션에서 모든 메시지를 암호화하기 위해 사용되는 1회용 대칭키라고 하는게 있다는 것을 알았는데요. 여기서 세션 키에 세션이 강의에서 나온 세션과 같은 의미로 사용되는게 맞나요??
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
전체 코드는 어떻게 들어가야 볼 수 있나요??
파일을 못 찾겠습니다 ㅠㅠㅠㅠ
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
LocalAuthGuard 를 사용하고 있는데요, 권한 에러가 뜹니다....
저는 지금 백엔드만 만들어서 실습하고 있는데요, 포스트맨으로 로그인을 시도해 보고 있습니다. 근데, 계속해서 권한 에러 401이 뜨고 있습니다. 제가 볼때는 LocalAuthGuard에서 canActivate 를 통과하지 못하는 것 같습니다. context를 로그 찍어봐도 [Object] 라고만 뜹니다. 리퀘스트가 제대로 못넘어가 고 있는 것 같은데 어떻게 해결할 수 있을까요?
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
db 관련 문의입니다~
안녕하세요~ db 관련 질문이 있어 글 남깁니다! class Article(models.Model): writer = models.ForeignKey(User, on_delete=models.SET_NULL, related_name='article', null=True) title = models.CharField(max_length=200, null=True) content = models.TextField(null=True) image = models.ImageField(upload_to='article/', null=True) created_at = models.DateField(auto_now_add=True, null=True) 위와 같이 models.py를 정의를 해줬구요, 그리고 makemigrations, migrate 명령어를 통해 적용 했습니다. 적용 후에 보니까 from django.conf import settings from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Article', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('writer', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='article', to=settings.AUTH_USER_MODEL)), ], ), ] 이렇게 파일이 생성되었더라구요, 근데 article 을 create 해보니까 title 컬럼이 없다는 에러가 나왔구요, 그래서 다시 makemigrations, migrate 명령어를 통해 적용 했습니다. 그래서 아래와 같은 파일이 하나 더 생겼습니다. from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('articleapp', '0001_initial'), ] operations = [ migrations.AddField( model_name='article', name='content', field=models.TextField(null=True), ), migrations.AddField( model_name='article', name='created_at', field=models.DateField(auto_now_add=True, null=True), ), migrations.AddField( model_name='article', name='image', field=models.ImageField(null=True, upload_to='article/'), ), migrations.AddField( model_name='article', name='title', field=models.CharField(max_length=200, null=True), ), ] 이렇게 되니까 create 가 잘 적용되더라구요.... 음...이렇게 진행을 해도 문제가 없는 것인지, 왜 문제가 발생한 것인지 궁금하기도 합니다....
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Local 좌표계와 World 좌표계에 대한 질문입니다.
안녕하세요! 앞선 질문들에서 어느정도의 해답을 얻었지만 제가 맞게 이해했는지 궁금하여 질문 드립니다. TransformDirection, 즉 Translate를 이용하지 않으면 해당 좌표계(Vector3.forward, back 등..)는 local 좌표계지만 월드 좌표계로 인식되어 키 입력 시 월드 좌표계로 동작합니다. 이후, TransformDirection 혹은 Translate를 이용하면 local 좌표계를 world 좌표계로 변환시켜, 즉 world 좌표계가 인식할 수 있게 통역을 해주어 local기준(gameObject기준)으로 키 입력이 된다고 이해했습니다. 제가 이해한 것이 맞는지, 혹은 어느 부분이 틀렸는지 궁금합니다~! + 추가 질문입니다. transform.position += transform.TransformDirection(Vector3.forward * Time.deltaTime * _speed); 에서 TransformDirection을 이용하면 local 좌표계가 world 좌표계로 변환된다고 하였는데, transform.position += transform.forward * Time.deltaTime * _speed; 와 같이 transform.forward를 사용하면 변환하지 않고 바로 사용 가능합니다. 그 이유가 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
assertThrows 입력오류입니다.
assertThrows가 오류가 납니다...도와주세요... 임포트는 이렇게 했습니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
vscode에 eslint 적용
밑 질문에서 알려주신 코드대로 적용을 해봤는데, 저렇게 흐릿하게 표시가되고, 마우스를 올리면 unknown configuration setting 이라고 나옵니다 ㅠㅠ vs code 우측 하단에 ESLint 클릭하는 곳도 나오지 않습니다
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
검증 헤더
안녕하세요 , 기초적인 질문드려서 죄송합니다.. 검증 헤더 추가 할때 6:45 초에서 if-modified-since 값을 클라이언트 개발자(자바스크립트 개발자) 가 따로 넣어서 서버에 보내야되는건가요..? 서버에서 304으로 리스폰스 할때, 서버 자체에서 처리가 되는건지.. 아니면 개발자가 처리를 해야되는건가요..>?
-
미해결인스타그램 클론 - full stack 웹 개발
혹시 안내사항이 무슨 말인가요??
혹시 안내사항이 무슨 말인가요?? 그리고 선생님들이 사용하는 노션은 어떻게 해야 들어갈 수 있나요??
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
[/api/users/logout] 에러 질문: Cannot read property 'x_auth' of undefined
안녕하세요 logout 기능을 구현했는데 아래 에러가 떠서 너무 힘들어서 질문드립니다. postman으로 POST 메소드로 login에 성공하였고, 토큰이 생기는것을 확인했습니다. 그 후 바로 postman으로 GET 메소드로 /api/users/logout을 하려 하는데 아래와 같은 에러가 발생하네요 ㅠㅠ 제 깃헙 주소에서 전체코드를 보실 수 있습니다. https://github.com/kth990303/boiler-plate-prac 어디가 문제인지 잘 모르겠네요. 답변 부탁드립니다 ㅜㅜ 감사합니다. TypeError: Cannot read property 'x_auth' of undefined at auth (C:\Users\User\Desktop\web_workspace\boiler_plate\middleware\auth.js:6:29) at Layer.handle [as handle_request] (C:\Users\User\Desktop\web_workspace\boiler_plate\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\User\Desktop\web_workspace\boiler_plate\node_modules\express\lib\router\route.js:137:13) at Route.dispatch (C:\Users\User\Desktop\web_workspace\boiler_plate\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\Users\User\Desktop\web_workspace\boiler_plate\node_modules\express\lib\router\layer.js:95:5) at C:\Users\User\Desktop\web_workspace\boiler_plate\node_modules\express\lib\router\index.js:281:22 at Function.process_params (C:\Users\User\Desktop\web_workspace\boiler_plate\node_modules\express\lib\router\index.js:335:12) at next (C:\Users\User\Desktop\web_workspace\boiler_plate\node_modules\express\lib\router\index.js:275:10) at C:\Users\User\Desktop\web_workspace\boiler_plate\node_modules\body-parser\lib\read.js:130:5 at invokeCallback (C:\Users\User\Desktop\web_workspace\boiler_plate\node_modules\raw-body\index.js:224:16) at done (C:\Users\User\Desktop\web_workspace\boiler_plate\node_modules\raw-body\index.js:213:7) at IncomingMessage.onEnd (C:\Users\User\Desktop\web_workspace\boiler_plate\node_modules\raw-body\index.js:273:7) at IncomingMessage.emit (events.js:327:22) at endReadableNT (internal/streams/readable.js:1327:12) at processTicksAndRejections (internal/process/task_queues.js:80:21) 코드는 아래와 같습니다. Auth.js (auth.js:6:29는 const token=req.cookies.x_auth 부분입니다.) const { User } = require("../models/User"); const auth=(req, res, next)=>{ // 인증처리 // client cookie에서 토큰 가져오기 const token=req.cookies.x_auth; // token을 jwt로 decoding User.findByToken(token, (err, user)=>{ if(err) throw err; if(!user){ return res.json({ isAuth: false, error: true }); } req.token=token; req.user=user; next(); }) } module.exports={auth}; User.js (Token 생성, findByToken function 부분) userSchema.methods.generateToken=function(cb){ const user=this; const token=jwt.sign(user._id.toHexString(), 'secretToken'); user.token=token; user.save(function(err, user){ if(err) return cb(err); cb(null, user); }); } userSchema.statics.findByToken=function(token, cb){ const user=this; jwt.verify(token, 'secretToken', function(err, decoded){ user.findOne({"_id": decoded, "token": token}, function(err, user){ if(err) return cb(err); cb(null, user); }); }); } const User=mongoose.model('User', userSchema); // 다른 파일에서도 이 모델을 쓸 수 있도록 module.exports={ User } Index.js (/api/users/login, /api/users/auth, /api/users/logout) app.post('/api/users/login', (req, res)=>{ // 요청된 이메일을 db에서 찾는다. User.findOne({email: req.body.email}, (err, user)=>{ if(!user){ return res.json({ loginSuccess: false, message: "Unvalid email" }); } // 요청된 이메일이 db에 있다면 비밀번호 일치여부 확인 user.comparePassword(req.body.password, (err, isMatch)=>{ if(!isMatch) return res.json({ loginSuccess:false, message:"Wrong password" }); // 일치 시, 토큰 생성 user.generateToken((err, user)=>{ if(err) return res.status(400).send(err); // 토큰을 쿠키에 저장 res.cookie("x_auth", user.token) .status(200) .json({ loginSuccess: true, userId: user._id }); }); }); }); }); // auth라는 미들웨어를 추가 // request를 받으면 call back function 호출 전에 middleware실행 app.get('/api/users/auth', auth, (req, res)=>{ res.status(200).json({ _id: req.user._id, isAdmin: req.user.role===0?false:true, isAuth: true, email: req.user.email, name: req.user.name, lastname: req.user.lastname, role: req.user.role, image: req.user.image }); }); app.get('/api/users/logout', auth, (req, res)=>{ console.log(req.user); user.findOneAndUpdate({_id:req.user._id}, { token: "" }, (err, user)=>{ if(err) return res.json({ success: false, err }); return res.status(200).send({ success: true }) }) }) 아래는 postman 화면 결과입니다. +) 전체적으로 수업시간의 코드는 이해가 되는데, 어떤 의식의 흐름으로 이렇게 작성하는지 신기할 때가 많습니다. 예를 들면 쿠키에서 토큰을 가져온다 할 때 let token=req.cookies.x_auth 에서 req에 cookies에서 쿠키 이름인 x_auth로 접근하면 바로 토큰이 나온다는 사실을 몰랐음. 이런 경우는 어떤 부분을 공부해야 할까요? 전체적으로 자바스크립트 실력이 붕 뜬 느낌입니다. (초보자라 질문이 좀 이상한 것 같기도 하네요...)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
생성자를 사용안하고..
생성자를 사용하지 않고, 그냥 선언만 해서 사용해도 되는건가요? @autowired priavte MemeberService memberservice ; public void Join(){ memberservice.join(); }
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [통합편]
전자책 관련 질문
정말 정성스러운 강의 감사합니다. 전자책으로도 같은 내용의 작년판이 있던데 이 버전은 인강 버전과 내용이 많이 다른가요? 다름이 아니라, 인강은 좋지만 너무 길어서 추후에 한 번씩 생각날 때 다시 빠르게 훑어보고 싶지만 그것이 불가능하여 전자책으로 빠르게 훑어볼 수 있으면 좋겠다 싶었습니다. 근데, 이미 쓰신게 있더라고요. 그래서 내용차이가 심하지 않다면 그 전자책도 구매해서 필요할 때 빠르게 보면 좋겠다 싶어 질문드립니다.
-
미해결홍정모의 따라하며 배우는 C언어
이스케이프 언어 \b 질문입니다.
\b를 사용할때 printf("ABCDF\b\b\b\b\b")이런식으로 입력하면 처음의 A만 삭제가 되는데 printf("ABC\b\bDEF")이런식으로 사용하면 BC가 둘다 사라집니다 왜 이런현상이 발생하는ㄱ ㅓㄴ가요?