묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Spring Boot JWT Tutorial
유저 권한 설정
동영상 강의에서 하신대로 @ManyToMany @JoinTable( name = "user_authority", joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "user_id")}, inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "authority_name")}) private Set<Authority> authorities; 이렇게 할 수 도 있는데 Enum타입으로 하는 방법도 있는것으로 알고있습니다.이렇게 했을 때 두개의 차이점은 뭘까요?! 장단점을 알고싶습니다.제가 생각했을 때는 알려주신 방법은 데이터베이스를 만들어야하니 조인문도 필요할 것 같고 그럼 쿼리가 많이 쌓이게 되면 부하도 커질 것 같고 하지만 한 유저가 여러개의 권한을 가질 수 있다는 장점?이 있을 것 같고제가 말한 enum타입은 쿼리문 작성은 단순해지는 반면 유저가 하나의 권한밖에 못 가지니 그건 상황에 따라 안좋을 수도 잇을 것 같네요 궁금해서 질문 남깁니다. 좋은 강의 감사합니다!!
-
미해결따라하며 배우는 NestJS
강의 자료 관련해서 질문있습니다.
윈도우에서 강의 자료를 열람하기가 힘들어서 그런데 혹시 .DS_Store 파일 말고, 그냥 pdf 자료를 공유해 주시는건 힘들지 문의드립니다
-
미해결코드로 배우는 React with 스프링부트 API서버
로그 인식문제
안녕하세요 먼저 훌륭한 강의 감사합니다 다름이 아니라 제가 테스트 코드작성중에 log. 이 인식이 안되는 상황이어서요... 구글링해도 문제점을 잘 모르겠습니다 ㅠㅠ gradle 입니다
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
setCookie 질문입니다.
안녕하십니까 제로초님 질문이 있어 글을 올립니다.현재 next.js를 이용하여 localhost:3000 포트를 이용해 front를 진행하고 있고, back은 제로초님의 강의를 이용하여 localhost:8001 포트로 서버를 만들어 진행하고 있습니다. 그러다, express passport 로그인 후 setCookie로 쿠키에 값을 저장하는 과정에서, front 서버 localhost:3000 포트에서는네트워크 탭에는 위와 같이 Set-Cookie로 명시 되어 있으나, 애플리케이션 탭의 쿠키에는 저장이 되지 않았습니다. 그래서 postman으로 실험을 해본 결과 postman에서는 정상적으로 쿠키가 저장된 모습을 확인할 수 있었습니다. 때문에 이와 같은 경우를 계속 찾아보고, 검색을 해보았는데, 브라우저의 쿠키 정책에 따라, 서로 다른 도메인 간에는 쿠키를 공유할 수 없습니다. 이를 해결하기 위해서는 서버에서 쿠키를 설정할 때 samesite 옵션을 none으로 설정 후 https 를 이용해 통신해야 한다고 나왔었습니다. 위와 같은 설명 때문에 localhost:3000 에서는 쿠키값이 저장이 안 된 것이 맞는 지 궁금합니다.
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
hashtag 검색 결과 없는 경우 status code처리
강의에서는 해시태그 검색결과가 없는 경우404로 처리하는 방향으로 가고 있습니다궁금하여 다른 곳에서는 어떻게 하나 확인해보았습니다아마존의 경우 200 OK처리하여주는데검색 결과가 있고 없고에 대한 응답처리는 api 작성자에 따라 다르게 처리가 가능한 영역인가요?
-
해결됨Spring Boot JWT Tutorial
setAuthentication
안녕하세요JwtFilter 에서 StringUtils.hasText(jwt) && tokenProvider.validateToken(jwt)조건을 만족하면 아래와 같이 SecurityContextHolder.getContext().setAuthentication(authentication); 인증정보를 저장하는데 컨트롤러에서 또 인증정보를 저장하는건가요 ??정보를 그럼 총 2번 저장하는건가요??위 JwtFilter 에서 (StringUtils.hasText(jwt) && tokenProvider.validateToken(jwt)) 이조건이 만족했을떄
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
aws lambda로 lazy loading 구현
(안녕하세요. 제로초님 매번 질문드릴때마다 빠르게 답변해주셔서 정말 감사 드립니다.) 지금 useInfiniteQuery를 통해 게시물의 정보들을 한번에 모두 받아오는 것이 아닌 5개씩 나눠서 받아오도록 구현을 마쳤습니다. 그리고 여기에 한번더 최적화를 진행하기 위해 lazy loading image 기법을 도입하려고 하는데요 도입이유는 사용자가 처음 받아오는 이미지를 모두 다 볼 수 있는 형태가 아니기 때문입니다. 일반적인 모니터라면 사용자는 1개의 게시물 밖에 보지 못합니다. 그래서 이러한 점에서 나머지 4개에는 resize(50*50)정도로 사진 크기를 줄여서 전송하고 사용자가 스크롤을 하여 화면을 내리면 intersection observer를 통해 사용자가 볼수 있는 정도의 resizing된 이미지를 요청하여 화면에 렌더하려고 합니다.그러기 위해서는 thumb파일 이외에 50* 50 사이즈의 이미지를 저장하는 파일을 한개 더 만들려고 하는데 여기서 막혔습니다.궁금한게 aws-lambda를 한개 더 만들어야 하나요?아니면 resizing해주는 lambda한개에서 2종류의 resizing처리가 가능한가요?return 부분의 callback 함수에 파라미터를 어떻게 넣어야 하는지 잘 모르겠습니다..그리고 제가 하려는 최적화 방식이 효과 있는 방식이 맞는건가요?혹시 제거 간과 하고 있는 부분은 없는지 궁금합니다..답변해주시면 감사하겠습니다.
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
key값에 영어가 아닌 디른문자가 들어가면 오류 발생
사진 파일 이름이 띄어쓰기가 없는 영어가 아닌 경우 무조건 Key를 찾을 수 없다는 오류가 발생합니다.그런데 왜 도무지 이런 에러가 발생하는지 이해가 되지 않습니다.s3 original폴더에 잘 저장되어있고 그냥 똑같은 key를 찾으면 되는거 아닌가요?... 왜 영어로 안쓰면 key를 못찾는건지 잘 모르겠습니다..그리고 저번에 띄어쓰기도 식별하기 위해 +를 스페이스로 replace하는 코드를 추가하면 됩니다. 라고 말씀해주셨는데 aws-upload의 index.js 코드에는 그냥 온전히 s3에 저장되어있는 key값을 받아오고 그 키값에서 파일 이름이나 확장자를 추출하는 코드밖에 존재하지 않는데 어디에 + 스페이스로 replace하는 코드를 추가하면 되는지 잘 이해가 되지 않습니다... 답변해주시면 정말 감사하겠습니다..ㅠㅠ
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
이미지 리사이징 후 화질
궁금한점이 생겨 질문합니다. aws lambda로 resizing된 이미지를 사용자에게 보여주면 당연히 화질이 좋지 않은 이미지를 제공할 수 밖에 없는데 이건 어쩔 수 없는건가요? 그럼 구글이나 핀터레스트같은 이미지를 많이 활용하는 웹들은 당연히 이미지 용량 크기를 줄이는 작업을 거칠것인데 이 웹들은 어떻게 사용자에게 좋은 이미지를 보여줄 수 있는건가요?
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
no such key
{ "errorType": "NoSuchKey", "errorMessage": "The specified key does not exist.", "name": "NoSuchKey", "$fault": "client", "$metadata": { "httpStatusCode": 404, "requestId": "YMG06ZYH60K2201P", "extendedRequestId": "3P/v2TuxF22TpEWbU9iXPei37RoBJHIeVTI/mSC9NV7bY2r4BnC2iyJpCcJnmD3gUEaa9WdsNCw=", "attempts": 1, "totalRetryDelay": 0 }, "Code": "NoSuchKey", "Key": "original/1703707251649_studying+economics+student+aesthetic+bib+uni+college+statistics+math+macbook+apple+ipad+pro+jgu+mainz.jpeg", "RequestId": "YMG06ZYH60K2201P", "HostId": "3P/v2TuxF22TpEWbU9iXPei37RoBJHIeVTI/mSC9NV7bY2r4BnC2iyJpCcJnmD3gUEaa9WdsNCw=", "message": "The specified key does not exist.", "stack": [ "NoSuchKey: The specified key does not exist.", " at de_NoSuchKeyRes (/var/task/node_modules/@aws-sdk/client-s3/dist-cjs/protocols/Aws_restXml.js:5196:23)", " at de_GetObjectCommandError (/var/task/node_modules/@aws-sdk/client-s3/dist-cjs/protocols/Aws_restXml.js:3440:25)", " at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", " at async /var/task/node_modules/@smithy/middleware-serde/dist-cjs/deserializerMiddleware.js:7:24", " at async /var/task/node_modules/@aws-sdk/middleware-signing/dist-cjs/awsAuthMiddleware.js:30:20", " at async /var/task/node_modules/@smithy/middleware-retry/dist-cjs/retryMiddleware.js:31:46", " at async /var/task/node_modules/@aws-sdk/middleware-flexible-checksums/dist-cjs/flexibleChecksumsMiddleware.js:63:20", " at async /var/task/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/region-redirect-endpoint-middleware.js:14:24", " at async /var/task/node_modules/@aws-sdk/middleware-sdk-s3/dist-cjs/region-redirect-middleware.js:9:20", " at async /var/task/node_modules/@aws-sdk/middleware-logger/dist-cjs/loggerMiddleware.js:7:26" ] }이렇게 NoSuckKey라고 뜨는데 이건 혹시 s3 access key가 틀렸다는 소리인가요?
-
해결됨Spring Boot JWT Tutorial
postman에서 오류가 납니다..
이전까지는 모든게 다 되는데 postman test에 전역 변수를 잡고 Authorization에 {{jwt_tutorial_token}}을 넣어서 send 해봐도 Something went wrong while running your scripts. Check Postman Console for more info 라는 작은 팝업창만 뜰 뿐, 아무런 반응이 없습니다...모든 코드와 postman에도 모두 동일하게 작성을 했는데, 왜 이런 오류가 발생하는지 알 수 있을까요..?ㅜㅜ
-
미해결코드로 배우는 React with 스프링부트 API서버
삭제 쿼리 질문드립니다.
삭제 테스트중 의문점이 하나 있어서 질문드립니다 삭제를 위한 검색쿼리Hibernate: select c1_0.cno from tbl_cart c1_0 left join tbl_cart_item c2_0 on c2_0.cart_cno=c1_0.cno where c2_0.cino=?작성하지 않았는데 발생하는 쿼리Hibernate: select c1_0.cino, c2_0.cno, o1_0.email, o1_0.nickname, o1_0.pw, o1_0.social, p1_0.pno, p1_0.del_flag, p1_0.pdesc, p1_0.pname, p1_0.price, c1_0.qty from tbl_cart_item c1_0 left join tbl_cart c2_0 on c2_0.cno=c1_0.cart_cno left join member o1_0 on o1_0.email=c2_0.member_owner left join tbl_product p1_0 on p1_0.pno=c1_0.product_pno where c1_0.cino=? 삭제쿼리Hibernate: delete from tbl_cart_item where cino=?삭제후 아이템 재검색쿼리Hibernate: select c1_0.cino, c1_0.qty, p1_0.pname, p1_0.price, i1_0.file_name from tbl_cart_item c1_0 join tbl_cart c2_0 on c1_0.cart_cno=c2_0.cno left join tbl_product p1_0 on c1_0.product_pno=p1_0.pno left join product_image_list i1_0 on p1_0.pno=i1_0.product_pno where i1_0.ord=0 and c2_0.cno=? 삭제 쿼리시 위와같은 쿼리들이 실행되는데요 삭제를 위한 검색쿼리후 알수없는 쿼리하나가 더 실행되는데 이쿼리가 실행되는 이유를 알고 싶습니다.
-
미해결스프링부트 시큐리티 & JWT 강의
JWT - 24강 authenticationManager() 문제
jwt버전 문제로 안되는 것같아요..
-
미해결스프링부트 시큐리티 & JWT 강의
authenticaiotnMaanger()안됨
버전차이로 오류가 뜬것같습니다!..
-
미해결코드로 배우는 React with 스프링부트 API서버
토큰쿠키저장에 대해서 질문드립니다.
강의에서 토큰을 보관하기에 보안에도 좋고 적절한 곳이 쿠키라고 말씀해주셨는데 보통 쿠키에 저장을 많이 하는편일까요?내년 하반기에 크롬에서 쿠키차단예정을 하고 있다고 들어서 왠지 다른 대체제가 필요할거같은데 쿠키를 사용 못하게 된다면 보통 클라이언트에서는 로컬스토리지 이외에는 대체제가 없는지 궁금합니다.
-
미해결코드로 배우는 React with 스프링부트 API서버
Product게시판 이미지에 대해서
토큰적용 후 발생하는 현상에 대해서 질문드립니다.Product게시판에 이미지에 경우, 아래와 같이 표시가되는데요 이때 토큰을 헤더에 설정 되어있지않기떄문에 {"error":"ERROR_ACCESS_TOKEN"}가 발생합니다.jwtAxios를 사용하여 처리는 가능할듯한데 문제는 결과값이 문자열로 되돌아와서 이미지표시가 좀 힘들어보이고 어떻게 처리해야할지 모르겠습니다.이런경우 어떠한방식으로 처리하는게 좋을까요?src={`${host}/api/products/view/s_${product.uploadedFileNames[0]}`}
-
미해결코드로 배우는 React with 스프링부트 API서버
강의 순서 및 누락 건 확인
안녕하세요 강의 진행 중에[로그인 적용 확인] -> [로그아웃 처리] 를 보다 보니 중간에 쿠키 설정이 다되어 있어서뭔가 순서가 뒤바뀐 건가요...
-
미해결코드로 배우는 React with 스프링부트 API서버
로그인 적용확인 회차에대해서
위에 내용하고 겹치는듯한데 맞나요?... 로그인 적용확인 회차부터해서 뭔가 내용이 이어지질 않는듯한 느낌이듭니다....
-
해결됨스프링부트 시큐리티 & JWT 강의
3강에서 로그인폼 작성후 실행하면 작성한 입력폼이 안 뜹니다.
안녕하세요 강의 듣고 있는 수강생입니다.좋은 강의 가르쳐주셔서 감사합니다.제가 따라 가다가 막힌 부분이 있어서 질문 남깁니다.3강에서 login - > loginForm 으로 리턴해주고 loginForm을 작성한 후 테스트 할 때loginForm에 작성한 로그인 입력폼이 뜨지 않고loginForm 문자 그 자체만을 반환하고 있습니다.오류도 뜨지 않아서 maven 업데이트나 프로젝트 클린 후 실행해봐도 똑같은데 무엇때문인지 알 수 있을까요 ??
-
해결됨코드로 배우는 React with 스프링부트 API서버
강의 영상에 혹시 빠진게 있나요??
조금 전 있던 질문글 이랑 동일한 에러가 발생해서 코드 확인했더니 TodoController 클래스에서 put, delete를 구현하지 않았더라구요. 제가 뭔가 빼먹었나보다 하고 소스코드 찾아보니까 소스코드에는 있길래 소스코드 참고해서 해결했거든요. 그런데 그 다음에도 RootConfig 클래스를 만드는거나, CustomServletConfig 클래스에 addCorsMappings 메서드를 추가하는 과정을 소스코드 보면서 해결했었는데, 혹시 강의 영상에는 소스코드에 있는 내용 전부가 작성되는 과정이 나오는건 아닌걸까요? 제가 영상보다 코드치다 하면서 실수로 넘어간 부분이 있을수도 있는데, 강의 영상에는 빠져있고, 소스코드는 올라와 있는 부분들이 있는것 같아서요. 한번 확인 부탁드려도 될까요..? 제 착오였다면 죄송합니다 ㅠㅠ