실습 중에 댓글 작성하려고 하는데 오류가 발생해서 오류 로그를 보다가 sqlMessage 로 "Unknown column 'commenter' in 'field list'", 라는 문구를 봤습니다. 따로 commenter 라는 필드를 만드신건 못본거같은데 제가 강의를 흘려 들은건지 잘 모르겠습니다. 근데 이상한건, 맨 처음에 실행하고 댓글을 작성할땐 댓글이 작성이 되고, MySQL 에 들어가서 comment 테이블을 확인해보면 댓글이 들어가긴 했습니다. 근데 두번째 댓글 작성시도부터 오류가 발생했습니다.
안녕하세요. 수업 중 막히는 것이 있어서 질문 글 올립니다. 수업을 다 따라가고 연결테스트를 하려고 했는데, 이렇게 에러가 생겼습니다. 분명히 config폴더가 있고 그안에 config.json 파일이 존재하는데 없다고 하길래, 일단 npx sequelize init 을 했더니 이번에는 config 파일이 이미 존재한다는 소리를 하길래 --force 를 하긴했습니다. 그런 다음에 다시 실행하니까, 이렇게 오류메시지가 생겼어요. 강의에는 models 폴더에 user라는 파일을 만들라는 건 듣도보도 못했는데, 뭐가 잘못된건지 잘 모르겠습니다.
안녕하세요. 현재 강의를 통해 JWT를 구현하여 전체적인 개념을 익힌 백엔드 개발 취준생입니다. 배운것을 저의 웹 프로젝트에 적용하려고 했지만 이 api를 호출해서 하는 것은 자바스크립트를 사용해서 하는 것이 있길래 백엔드 개발자라면 어디까지 구현해야할지가 참 어려운 것 같습니다. RestController로 API 개발까지는 수업을 통해 구현할 수 있지만 나머지를 웹에 적용하는 것은 어려운 것 같습니다.
Cannot find module './app.controller' or its corresponding type declarations. Cannot find module './app.service' or its corresponding type declarations. 저런 내용이 아예 없는데 코드에서 저게 잘못됐다고 뜨네요.... 파일구조도 다 맞는것 같은데 왜 계속 저런 오류가 뜨는걸까요ㅜㅜ
mallapi에서 malldb를 연결 했고, apiserver에서 apidb를 연결했습니다. 4강 조회기능에서 test를 위해 malldb에 테이블 확인을 하시는데 왜 갑자기 테이블이 생긴걸까요? 저희는 mallapi는 연결만 하고 구현은 안된거 아닌가요? apiserver에서 구현한 todo는 apidb 안에서 생성되는 걸로 구현이 되어있는데 뭘 잘못 한건가요?
안녕하세요. application.yml에 동일 OAuth2 제공업체의 redirect-uri를 여러 개 등록할 수 있을지 궁금합니다. 현재 OAuth 제공업체에 개발 및 테스트용과 배포용으로 redirect-uri를 여러 개 등록하였습니다. 해당 redirect-uri를 application.yml에 복수로 등록하여 사용할 수 있을까에 대한 의견이 궁금합니다.
안녕하세요 먼저 좋은 강의 정말 감사드립니다. 섹션2 인가코드(프론트에서 발급) 강의와 강의 자료에서 get 요청을 통해 인가코드 전달을 한다 고 설명하셨는데, 프론트엔드 코드에서는 post로 요청하고 있고, http body로 jwt 토큰을 받으려면 post로 요청해야하는게 맞는 것 같은데, 제가 잘못 이해하고 있는건지 잘못 설명하신건지 헷갈려서 질문글 남깁니다. const response = await axios.post("http://localhost:8080/member/google/doLogin", {code});
안녕하세요 레디스 강의에 이어 잘 수강하고 있습니다! filterchain 구성에서 포스트맨으로 테스트 시에 raw password가 그대로 컨트롤러에 전달되는데, 실무에서는 (Q.1) 이렇게 하는 방식이 허용되는지 궁금합니다. (Q.2) 안된다면 어떤식으로 해결하는지 궁금하네요!
안녕하세요. 이번 강의를 들으며 스프링 시큐리티와 jwt 의 기본을 다시 익히면서 공부하였습니다. 강의를 들으며 코드를 보는 와중에 궁금증이 생겨 질문을 남기게 되었습니다. JwtFilter에 TokenProvider 를 선언 시 final 키워드를 빼신 이유에 대해 여쭤보고 싶습니다. 다른 클래스에서는 TokenProvider를 선언 시 final 키워드를 붙이신 것으로 확인이 되었는데 필터에서만 제외하신 이유가 있을까요?
위 이미지는 교재 376페이지의 상단 부분입니다. testUpload()를 실행시켰더니 "Tests Passed:"라는 메시지와 함께 실행성공되었습니다. 그런데, 위 이미지에 나와있는, "S3의 버킷"을 AWS 어디에서 찾을 수 있는 지 모르겠습니다. 아래 이미지는 나의 AWS S3 버킷 부분입니다.
안녕하세요. 좋은 품질의 강의를 제작해주셔서 감사합니다. 프론트엔드 부분을 vue.js에서 Next.js로 변경하여 프로젝트를 진행하고 있습니다. 해당 과정에서 막힘이 있어 질문을 드립니다. Next.js를 기반으로 Auth.js 라이브러리를 사용하여 프론트엔드 소셜 로그인을 구현하고 있습니다. 소셜 로그인 흐름을 다음과 같이 생각하고 있습니다. 1. 유저가 소셜 로그인 버튼을 누른다. 2. 프론트엔드에서 해당 소셜 로그인 화면을 리다이렉트 시킨다. 3. 유저는 소셜 로그인을 진행한다. 4. 소셜 로그인 성공 시, 프론트엔드 서버는 인증 코드를 소셜 서버로부터 받은 후, 백엔드로 소셜 로그인 API를 인증 코드 첨부하여 요청한다. 5. 백엔드 서버에서 인증 코드를 가지고 액세스 토큰 발급, 엑세스 토큰으로 유저 정보를 받아서 JWT를 만들어 프론트엔드로 반환해준다. 하지만 다음 피드백을 받았습니다. "Auth.js를 사용하면 소셜 서버로부터 인가코드를 직접 받아올 수 없어 백엔드 서버로 인가코드 요청을 할 수 없다." 위 의견이 맞다면, 백엔드 서버에서 소셜 로그인 전 과정을 진행하고 JWT 값만 프론트엔드로 반환하는 방법 밖에 없는걸까요? 강의에서 사용되지 않은 기술에 대해서 질문하여 죄송합니다. 감사합니다.
TodoServiceImpl.java 작성중에 중간에 소스가 갑자기 바뀌었는데요. 그리고 아래와 같이 작성하셔서 따라 작성하였는데요. PageResponseDTO<TodoDto> responseDTO = PageResponseDTO.<TodoDto>withAll() .dtoList(dtoList) .pageRequestDTO(pageRequestDTO) .totalCount(result.getTotalElements()) .build(); 뭘 놓친건지... 위와 같이 에러 나서 진행이 안돼요. 카페 들어가서 해당 강의 소스도 찾아봤는데 수업하신 내용이랑 조금 다르게 되어있긴 하지만 사용법에는 큰 차이는 없어 보이거든요 ㅠ lombok도 많이 안써봐서... 잘 모르겠어요..
안녕하세요. 강의 감사히 잘 듣고 있습니다. 강의를 듣다가 궁금한 점이 생겨 질문 드리고 싶습니다. 강의 16분쯤에 회원가입이 되어있지 않다면 회원가입한다고 말씀하셨습니다. 이때 socialId 로 회원가입 여부를 판단하신다고 하셨는데, 왜 email 로는 하지 않으셨는지 궁금합니다. email 도 unique 제약조건을 걸었기 때문에 email 도 가능하다고 생각이 들었는데 강사님의 의견은 어떠한지 여쭤보고 싶습니다. 질문 읽어주셔서 감사합니다.
안녕하세요. 최초 10분이 지난 후 refreshToken 정보를 이용하여, new accessToken 을 발급받는 것을 적용한 이후에는 오랜 시간이 지나도 다시 new accessToken 발급을 하지 않는 현상이 있더군요. 의문을 가지다가 Redis 에 연동하고, ttl JWT:ACCESS: user8@aaa.com 로 accessToken의 남은 시간을 체크해보니 문제가 있다는 걸 확인했습니다. chatGPT 로 점검해서 아래와 같은 코드로 수정한 이후 정상 동작하는 거 같습니다. public static String generateToken(Map<String, Object> valueMap, int min) { SecretKey key = null; try { key = Keys.hmacShaKeyFor(JWTUtil.key.getBytes("UTF-8")); } catch (Exception e) { throw new RuntimeException(e.getMessage()); } // 1. claims 복사 및 exp/iat 제거 Map<String, Object> claims = new HashMap<>(valueMap); claims.remove("exp"); claims.remove("iat"); // 2. 발급시간/만료시간 생성 Date now = Date.from(ZonedDateTime.now().toInstant()); Date exp = Date.from(ZonedDateTime.now().plusMinutes(min).toInstant()); // 3. JWT 생성 return Jwts.builder().header() .add("typ", "JWT") .add("alg", "HS256") .and() .issuedAt(now) .expiration(exp) .claims(claims) .signWith(key) .compact(); }