안녕하세요, 프로젝트 '인증' 파트에서 로그인 시 입력하게 되는 이메일과 비밀번호를 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() 함로 암호화(?)하고, 이를 두 번째 인자와 비교하는게 맞을까요?
안녕하세요, '로그아웃' 구현 부분에서 세션을 비우는 처리에 대해 질문드립니다. 만약, 운영중인 사이트를 이용한다고 가정했을 때 아래와 같이 대부분이 로그인 및 로그아웃 절차가 진행된다고 생각합니다. 1. 홈페이지 로그인: 세션에 유저 데이터 생성 2. 홈페이지 이용 3. 브라우저를 닫거나 로그아웃 버튼 클릭: 세션이 완전이 사라지거나, 세션은 있되 세션에서 유저 정보가 비워짐 3번 항목에서 보통 PHP에서 세션을 비울 때(삭제할 때) 아래 두 함수를 쓰는 모습을 볼 수 있었는데요. 1. session_destory() => 전체 세션을 삭제(예로 세션 저장소(파일시스템의 세션 파일 또는 DB의 세션 관리 Table의 세션 데이터)) 2. session_unset() => 세션에서 변수만 삭제(CODE E) $_SESSION = array();) 이 외 세션에서 '유저' 정보만 비우는 경우(CODE EX) $_SESSION['user'] = array();)에는 어떤 경우가 있는지 알 수 있을까요?
안녕하십니까? 파이썬 공부중인 학생입니다. 도저히 어떻게 해결 해야 할지 모르겠어서 질문 남깁니다. 1. data=[{'A':'0000','B':1234}, {'A':'0200','B':151}, {'A':'0300','B':11},{'A':'0400','B':2014},{'A':'1600','B':32}] 가 있습니다. 2. 이 데이터를 data = pd.DataFrame(data) 로 정의하여 새롭게 만듭니다. 3. 아래(맨밑) 와 같은 엑셀 포맷을 excel_format = load_workbook('엑셀포맷.xlsx',data_only=True) 로 불러왔습니다. 4. 불러온 포맷을 data의 값으로 자동으로 채워주고 싶습니다. 하지만 1. data 를 보시면 'A':'0100' 값과 또 중간에 'A':0500~1500까지의 B 값이 없습니다. 이러한 부분을 B를 0 으로 채워주고 'A':'0000','A':'0200','A':'0300','A':'0400','A':'1600'처럼 B값이 있는값들은 그에 맞게 B값을 채워주고싶습니다. load_ws.cell(1,2,350) 이런식으로 일일이 없는값은 0으로 채우고 있는값은 데이터를 보고 채울순있겠지만 꼭 자동화로 되도록 코드를 작성하고싶습니다. 긴 글 읽어주셔서 너무 감사합니다.
안녕하세요. '/' URL에 대한 라우트 선언 시 궁금한 점이 있어 질문드립니다. 강의 08:45 부분에서 '/' URL을 처리할 Handler로 '\App\Controllers\IndexController::index'와 같이 선언하는 것을 볼 수 있었습니다. IndexController 클래스의 index() 메소드가 정적 메소드로 선언되어 있으므로 '::'를 사용하는 것은 이해가 되었는데요. '괄호()'를 생략했음에도 오류 없이 동작하는 이유에 대해 궁금합니다. '\App\Controllers\IndexController::index()'와 같이 설정한 경우 오히려 에러가 출력되더라구요. 위 문법과 관련한 관련 자료도 있다면 공유 부탁드립니다. 감사합니다.
파이참 툴을 이용해서 파이썬 공부를 하는 중인데, 라이브러리에서 기본으로 제공되는 sort() 함수에서 key 매개변수를 사용하려 할 때마다 저렇게 오류가 발생합니다. 헌데 문제는 검색을 아무리 해봐도 정보가 잘 나오지 않았다는 점입니다 ㅠㅠ. 이 밖에 중복순열을 이용하려 할 때에도 비슷한 오류가 발생합니다. 분명 순열 관련된 라이브러리를 import 해서 사용하는 중인데( from itertools import product ), 왜 이러는지 도저히 잘 모르겠어서 질문 남기게 되었습니다. 부디 조언 부탁드립니다.
안녕하세요, Sessions 강의를 듣고 궁궁한 것이 생겨 질문드립니다. 강의 내용에서는 SessionHandlerInterface의 구현체 클래스를 선언하여 사용하는 것으로 보이는데요. index.php의 예제 코드 실행시 처음 생성되는 SESSION 데이터가 있으면 sessions 테이블에 세션 정보가 INSERT 되는 것으로 확인이 되었습니다. 하지만 sessions 테이블의 id 컬럼의 값이 자동으로 들어가지는 것을 확인할 수 있었는데요. 이 id은 PHPSESSID에서 가져오는 것 같은데, 그 과정에 대해 알 수 있을까요?
안녕하세요, 라우팅 강의를 듣고 난 후 궁금한 점이 생겨 질문드립니다. 예제 코드에서 '/', '/posts/{id}'라는 라우팅을 설정해 주셨는데요. 로컬 환경에서 학습한다는 기준으로 PHP 내장서버를 실행시켜 localhost:8000/index.php, localhost:8000/src/Database/Adaptor.php 등으로 접속했을 때에도 이에 대한 접근 불가 설정을 하지 않았으므로 접근이 허용되는 문제가 있었습니다. 이를 해결 하기 위한... 즉, 개발자가 정의한 URL 패턴 외 .php가 붙은 확장자로는 접근이 불가하게 설정할 수 있는 방법이 있을까요?
안녕하세요, Composer 강의를 학습하던 중 예제 코드들을 Git에 형상관리를 하려고 합니다. 다만, Composer 설정 후 생성되는 .vender 폴더, composer.json, composer.lock.json 파일의 경우 Git으로 형상관리를 시키는게 맞는지, 아니면 이들은 Ignore 설정을 통해 형상관리에서 제외시키는게 맞는지 궁금합니다.
전 강좌에서 캐루셀 설정후에 npm run dev를 통하여 확인해보려 하는데 ready - started server on 0.0.0.0:3060, url: http://localhost:3060 Unknown error from PostCSS plugin. Your current PostCSS version is 8.4.5, but autoprefixer uses 6.0.23. Perhaps this is the source of the error below. error - ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[7].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[7].use[2]!./node_modules/antd/dist/antd.css BrowserslistError: Unknown browser query `dead` at Array.reduce (<anonymous>) 이러한 에러가 뜹니다 ㅜ 구글링해서 계속 찾아보고있는 중인데 도대체 무슨이유인지 모르겠습니다 ㅜㅜㅜ 부탁으려요
알고리즘 문제는 혼자 생각하고 해결하는 과정이 중요한 것을 알기에 정말 최대한 저혼자 2시간동안 디버깅을 해보았지만 무엇이 잘못된 것인지 모르겠어서 질문 남깁니다. 조합만들기 식으로 풀어봤는데 제가 생각하기에 논리상으로는 맞는것 같은데 계속 답이 이상하게 나옵니다. 한번만 코드 검토 부탁드립니다... import sys sys.stdin= open ( "input.txt" , "rt" ) def DFS (v , money): global maxMoney if maxMoney<money: maxMoney=money if v>n: return for i in range (v , n+ 1 ): DFS(v+sch[i][ 0 ] , money+sch[i][ 1 ]) if __name__== '__main__' : n = int ( input ()) ch=[ 0 ]*(n+ 1 ) sch=[(- 1 , - 1 )] maxMoney=- 1 for _ in range (n): # t는 걸리는 시간(일), p 는 보수 t , p = map ( int , input ().split()) sch.append((t , p)) DFS( 1 , 0 ) print (maxMoney)
RUN python manage.py collectstatic --noinput 위 명령어를 입력하고 설정을 했으나 아래와 같은 메시지가 뜨는데요 ㅠㅠ 선생님께서 설정해주신 부분과 상당히 유사하게 진행하고 있는데 왜 그런지 궁금합니다. 혹시 추측이 가능한 부분이 있으실까요? # 오류 # 디렉토리 구조 # settings.py
안녕하세요~ 글 작성시 UserID가 DB에 저장안되는 이슈가 있어서 질문드립니다. 게시글을 작성 후에 TypeError : Cannot read properties of null (reading 'nickname') 에러가 납니다. 지금까지 해본 것 1. 다른 답글에 적어주신 내용처럼 router/post.js 쪽에서 req.user.id를 확인해보았습니다. 위에 사진처럼 작성자의 아이디가 나왔습니다. 2. MySQL의 DB에 보니까 UserId가 올라오고 있지 않습니다. 3. res.send로 받은 result를 console.log를 찍어보니까 UserId가 없었습니다. 4. MySQL 에 UserId를 직접 입력 (1) 해보니까 에러 없이 잘 나왔습니다. 제 생각에는 Model에서 에러가 발생한 것 같습니다. 깃허브에 올려주신 것을 보니까 5버전에 클래스로 하신 코드이신데 강의에서는 위와 같이 사용중이라서 참고를 해보았으나 DB 등록시 UserId가 입력이 안되는 것 같습니다. 알려주신대로 기능 추가시 흐름을 정리해서 보면서 생각해보니까 여기까지는 에러가 왜 낫는지 알겠는데 몇시간을 고민해도 버그가 수정이 안되서 송구스러운 마음을 가지고 질문드립니다. 깃허브 주소 : https://github.com/hyunjoogo/react-nodebird
react native 네비게이션 설치를 하고 시뮬레이터 기동 시 오류가 발생하는데 해결방법 아시는분 계시나요ㅠㅠ os 업데이트 해보고 dependencies 삭제하고 재설치 해봐도 오류가 발생하는데 어떻게 해결해야 할까요.. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
reactQuery에대해서 graphql을 호출하는 과정에있어서 에매한 부분이 있는것같아 나름대로 정리를 해봤습니다... 혹시 제가 잘못 이해하고있는 부분이 있을까요!!?? 1. graphql를통한 데이터 불러오기 흐름. (+next.js 서버사이드 렌더링 가정) 1) 서버사이드 렌더링에의해 불러오는 데이터를 hydrate를통해 클라이언트측 cache에 저장시킨다. 2) 최초접속시 useQuery를통해 데이터를 요청하지만, 우선은 당장 cache에 존재하는 데이터를 보여준다. 3) 이후 useQuery를 통해 데이터를 가져왔을떄 기존에 cache에 존재하는 데이터와 비교후, 바뀐부분만 교체시킨다. 4) 이후 새로고침이 발생했을떄 cache에서 데이터를 가져오게됨으로써 빠른 렌더링을 구현 할 수 있게된다. 2. graphql를통한 생성, 업데이트, 제거 흐름. 1) 우선 useMutation을통해 필요한 정보들을 fetcher를 태워 graphql요청을 보낸다. 2) 이후 성공하게되면 client.setQueryData를통해 클라이언트측 cache에 접근하여 데이터를 업데이트 시킨다. 3) 이과정에서 QueryKeys.MESSAGES를 통해 클라이언트측 cache에 접근하여 데이터를 업데이트하게됨으로, 최초 useQuery를통해 불러온데이터가 변경된것과 동일함으로 useEffect의 dependency Array에 전달된 data.messages가 변경된것으로 인식하여, setMsgs가 호출된다. 4) 이과정에서 useQuery의 fetcher는 호출되지않는다. 3. 클라이언트측 cahce를 눈으로 확인할 수 있는 방법이있을까요?(단순히 개발자 도구에서의 애플리케이션탭의 cache부분에서는 확인이 안되는것같아 질문드립니다..!) 또한 이부분이 리덕스의 스토어 역할을 한다고 생각해도되는지 궁긍합니다!