묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 케이스 작성시 @RequriedArgsConstructor를 사용하지 않는 이유 문의
주문 기능 테스트에서 @RequiredArgsConstructor를 사용하지 않고, @Autowired 필드 주입으로 일일이 넣으셨는데, 혹시 특별한 이유가 있으셨는지 궁금해서 문의 드립니다. (가령 테스트 케이스에서는 @RequiredArgsConstructor를 사용하지 않는 것이 권장된다든지...) 감사합니다 :)
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
로그인 send 오류
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 로그인 라우터 작성 후 send가 되지 않아 질문 드립니다.ㅠㅠ 혹시 제가 코드를 잘못 작성한 거 아닐까 영상을 몇 번이나 봐도 코드 오류는 아닌데.. 런해도 오류도 안 뜨구요ㅠㅠ 도움 부탁 드립니다.. 이게 index.js app.post('/login', (req, res)=> { //요청된 이메일을 데이터베이스에서 있는지 찾는다. User.findOne({email:req.body.email}, (err, user)=>{ if(!user){ return res.json({ loginSucess : false, message:"제공된 이메일에 해당하는 유저가 없습니다." }) } //요청한 이메일이 있다면 비밀번호가 같은지 확인한다. //DB에 저장된 비밀번호와 로그인 시도 시 입력한 비밀번호를 비교한다. user.comparePassword(req.body.password, (err, isMatch)=>{ if(!isMatch) return res.json({loginSuccess : false, message : "비밀번호가 틀렸습니다."}) //비밀번호까지 동일하다면 토큰을 생성한다. 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}) }) }) }) }) 이게 user.js 입니다. userSchema.methods.comparePassword = function(plainPassword, cb){ //plainPassword 1234567 | DB에 저장된 암호화된 비밀번호 ~ 가 같은지 체크해야 한다. //1234567을 암호화 한 후 비교하도록 한다. 복호화할 순 없기 때문에. bcrypt.compare(plainPassword, this.password, function(err, isMatch){ if (err) return cb(err), cb(null, isMatch) }) } userSchema.methods.generateToken = function(cb) { var user = this; //jsonwebtoken 을 이용해서 토큰을 생성하기 var token = jwt.sign(user._id.toHexString(), 'secretToken') //user._id + 'secretToken' = token //-> secretToken을 넣으면 user id 값을 식별한다. 그래서 token은 식별을 위해 기억해둬야 해서 변수로 저장한다. //'scretToken' -> user._id user.token = token; user.save(function(err, user){ if(err) return cb(err) cb(null, user) }) } const User = mongoose.model('User', userSchema) module.exports = {User} 패스워드 암호화까지는 정상적으로 됩니다!
-
미해결[입문자를 위한] QGIS로 시작하는 데이터 시각화
수업자료가 강의내용와 맞지 않는데요~~?
-1강내에 있는 수업자료와 강의 내용이 맞지 않아 . 강의내용을 제가 제대로 하고 있는지 검증이 되지 않습니다 . 강의내용과 맞는 강의 자료를 받아 볼 수 없을 까요 ?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
알고리즘과 자료구조 공부
알고리즘과 자료구조를 쉽고 빠르게 배울수 있는 곳이 있을까요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
일곱난쟁이 질문
안녕하세요. 좋은 강의 덕분에 많이 배우고있습니다. 다름이 아니라 arr.splice(i,1); arr.splice(j,1); 로 입력시 i번째 값을 먼저 삭제한 뒤에 j번째 값을 삭제하기때문에 답이 달라진다고 하시면서 올바른 답을 얻기 위해서는 arr.splice(j,1); arr.splice(i,1); 와 같이 작성하라고 하셨는데 만약 j가 i보다 뒤에 위치한다는 것(즉, i<j)을 모른다면 어떻게 처리해야 할지 궁금합니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
테스트 케이스를 하나 더 만들어봤습니다
선생님 안녕하세요. 수업을 듣던 중 궁금한 것이 생겨 질문 드립니다. 필수과목 순서가 ABC라고 했을 때 CABC 이렇게 과목을 설계했다면 이것은 NO이어야 하는건가요?
-
미해결자바스크립트 중고급: 엔진 핵심
Array.prototype.slice.call(arguments)에 대한 질문
선생님 안녕하세요. 파라미터 병합의 예제에 있는 코드 중 Array.prototype.slice.call(arguments) 에 대해 질문이 있습니다. slice 메소드에서 call을 통해 arguments를 this로 참조하기만 하는 게 아닐까요? slice메소드가 실행될 배열이 주어진 게 없는 것 같은데, 10, 20이 파라미터로 들어 갔을 때 어떻게 [10, 20] 과 같은 배열의 형태로 반환되는 건지 궁금합니다. 감사합니다!
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
201과 3xx Location
안녕하세요 영한님 강의를 듣던 중 궁금한 점이 생겨서 질문 남겨봅니다!! 3xx은 Location 헤더를 넣으면 자동으로 클라이언트에서 해당 Location으로 자동 리다이렉트 된다고 하셨는데 201은 Location 헤더가 있어도 자동 리다이렉트는 안하나요??
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
안녕하세요 다음 강의 출시 일정이 궁굼합니다!
안녕하세요 선생님! 지난번에 마이크로서비스 패턴 관련 강의 출시에 대해 질문을 하고 또 질문을 해서 죄송합니다. CI/CD 관련 강의가 혹시 언제쯤 출시되는지 알 수 있을까요...?
-
미해결데이터베이스 중급(Modeling)
Subject 테이블과 Lecture 테이블 질문드립니다.
요구사항에서 과목은 학년별로 담당선생님이 따로 있다. "과목은 '학년별로'" 이 부분에서, 강의에서는 Subject를 마스터 테이블로 만들고, OpenLecture 관계 테이블에 GradeId 를 외래키로 썼더라구요. 혹시 이 부분에서 Grade를 OpenLecture 테이블이 아닌 Subject 테이블의 외래키로 설정하고, SubjectId 랑 GradeId를 묶어서 PK로 선언하고 Subject 테이블의 PK를(GradeId, SubjectId) OpenLecture 테이블의 외래키로 설정해도 상관 없을까요? 컬럼 수로만 따지면 변경사항은 없으나 관계 매핑에서 차이가 좀 있더라구요. 항상 좋은 강의 감사드립니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
REDO, UNDO, ROLL BACK, ROLL FORWARD 에 관해
안녕하세요 Q1) 지금까지 이음동의어로 생각해왔는데 REDO = ROLL FORWARD UNDO = ROLL BACK 강의 마지막 결론에서 정리해주신 내용을 보니 또 다른 의미인 것 같아서 살짝 아리송 하네요 REDO 와 UNDO는 발자취(LOG)라고 보면 ROLL FORWARD나 ROLL BACK은 그 발자취를 따라 가는 행위를 말하는건가요? 마지막 질문으로 Part5 DB를 끝내봅니다 ㅎㅎ 감사합니다.
-
미해결마케팅 에이전시 대표에게 배우는 페이스북/인스타그램 광고 마스터하기
텍스트 오버레이가 없어요 ㅠ
현재 강의를 듣고 있는데 이미지 내 텍스트 비율이 20%를 초과 하면 안된다고 하시면서 https://www.facebook.com/ads/tools/text_overlay 링크를 남겨주셨는데 구글링 해보니 해당 툴은 사라진것 같더라구요!! 그런데 또 구글링에 나온 페이스북 고객센터? 결과 내용에는 (링크: https://ko-kr.facebook.com/business/help/388369961318508?id=1240182842783684 ) 이미지 자체에 너무 많은 텍스트를 사용하지 마세요. 광고 이미지에 포함될 수 있는 텍스트의 분량에는 제한이 없지만, Facebook은 텍스트의 비율이 20% 미만인 이미지의 성과가 더 좋다는 사실을 파악했습니다. 이런 문구가 있던데 따로 이미지 내 텍스트 비율을 확인할수 있는 방법은 없지만 이미지 내에 20% 이하로 텍스트를 쓰는것이 좋다~ 이렇게 받아들여도 괜찮을까요??
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [학습편]
si회사란 어떤 회사를 말하는건가요?
강사님께서는 si회사에 갈 바에 백수로 공부를 좀 더 한 후에 다른 회사에 들어가는게 좋다고 하셨는데, okky같은 커뮤니티를 보면 si회사를 목표로 하는 사람들이 많이 있는 것 같습니다. 정확히 si회사란 어떤 회사를 말하는건가요? 검색을 해보아도 그럴싸한 장단점이 보이지 않고 그냥 ~~를 다루는 회사라고만 나와있어서 상당히 의문이 듭니다.
-
미해결스프링 시큐리티
ConcurrentSessionControlAuthenticationStrategy 질문입니다!
현재 Ajax 방식 로그인을 위해 해당 강의에서 나온 방식으로 AbstractAuthenticationProcessingFilter를 상속받아 Filter를 커스텀하여 로그인 기능이 구현되어있습니다. 이후 동시세션 제어를 위해 securityConfig에서 아래 코드를 적용하였지만 http .sessionManagement() .maximumSessions(1); AuthenticationProcessingFilter를 커스텀하여 ConcurrentSessionControlAuthenticationStrategy이 적용되지 않는것 같은데 적용하는 방법을 알 수 있을까요?!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
getter setter 질문 드립니다.
static class Hello { private String name2; public String getName() { return name2; } public void setName(String name2) { this.name2 = name2; }}이렇게 변수 이름을 name2로 바꿔줘도 json으로 바뀌면 키 값이 name인데 이유가 뭔가요? 그런데 get, set 메서드 이름에도 2(getName2, setName2)를 붙여주면 키 값이 name2로 잘 나옵니다 이렇게 동작하는 이유가 뭔가요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
인증과 인가에 대해서 질문이 있습니다.
안녕하세요 강사님! 항상 진심을 다해서 모든 질문을 답변해주시는 강사님에게 정말 감사하다고 먼저 이야기 드리고싶습니다. 오늘 제가 질문할 내용은 바로 MSA에서의 인증과 인가입니다. Gateway-Service, User-Service, Order-Service 가 있다고 했을 때, 강의의 내용과 동일하게 토큰을 발급하는 서버는 User-Service가 수행한다고 가정하면 각각 Service들은 권한에 대한 처리는 어떻게 해야할까요? 제가 생각한 방법은 2가지 입니다. 1. Gateway 에서 최초 요청이 들어올 때, 토큰에 포함된 ID를 토대로 User-Service에 해당 ID가 가지고 있는 권한을 가져오도록 Request 합니다. 그리고 JWT payload에 권한에 대한 정보를 추가하고 relay 합니다. 권한에 대한 인증이 필요한 서비스에서는 해당 토큰만 파싱하여 권한이 있는지 없는지 확인합니다. 2. (권한이 필요한)Order-Service에 Client의 요청이 갔을 때, Order-Service는 요청이 들어온 토큰을 파싱하여 UserId를 확인합니다. 그리고 User-Service 에 해당 UserId가 가지고있는 권한을 가져오도록 Request 합니다. 권한이 있다면 로직을 계속하고 없다면 Reject 합니다. 이 두 방법 모두 매번 요청이 들어오면 User-Service에 권한을 가져오도록 하는 요청이 필수적이라는 단점이 있어 좋은 방법은 아니라고 생각하는데, 강사님이시라면 어떻게 하실까 궁금하여 질문 올립니다. 추가적으로 위의 방법대로 한다면 Spring Security는 User-Service에만 달리면 되는건가요? 아니면 각각 서비스 모두에게 Security가 달려야 할까요?
-
미해결타입스크립트 입문 - 기초부터 실전까지
질문입니다
핸드북을 읽다가 하이브리드 타입부분이 잘 이해가 안가서 질문합니다. 예제에서 말씀하신 함수타입이면서 객체타입을 정의할 수 있는 인터페이스 라는게 어디를 말하는 건가요? 말씀하신 여러가지 타입을 조합한 인터페이스를 만들 수 있다는 것은 인터페이스 안에 string, number, function등과 같은 여러개의 타입을 조합해서 하나의 interface로 만들 수 있다는 의미가 맞는 건가요? 제가 이해한 것이 맞는건지 몰라서 질문드립니다.
-
해결됨만들면서 배우는 HTML/CSS
html, body{...}와 배경에서의 오류
다음 사진과 같이 html, body 뒤에 무언인가를 작성하면 배경이 사라지게 됩니다. 어떤 오류인지 여쭤봐도 되겠습니까? 좋은 수업 감사합니다 선생님.
-
미해결윤재성의 Kotlin 기반 안드로이드 앱 개발 Part2 - 메뉴와 4대 구성요소
35강 질문입니다.
삭제된 글입니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
render의 정확한 의미가 무엇인가요??
선생님께서 뷰 화면으로 forwarding 할때 렌더라고 말씀하시고, MyView 객체에도 render 메서드를 만드셨는데 검색으로는 렌더링이 브라우저가 HTML을 모니터에 출력해주는 거라고 나오는데 선생님이 사용하신 의미는 다른거 같아 질문드려요!!