묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 데이터 JPA
db에서 데이터 확인이 안됩니다..
안녕하세요, 강의 수강 중에 궁금한 점이 있어 질문드립니다! 섹션4의 벌크성 수정 쿼리 부분을 실습하고 있는데요, 테스트 코드 실행 후 db에서 변경된 내용을 확인하려고 했는데 데이터가 없다고 나옵니다..테스트 클래스에 @Rollback(false)은 설정했는데 어떤 부분이 문제인 걸까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
OSIV 관련하여 질문드립니다!
User user = userQueryService.findById(userId); postService.createPost(user)OSIV를 끈채로 특정 유저가 게시글을 작성하는 로직을 Command와 Query를 분리하여 위와 같이 컨트롤러에 작성하고자 합니다.OSIV가 꺼져있기에 user는 준영속상태로, createPost 트랜잭션 안에서 user를 변경하지 않고 post 생성에만 사용한다면 위와 같이 사용하는게 맞는지 궁금합니다!만약 createPost에서 user를 변경하는 상황이 발생한다면, 예외가 발생하는지도 궁금합니다!
-
해결됨Spring Boot JWT Tutorial
설명란이 대체 어디에 있죠?
코드를 복사 붙여 넣기 할 수 있도록설명란에 추가한다고 하셨는데대체 설명란이 어디에 있죠?목차에도 따로 없고강의 페이지의 휠을 내려도 따로 자료가 없는데요??알려주시면 감사하겠습니다..현재 Security 설정, Data 설정하는 부분에서지금 코드를 일일이 꾸역꾸역 치고있네요..자료 알려주시면 감사하겠습니다.
-
미해결스프링 시큐리티 OAuth2
OAuth 2.0 Authorization Grant Code 네이버 로그인 구현
안녕하세요 정수원님 강의 내용과 조금 다른 부분이긴한데 질문드리고자 합니다.Vue와 Spring Boot(Spring Security OAuth Client로 활용)로 네이버 로그인을 구현해보고 있습니다.웹, 안드로이드, iOS 등에 대한 소셜로그인을 Authorization Grant Code방식으로 구현하려고 하고 있으며 REST API 방식으로 동작하도록 하고싶습니다.하지만 Spring Security의 org.springframework.boot:spring-boot-starter-oauth2-client 의존성을 추가하여 OAuth2UserService를 구현하게되면 백엔드에 your-server-host/ oauth2/authorization/naver로 요청을 보내면 사용자에게 로그인을 받고 Authorization Grant Code를 받아와 AccessToken을 반환받고 이를 통해 UserInfo를 Resource Server로부터 받아오는 과정을 처리해줍니다.이 과정속에서 프론트에게 로그인 성공시 실행되는 AuthenticationSuccessHandler 구현 과정에서 sendRedirect를 통해 accessToken과 refreshToken을 전달하려고 했으나 이런 방식은 REST API에 적합하지 않은것 같다고 느껴집니다.심지어 front에서 버튼을 클릭하면 GET 요청으로 /oauth2/authorization/naver를 호출하도록 해보려고 했으나 이 경우에 네이버 로그인 호출하는 과정에서 CORS에러가 발견되어 하이퍼링크로 호출하도록 구현하였습니다. 위의 배경으로 궁금한 점은 다음과 같습니다.프론트엔드와 Authorization Grant Code를 REST API 방식으로 구현하기 위해서는 어떻게 해야할까요? 제가 생각한 방식과 굉장히 유사한 블로그 포스팅을 발견했는데 Spring Security는 사용하지 않는 것 같습니다.(https://blog.naver.com/PostView.naver?blogId=varkiry05&logNo=222295764870) Spring Security를 활용하는 방안이 있다면 추천 부탁드립니다.. 혹은 굳이 Spring Security를 사용하지 않고 구현해도 된다고 생각하시는경우에도 의견주시면 감사하겠습니다.위의 경우에는 client-id를 프론트에서 관리하며 강좌에서 이런 경우에는 보안상의 이슈가 발생할 수 있다고 하셨는데 어떻게 대안점이 있을까요? (https://www.rfc-editor.org/rfc/rfc6749#section-2.3.1) rfc6749에서는 client-id는 secret이 아니라고 하는것 같습니다. 제가 처음 구현하려던 방식과 유사한 tech blog를 찾았습니다. 내부적인 커스터마이징을 통해 redirection을 구현한 것 같습니다.(https://tech.kakao.com/2023/01/19/social-login/) 이때 accessToken과 refreshToken을 redirect시킬 때 param으로 넘긴다면 url주소로 토근값들이 보일것인데 보안상으로 괜찮을까요? ps.실제로 https://olive.kakao.com/login (카카오 테크 블로그에 소개된 redirection이 구현된 페이지)의 js 코드를 까보니 <a> 태그 형식의 하이퍼링크로 호출함을 확인했으며, redirect되는 callback url에서 token값을 확인할 수 있음을 크롬 개발자도구 네트워크탭에서 확인했습니다. 감사합니다.
-
해결됨스프링 부트 - 핵심 원리와 활용
StockConfigV1 오탈자 제보
안녕하세요 영한님!메트릭 등록5 - 게이지 강의 듣던 도중에 오탈자가 있는것 같아서 제보 드립니다StockConfigV1 작성 시 myStockMetric Bean 등록 부분에서 PDF 자료에서는 orderService가 아닌 orderService.getStock() 으로 되어 있습니다.return new MyStockMetric(orderService.getStock(), registry);영상은 orderService로 작성하셔서 강의를 듣는데 무리는 없지만 공유 주신 PDF 자료와는 달라서 제보 드립니다!매번 좋은 강의 내주셔서 감사합니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
오타발견해서 적어봅니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.31페이지정리하면대다대매핑을일대다, 다대일매핑으로풀어내서사용하자.대다대매핑->다대다매핑
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 database 관련 질문
1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]회원 가입 후 id 값이 달라서 올라온 질문들을 보고 시퀀스 값을 확인해 보려고 하는데 왼쪽 목록에 시퀀스가 없는데 어떻게 볼 수 있나요?
-
미해결스프링 시큐리티
스프링부트 버전 문의 드립니다.
현재 스프링부트 2.7.10 사용하고 있는데 강의 소스와 많이 틀려서 고생하고 있네요 ㅜ버전을 다운그레이드 해서 공부할려고 하는데 그게 좋을까요? 실무에서 아직 2.7.10 이하 버전을 많이 사용한다면 버전을 낮추고 싶네요..강사님 의견은 어떠신가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트할때 이해한게 맞는지, 또 이 문장이 왜 들어가있는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]1-1)MemberServiceIntegrationTest 파일에서@Autowired MemberService "memberService"@Autowired MemberRepository "memberRepository"임의로 제가 "" 를 표시했는데,위 내용의 의미가 앱이 실행될때 @configuration 에서 @Bean 된 MemberService,MemberRepository 메서드를 찾아서 호출한다음 반환값을 제가 임의로 ""표시한 memberService, memberRepository 로 넣어주는걸로 이해했는데 맞는지 궁금합니다!1-2)test파일에서 @Autowired MemberService memberService 이 문장이 실행되면 스프링 빈에서 땡겨온 (db에 연결된)멤버 서비스 객체를 이용할 수 있다고 이해했는데요, @Autowired MemberRepository memberRepository 이 문장은 왜 들어가있는지 이해가 안갑니다. 필요한 문장인가요?? 2). 테스트라는게 저는 처음에 다른 특별한 무언가로 처음부터 규격이 정해져 있고 뭐 그런건줄 알았는데, 그냥 test 폴더에 test 객체를 생성해서 돌리는거같다고 생각되서요. 어렵게 생각 안해도 되겠죠?? 3) 강의 듣다보니 Jdbc 쪽은 이해가 잘 안되는데 가볍게 받아드리고 JPA 부터 신경써도 되겠죠?다소 긴 질문 죄송합니다 ㅠㅠ
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
SpringConfig에서 자동 주입을 할 수 없습니다. 'EntityManager' 타입의 bean을 찾을 수 없습니다. 의 문제
위와 같은 오류가 있습니다. 이 상태에서 통합테스트 회원가입()을 실행하면이렇게 실패합니다. 해결 방법을 잘 모르겠어서 질문드립니다.
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
Back-end 에서 View(Thymeleaf) 에 데이타를 던지자. 질문
파싱 에러가 발생하는 것 같은데 원인을 잘 모르겠습니다.에러는 템플릿 구문 분석 중 오류가 발생을 하였습니다. 필드 ${prod.No}에서 발생을 하고 있는데.우선 설명을 주신 내용 그대로 오프젝트 get() 타입으로 반환할 때 파싱에서 결괏값을 보여주지 못하고 백지로 뿌리고 있는 상태이며, 필드 타입으로 반환할 때인식을 하지 못하는 문제가 발생을 하고 있습니다.물론 필드의 대소문자는 영상에서 적용한 No 과 동일하며 SpringEL의 경우도 동일한 ${prod.No}인데 해결 방법이 없을까요?해결 : map.clear() 해제하여 정상적인 결과가 나오고 있습니다.
-
미해결실전! 스프링 데이터 JPA
Unknown entity 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]선생님 안녕하세요 현재 스프링 데이터 JPA와 DB 설정, 동작확인 15:43 부분 강의 수강중입니다.코딩은 다음과 같이 진행 하였는데요 Unknown entity 오류가 나오고 있습니다 ㅠㅠ 어떻게 처리하면 될까요 ? ㅠnknown entity: com.sun.proxy.$Proxy100; nested exception is java.lang.IllegalArgumentException: Unknown entity: com.sun.proxy.$Proxy100org.springframework.dao.InvalidDataAccessApiUsageException: Unknown entity: com.sun.proxy.$Proxy100; nested exception is java.lang.IllegalArgumentException: Unknown entity: com.sun.proxy.$Proxy100
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hellospring 처음 시작 실행 오류
No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.4 was found. The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.6.1' but: java 버전 8을 깔아서 그런 건지 잘 모르겠지만 실행이 안 되네요 ㅜ
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
인증요청시 문의드립니다.
강의진행중 궁금한게 있어서 문의드렸습니다!강의중에 토큰이 탈취될수도 있다고하셔서 String jws = Jwts.builder() .setSubject(String.valueOf(userId)) .signWith(key) .setIssuedAt(new Date()) .compact();코드를 넣어주셨습니다. 매번 다른 accessToken값이 나올수 있도록이요! 그 결과 로그인 시마다 매번 다른 토큰값이 나오는데, 로그인을 하고나서 기존의 토큰값으로 /foo 메소드를 호출하여도 인증이 되는데 왜 그런걸까요??1. 로그인시 abc토큰이 나와서 abc토큰으로 /foo 컨트롤러를 호출함 인증됨2. 또 한번 로그인시 abcd토큰이 나옴. 그런데 이전 로그인 토큰이였떤 abc토큰으로 /foo 컨트롤러를 호출하여도 인증 성공됨.왜 그런지 궁금합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 중에 등장한 구글 확장프로그램 이름 문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]View 환경설정 강의에서 3분 45초에 공식 문서를 볼 때 오른쪽 위에 등장하는 구글 확장 프로그램 이름이 어떻게 되나요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
AOP 출력시간 개수
6분20초 경 강사님께서는 START가 3개 나오는데 전 1개만 나옵니다. 상관없는걸까요??
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
시즌3 예정에 열렬한 환호를 보냅니다.
시즌3 예정에 열렬한 환호를 보냅니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2 회원정보 저장 오류
회원가입과 돌아오는 페이지는 정상으로 작동은 하나 h2에 저장 되지도 않고 강의 내용처럼 insert 문이 나오지 않습니다https://drive.google.com/file/d/1Mnh-hxiK1AQlaSlFOuuQrzRgAT0lEI9t/view?usp=sharing
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findByName() 테스트 시 NoSuchElementException 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]안녕하세요 강의 잘 보고 있습니다 ㅎㅎ다름이 아니라 저는 getter와 setter를 따로 작성하지 않고 Lombok을 이용해서 getter, builder 어노테이션으로 getter와 setter를 생성했는데요save() 테스트는 정상적으로 통과하지만findByNmae() 테스트 시에는 아래와 같은 오류가 발생합니다. 그리고 아래 처럼 get() 메서드에 노란 점선이 표시되며 옆에 이상한 문구가 뜨는데 lombok을 사용해서 발생한 오류일까요 ??스프링 부트 버전은 강의와 똑같이 2.3.1 버전을 사용중이며각 클래스별 코드는 아래와 같습니다.Memberpackage com.example.hellospring.domain; import lombok.Builder; import lombok.Getter; @Getter public class Member { private Long id; private String name; @Builder public Member(Long id, String name) { this.id = id; this.name = name; } } MemberRespositorypackage com.example.hellospring.repository; import com.example.hellospring.domain.Member; import java.util.List; import java.util.Optional; public interface MemberRepository { // 회원 저장 Member save(Member member); // id로 회원 찾기 Optional<Member> findById(Long id); // Optional 타입은 값이 Null일 때 null 반환 // name으로 이름 찾기 Optional<Member> findByName(String name); // 전체 찾기 List<Member> findAll(); } MemoryMemberRepositorypackage com.example.hellospring.repository; import com.example.hellospring.domain.Member; import java.util.*; public class MemoryMemberRepository implements MemberRepository { private static Map<Long, Member> store = new HashMap<>(); private static long sequence = 0L; @Override public Member save(Member member) { Member.builder() .id(++sequence) .build(); store.put(member.getId(), member); return member; } @Override public Optional<Member> findById(Long id) { return Optional.ofNullable(store.get(id)); } @Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } @Override public List<Member> findAll() { return new ArrayList<>(store.values()); } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
/hello 404에러
경로도 바탕화면에 두었다가 영어로 된 파일로 옮겼다가고 해보고, 이것저것 건드려 봤는데 404에러가 사라지지 않습니다. https://drive.google.com/file/d/1Ll-596n9jFVOQtlAAJpPz4_CsVO-dmuO/view?usp=sharing