묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨PHP 7+ 프로그래밍: 객체지향
password_verify(string, hash) 함수가 매번 false가 나오는 것에 대한 해결 방법이 궁금합니다.
안녕하세요, 프로젝트 '인증' 파트에서 로그인 시 입력하게 되는 이메일과 비밀번호를 AuthController, AuthService를 통해 처리하는 것을 확인 할 수 있었습니다. 저는 현재 PHP 8.0.0 버전으로 코딩을 진행하고 있습니다. 다만, AuthService::login 로직에서 password_verify(string, hash)가 항상 false로 결과 값이 반환되는 것을 확인했습니다. 처음에는 예제 코드를 타이핑하는데 오탈자가 있었나 확인해 보았지만 그런 경우는 없었습니다. 이와 동일한 이슈에 대해 찾아보았으나 여러 개 있었고, 그 중 PHP 8 환경에서의 이슈를 다룬 블로그를 발견했습니다. (https://blog.naver.com/PostView.nhn?blogId=gwi01304&logNo=222269515571) PHP 버전 업데이트가 되면서 해당 함수의 동작 방식이 달라진 것인지 알 수 있을까요? 혹시 몰라서 저의 깃헙 레포지토리 URL을 여기에 공유해 드리겠습니다. GitHub URL: https://github.com/painkill2r/php-oop-project ============================================= 추가적으로 password_verify(string, hash) 함수의 동작 원리에 대해 궁금합니다. PHP Manual에서도 내부 동작 원리가 어떻게 되는지는 기재되어 있지 않더라구요. 첫 번째 인자로 주어진 string 값을 내부적으로 password_hash() 함로 암호화(?)하고, 이를 두 번째 인자와 비교하는게 맞을까요?
-
해결됨
h2 데이터베이스 실행시 오류가납니다 ㅠㅠ
The Web Console server could not be started. Possible cause: another server is already running at http://localhost:8082?key=4f0a1d21bf2d0c0a1743f6c247af3395cb3bba08ff6d6ec8db9432df4e709cd1 Root cause: Exception opening port "8082" (port may be in use), cause: "java.net.BindException: Address already in use (Bind failed)" [90061-200] Exception in thread "main" org.h2.jdbc.JdbcSQLNonTransientConnectionException: Exception opening port "8082" (port may be in use), cause: "java.net.BindException: Address already in use (Bind failed)" [90061-200] at org.h2.message.DbException.getJdbcSQLException(DbException.java:622) at org.h2.message.DbException.getJdbcSQLException(DbException.java:429) at org.h2.message.DbException.get(DbException.java:194) at org.h2.util.NetUtils.createServerSocketTry(NetUtils.java:180) at org.h2.util.NetUtils.createServerSocket(NetUtils.java:146) at org.h2.server.web.WebServer.start(WebServer.java:389) at org.h2.tools.Server.start(Server.java:511) at org.h2.tools.Console.runTool(Console.java:208) at org.h2.tools.Console.main(Console.java:72) Caused by: java.net.BindException: Address already in use (Bind failed) at java.base/java.net.PlainSocketImpl.socketBind(Native Method) at java.base/java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:452) at java.base/java.net.ServerSocket.bind(ServerSocket.java:381) at java.base/java.net.ServerSocket.<init>(ServerSocket.java:243) at java.base/java.net.ServerSocket.<init>(ServerSocket.java:135) at org.h2.util.NetUtils.createServerSocketTry(NetUtils.java:176) ... 5 more 이렇게 오류가 나는데... 강사님이 이전 질문에 답변에서 java -cp h2-1.4.200.jar org.h2.tools.Server -webPort 8083 를 적어주면 해결된다고 하셨었습니다. 근데 mac에서도 이렇게 입력하니까 일단 실행은됩니다만.. 근본적인 해결책인지가 궁금합니다. 저렇게 실행하고 나서.. ./h2.sh를 하게되면 똑같이 실행이 안되거든요 ㅠㅠ 혹시 다른 해결책이 있나요... port번호를 바꾸고싶은데 어떻게하는지도 잘 모르겠습니다.ㅠㅠ
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
강사님 세션쿠키에대해
제가 스프링 으로 톰켓환경 세션이 생기면 JSESSIONID 쿠키가 생겼는데 노드에서는 CONNECT.SID 가 저것에 대응되는건가요? 이런건 런타임별로 자기들이 개발할떄 저런명으로 세션쿠키의 명을 정해놓은건가요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
Model → Store
Flux소개할 때 세번째 단계가 model에서 마지막에 Store로 바뀌는데왜 이렇게 되는지 의문입니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
github 권한 요청드립니다.
인프런 아이디 : ul4382인프런 이메일 :ul4382@naver.com깃헙 아이디 : ul4382@hansung.ac.kr깃헙 Username :ul4382 github 권한 요청드립니다!
-
미해결실전! 스프링 데이터 JPA
테스트 메인 클래스
안녕하세요. test 패키지 밑에 DataJpaApplicationTest 라는 클래스가 자동생성되지 않은 것 같은데 왜 이런 현상이 있나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
ShareDB를 웹DB와 합칠경우
먼저 좋은강의 너무 감사드립니다. 현재 AWS에 WEB서버에 AccountDB 설정해서 로그인과 회원가입은 JSON으로 처리했습니다. 강의 내용중 ShareDB를 ServerDB와 같은 로컬에 있을경우에 대해서 설명 주셨는데, 혹시 ServerDB를 AccountDB와 같이 사용할경우 Server측에서 해당 서버정보를 JSON으로 처리 할려고 하는데 괜찬을지 문의 드립니다. 편한시간에 회신 부탁드립니다. 참고로 저는 웹개발쪽만 30년정도 하다가 만들고 싶은 겜이 있어서 더 늦기 전에 만들어 볼려고 한땀한땀 걸어가고 있습니다. 다소 생뚱맞는 질문이더래도 양해 부탁드립니다^^
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
Redux + onClick
제로초님 안녕하세요 강의 잘 보고있습니다 감사합니다 ^^ 제로초님 리덕스 강의를 보고 응용하여 제 나름 컴포넌트를 하나 만들어보고 있는데요, 아래와 같이 2개의 객체 배열을 이용하여 맵함수로 헤더메뉴를 그리는 코드입니다. onClick 이벤트 사용 시 화살표 함수로 선언해주면 해당 onClick 이벤트를 클릭하지 않는 이상 렌더링 이후 실행되지 않는 걸로 알고 있습니다. 1. 최초 렌더링 시에는 아래 두개 onClick이벤트가 실행 되지는 않습니다. 2. 이후 첫번째 onClick={(e)=>onPrimary(index, e)} 클릭 시 두번째 onClick={(e)=>onSecondary(index, num, e)}도 실행 되지는 않습니다. [문제 위치] 3. 두번째 onClick={(e)=>onSecondary(index, num, e)} 클릭 시 해당 클릭된 함수 실행 이후 첫번째 onClick이벤트도 같이 실행되는데 원인이 뭔지 모르겠네요, 이틀째 붙잡고 헤매다 질문드립니다.
-
해결됨게임 프로그래머 취업 전략 가이드
회사 면접 볼 때
회사에서 면접 볼 때 포토폴리오를 많이 본다고 하셨는데요, 혹시 자격증이나 대학교 학점도 많이 보는지 궁금합니다. 다른 it분야에서는 학점도 꽤 보고 자격증도 보는데가 있는데, 게임쪽은 어떤지 여쭤보고 싶습니다.
-
미해결홍정모의 따라하며 배우는 C언어
매크로 인식 오류
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 매크로를 이용한 기호적 상수 실습을 하다가 오류가 뜨고 궁금한 점이 생겨 질문드립니다. 일단 아래와 같은 코드를 작성했습니다. 이 코드를 실행했을 때 E0075 operand of '*' must be a pointer but has type "float" 위와 같은 에러 문구가 뜹니다. PI를 3.141592f로 매크로를 사용하지 않고 작성했을 때는 에러가 뜨지 않습니다. 아무래도 매크로 상수를 인식하지 못해서 radius 앞에 *을 곱하기 연산자가 아니라 포인터 연산으로 인식한 거 같은데 이를 어떻게 해야 해결할 수 있을까요? 감사합니다.
-
미해결엑셀 매크로와 VBA 기초부터 실무활용까지 완전 정복
파일시트 취합하기 문의
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서안녀비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요?강의 듣고 실무에 적용하다가 오류가 나서 문의드립니다. Sub 시트취합() Dim 시트 As Worksheet For Each 시트 In Worksheets If 시트.Name <> "전체" Then 시트.Range("A2", 시트.Range("A2").End(xlToRight).End(xlDown)).Copy Sheets("전체").Range("A1").End(xlDown).Offset(1, 0).PasteSpecial End If Next End Sub 를 활용하려는데요데이터는 인터넷에서 다운 받은 자료고요 예시로 파일 올립니다. 문의드립니다제가 시트 취합하려는 데이터 이렇게 중간 셀에 값이 없는 경우 ctrl+shrft+↓ 누르면 열 12까지 밖에 드래그가 안됩니다. 그래서 이렇게 되고요시트도 여러개가 있는데 1시트+일부시트 내용만전체시트에 복사 됩니다.오류 해결 방법을 알 수 있을까요?!시트별 열너비 행 높이가 달라서 이러는 건가요?!확인 부탁드립니다.
-
미해결자바스크립트 중고급: 엔진 핵심
fn 함수와 book.get 함수 차이 질문드립니다...ㅠㅠㅠ
// 정리 시간 var book = { value: 123, get: function() { var value = 456; console.log(this === window); console.log(this.value); } }; var fn = book.get; fn(); // true // false // undefined 정리 시간1을 공부하면서 fn() 함수 호출 시 새롭게 할당된 function 오브젝트인 fn() 함수 안으로 들어가는 것인지아니면 book.get 함수 안으로 들어가는 것인지 궁금해서 첫 줄에 debugger를 작성하여 한 줄씩 이동해서 확인해봤더니book.get 함수 안으로 이동하는 것을 확인했습니다. 근데 저는 왜 새롭게 할당된 fn 함수 안으로 엔진이 이동을 안하는 것인지 궁금합니다. 그래서 이것이 설정이 아니라 참조인가 해서확인하려고 다음과 같은 코드를 실행했습니다. var book = { value: 123, get: function() { var value = 456; console.log(this === window); console.log(this === book); console.log(this.value); } }; var fn = book.get; fn(); // true, false, undefined book.get(); // false, true, 123 var book = { value: 111, get: function() { console.log(this.value); } } fn(); // true, false, undefined book.get(); // 111 마지막에서 두 번째 줄인 fn() 함수는 그대로 처음 할당된 book 오브젝트를 경로로 get 함수에 들어가고마지막 줄인 book.get() 함수는 마지막에 할당된 book 오브젝트를 경로로 들어가는 것을 확인해서 참조는 아닌 것을 확인했습니다. 왜 fn 함수와 book.get은 서로 다른 독립적인 function 오브젝트이면서 fn() 함수를 호출했을 때 book 오브젝트 안의 get 함수 안으로 엔진이 이동하는 것인지 궁금합니다....ㅠㅠㅠㅠㅠ 그리고 debugger 창을 열어서 확인했는데 fn function 오브젝트의 name 프로퍼티 값으로 "get"이 할당되어있던데 이거와 관련이 있는 것인지 궁금합니다!!...ㅠㅠㅠㅠㅠㅠㅠ
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
Cast to ObjectId failed for value라는 에러 발생합니다!
수강생분들의 질문을 기다립니다! - 에러에 해당하는 질문은 "에러가 발생한 상황에 대한 충분한 설명", "에러 메세지", "에러가 난 코드 스크린샷"을 함께 첨부해주세요. - 언어에 해당하는 질문은 구글링 및 서치 후에 구체적으로 질문해주시면 좋습니다. - 간단한 진로 및 방향성에 대한 질문은 메일로 보내주세요.- 패키지 버전 관리은 실무 환경과 트랜드에 맞추어 강의를 업데이트 하고 있습니다. 강의를 그대로 따라갔는데 에러가 발생한다면 패키지 버전을 강의에서 사용하는 버전과 동일하게 맞춰주세요!- 강의 노트, QA 목록, 공지 사항을 먼저 확인해주세요.- 논리적이고 구체적인 질문은 학습 효과를 올립니다 :) comments.service import { CatsRepository } from 'src/cats/cats.repository'; import { Comments } from './../comments.schema'; import { CommentsCreateDto } from './../dto/comments.create.dto'; import { BadRequestException, Injectable } from '@nestjs/common'; import { InjectModel } from '@nestjs/mongoose'; import { Model } from 'mongoose'; @Injectable() export class CommentsService { constructor( @InjectModel(Comments.name) private readonly commentsModel: Model<Comments>, private readonly catsRepository: CatsRepository, ) {} async getAllComments() { try { const comments = await this.commentsModel.find(); return comments; } catch (error) { throw new BadRequestException(error.message); } } async createComment(id: string, commentData: CommentsCreateDto) { try { const targetCat = await this.catsRepository.findCatByIdWithOutPsw(id); const { contents, author } = commentData; const validatedAuthor = await this.catsRepository.findCatByIdWithOutPsw( author, ); const newComment = new this.commentsModel({ author: validatedAuthor._id, contents, info: targetCat._id, }); return await newComment.save(); } catch (error) { throw new BadRequestException(error.message); } } async plusLike(id: string) { try { const comment = await this.commentsModel.findById(id); comment.likeCount += 1; return await comment.save(); } catch (error) {} } } { "success": false, "timestamp": "2022-02-22T10:53:22.484Z", "statusCode": 400, "message": "Cast to ObjectId failed for value \"66213fe65d99f4623dae55787\" (type string) at path \"_id\" for model \"Cat\"", "error": "Bad Request" } jwt.strategy에서는 payload에 있는 sub.id 역시 스트링으로 잘 넘어갔는데 왜 쿼리 id는 오류가나는지 궁금합니다 https://github.com/minjamie/NestJS-A-to-Z 깃허브 주소 남깁니다!
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
기능사 실기 시험 준비 문의 드립니다
안녕하세요 선생님, 혹시 실기범위 12개 중에서 가로고정형 1개, 가로100% 1개, 세로2컬럼 1개 이렇게 총 3강의를 보여주셨는데, 나머지 9개 는 자료같은건 스스로 아무 내용이나 만들어보고 이미지 아무거나 가져와서 만들어서 연습을 하면 될 까요? 따로 연습할 자료를 구할 수 있는 방법이 있는건지요ㅠㅠ
-
해결됨Flutter 중급 1편 - 클린 아키텍처
중복된 페이지에서 같은 ViewModel이 여러 개 필요할 때
강의에서 ViewModel은 provider_setup.dart 파일을 별도로 만들어서 의존성 주입을 해줬는데요. 중복된 페이지에서 페이지별로 ViewModel이 필요할 때는 어떤 방법이 좋을까요? 예를 들어, FeedPage가 있는데 이 FeedPage에는 새로운 FeedPage를 여는 버튼이 있을 수 있습니다. 이 버튼을 누르면 새로운 FeedPage가 열리는데 1번 FeedPage에서 2번 FeedPage를 여는 식이죠. 추가적으로 3번, 4번 등 계속해서 새로운 FeedPage를 열 수 있고요. 이때, FeedPage의 상태를 FeedViewModel에서 관리해야 하는데 중첩된 FeedPage가 4개면, 총 4개의 FeedViewModel이 필요한데 강의처럼 최상위에서 하나의 ViewModel만 생성하면 이게 어렵더라고요. class FeedPage extends StatelessWidget { const FeedPage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { final viewModel = FeedViewModel(); return ChangeNotifierProvider<FeedViewModel>.value( value: viewModel, child: Scaffold(...), ); }} 제가 생각한 방법은 최상위에서 하나의 ViewModel만 생성하는 게 아니라 FeedPage의 build() 안에서 각자 ViewModel을 생성하고, 페이지 전체를 Provider로 감싸서 하위 위젯에 의존성을 주입하는 건데 괜찮은 방법일까요, 아니면 혹시 더 나은 방법이 있을까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이
inner join절 질문 있습니다!
문제풀이 해주신 쿼리를 여러번 써보며 학습하고 있습니다~ 만약 submission table이나 다른 테이블에 NULL 값이 존재했다면 inner join이 아니라 left join을 사용해서 문제를 풀어도 될까요?
-
미해결배달앱 클론코딩 [with React Native]
안녕하세요 질문드립니다
설정한 인증서를 다운받는 항목에서 현영님은 Development와 Production이 활성화 되어있는데 이게 둘 다 활성화 되어있어야하는것인가요? *.CertificateSigningRequest 파일을 Production에도 넣어서 활성화 시켜야하는 것인지 궁금합니다. 감사합니다.
-
미해결단 두 장의 문서로 데이터 분석과 시각화 뽀개기
1강2강에 있는 csv파일을 다운받으면 한글이 깨져서 나와요
1. 제목 그대로 입니다. csv파일 한글이 엑셀에서 깨져서 보여요. 2. code에서 utf8로 했을때 에러가 나는데 cp949로 하면 에러가 안 나기도 하고요. 차이좀 알수 있을까요?
-
미해결
리뉴얼 관련 궁금한 사항
안녕하세요 다름이아니라 리뉴얼 시스템에 관련해서 궁금한 것이 있습니다. 제가 강의를 산게 몇개 있는데 한 1~2년 정도는 볼 시간이 없어서 못 볼 것 같아서요(새해급 할인이 다시 안올줄알고 샀는데......) 무제한 강의인데 만약 그 강의가 리뉴얼되면 새로운 리뉴얼 버전으로 들울 수 있는건가요?? 보통 리뉴얼이 다른 강의페이지로 나오나요? 이전 버전은 그대로있고? 그게 아니라면 설마.. 강의 구입을 새로해야하는건가요?? 그건 아니겠죠? 등등 관련해서 전반적인 리뉴얼 시스템이 궁금합니다.
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
axi4 lite i/f write data 관련 질문 드립니다.
안녕하세요 맛비님. axi4 lite code 리뷰 중 질문 있어서 글 남깁니다. code line 274-279 slv_reg0-3은 레지스터로 알고 있는데 default로 저렇게 처리해주는 이유가 궁금합니다. 굳이 처리 안 해줘도 slv_reg는 자기 값 그대로 가지고 있을 것 같은데 latch 생성을 막기 위해서 저렇게 처리를 한건가요? slv_reg의 값이 다시 slv_reg의 입력으로 들어가는게 잘 이해가 안되서요.