게시글
질문&답변
2022.10.12
Reflect.defineMetadata is not a function 에러
안녕하세요 선호님.아직 해결이 안되셨군요,,올려주신 깃허브 코드 확인해보고 다시 답변드리겠습니다.
- 0
- 1
- 249
질문&답변
2022.10.11
몽고db 연결이 안됩니다.
안녕하세요 data big님. 혹시 npm install 하는 과정에서 mongo db 관련하여 버전 경고가 뜨지는 않았었나요?버전 경고가 만약 떴었다면, 아래의 코드를 입력하여 mongo db의 버전을 바꿔주세요.npm install mongoose@6.2.2 --save 이후에도 해결되지 않으셨다면, 새로운 질문글에 지금 이 질문글의 링크를 복사하여 남겨주세요! 바로 확인하고 답변 드리겠습니다.감사합니다.
- 0
- 1
- 680
질문&답변
2022.10.11
네이버 api 요청 관련 질문 있습니다
안녕하세요 현석오님.깃허브에 올려주신 코드와 올려주신 테스트 결과만으로 정확히 오류가 어디 있는지 확인하기 어렵습니다. 가장 크게 의심되는 부분은 api 호출 헤더를 작성해주는 부분에서, process.env.[KEY] 와 같은 형식으로 .env 파일에 있는 환경변수를 불러오는 과정에서 제대로 값이 불러와지지 않은 것 같습니다. 이 부분을 console.log로 한 번 확인해주시고, 그래도 해결되지 않는다면 다시 한 번 질문글로 작성해주시면 바로 다시 확인해보겠습니다. 감사합니다. 또한, API KEY와 SECRET KEY는 현석오님에게만 제공되는 키로, 공개된 웹에 해당 키를 노출시켰을 때 타인이 이를 악용할 수 있습니다. 질문글에서 해당 부분을 삭제하시고, 깃허브 레포지토리도 private으로 변경하시는 것을 추천드립니다.
- 1
- 3
- 418
질문&답변
2022.09.19
sync/async fetcher 크롤링 전체가 안됩니다.
안녕하세요 구자웅님.질문해주신 첫번째 코드를 아래와 같이 실행해본 결과 네이버와 구글의 모든 소스코드가 크롤링 된 것을 확인했습니다.import requests import time def fetcher(session, url): with session.get(url) as res: return res.text def main(): urls = ["https://www.naver.com", "https://www.google.com"] with requests.Session() as session: result = [fetcher(session, url) for url in urls] print(result) if __name__ == "__main__": main()질문을 조금 더 자세하게 작성해주시면, 답변하기 조금 더 수월할 것 같습니다.더불어 코드는 인프런의 에디터에 포함되어 있는 [코드 입력기]로 전체 코드를 복사 붙여넣기 해주시면 감사하겠습니다.자세한 질문 내용 새로운 게시글로 작성해주시면, 곧바로 답변해드리겠습니다.감사합니다 :)
- 0
- 1
- 245
질문&답변
2022.09.19
혹시 저처럼 s3에 업로드할 때 아무 이미지도 안 올라시는 분들이 있으면 봐주세요
안녕하세요 홍승빈님.좋은 정보 공유 감사합니다.항상 홍승빈 님의 성장을 응원하겠습니다.다시 한 번 감사드립니다 :)
- 3
- 3
- 650
질문&답변
2022.09.18
몽구스 연결 오류
안녕하세요 네버레이트님.질문 확인했습니다. 금일 내로 답변해 드리겠습니다.감사합니다 :)
- 0
- 1
- 420
질문&답변
2022.09.13
existsByEmail 에서 Type '{_id: any; }' is not assignable to type 'boolean'. 에러 발생
안녕하세요 bugi님.작성해주신 질문에 대한 답변 남깁니다. const result = await this.catModel.exists({ email }); return result as boolean;위 코드와 같이 작성하셔도 똑같은 에러가 발생하실까요?
- 3
- 4
- 1.4K
질문&답변
2022.09.10
passport-local 사용.
3번 질문에 대한 답변도 2번 질문 답변에 포함이 되어있는 것 같습니다. passport.js를 이용한 인증 방식에 대한 생활코딩의 좋은 강의가 있어 아래에 링크 첨부합니다. https://opentutorials.org/course/3402더 궁금한 사항이 있으시다면 새로운 질문글로 작성해주시면 답변해드리도록 하겠습니다. 추석에도 강의 들으시며 공부하시는 열정이 멋있숩니다..! 항상 응원하겠습니다 🦦
- 1
- 3
- 441
질문&답변
2022.09.10
passport-local 사용.
passport local은 로그인 때만 사용되는 전략인가요? 그러면 jwt등의 사용자 접속을 유지시키는 전략과는 다르다고 봐야하나요? 그렇지 않습니다. passport는 여러 인증 방식과, 유저 정보를 세션에 저장, 해당 세션을 판별하는 기능까지 제공합니다. passport의 인증을 통과한다면 passport.serializeUser 를 이용하여 해당 유저 정보를 세션에 저장, 접속 상태를 유지할 때는 passport.deserializeUser를 통해 request.user의 정보를 받을 수 있습니다. 만약 request.User가 없다면 이는 로그인이 되지 않은 상태, 혹은 로그인이 만료된 상태를 의미하며, 이와 반대로 request.User가 있다면 로그인이 되어있는 상태를 의미합니다. 이는 jwt를 이용하여 쿠키에 token 값을 저장하고, token 값을 검증하며 접속 상태를 판별하는 JWT와 크게 다르지 않습니다.
- 1
- 3
- 441
질문&답변
2022.09.10
passport-local 사용.
안녕하세요 Anthony Jo님.작성해주신 질문에 대한 답변 남깁니다. 제가 느끼기에, 굳이 passport local 전략은 필요하지 않다고 생각합니다. 공식 문서에서 굳이 이를 사용한 이유가 있을까요?우선, Passport.js 는 Node.js를 위한 인증 미들웨어입니다. 아이디와 비밀번호를 사용해 로그인하는 방식을 포함해서, 구글, 페이스북, 트위터 등을 통한 여러가지 인증 방법을 제공합니다. 공식 문서에서 passport를 사용하여 예제를 작성한 정확한 이유는 알 수 없겠지만, 저의 개인적인 예상으로는 다음과 같은 이유일 것 같습니다.다른 인증방식으로 변경하는데에 있어서의 편의성 : passport.js에서는 500개가 넘는 인증방식을 제공하고 있습니다. 만약 아이디와 비밀번호를 통해 인증하고 있던 서비스에서 구글 로그인으로 변경을 할 때에, passport.js의 strategy를 변경하고 코드를 조금만 수정해주면 로직의 큰 변화 없이 구글 로그인을 구현할 수 있습니다. 만일 passport.js를 사용하지 않았을 때에 구글 로그인으로 변경을 해야한다면, 인증 부분을 모두 뜯어고쳐야 합니다.많은 서비스에서 이용하고 있는 라이브러리 : 공식 문서에도 작성되어 있듯이, 수많은 서비스에서 passport.js를 사용하여 인증 쪽을 개발하였습니다. 그런만큼, 많이 사용되고 있는 방식으로 예제를 작성하는게 조금 더 의미가 있지 않았을까 생각합니다.덧붙여서, 해당 강의에서 passport local을 사용하지 않고 JWT를 사용한 인증방식을 사용한 이유는, passport local의 근본적인 원리는 JWT를 사용한 인증방식과 동일합니다. passport.js는 이 과정을 조금 더 간편하게 개발할 수 있도록 개발된 라이브러리이며, 처음부터 이런 라이브러리를 사용하는 것보다는 기본적인 인증 원리를 이해하는 것이 수강생 분들께 조금 더 유익할 것 같아서 강의를 이렇게 구성하게 되었습니다.다음 질문들은 아래 글에 답변하겠습니다.
- 1
- 3
- 441