묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Unsupported class file major version 64 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다음과 같은 설정으로 프로젝트를 만들었습니다:Java버전, Spring버전을 20과 3.0.5로 바꾸어도 같은 결과가 뜹니다. 어떻게 해결해야 할까요?
-
미해결토비의 스프링 부트 - 이해와 원리
강의 다운로드가 가능한가요?
현재 파견나와서 인터넷 설치가 안되어있어 테더링으로 하려니 부담이 되서요회사에서 다운 후 집에가서 공부하고 싶은데 가능한지 궁금합니다.안되면 어쩔 수 없구요
-
미해결스프링 시큐리티
스프링 시큐리티 6부터는 아예 로직이 바뀐 듯 싶습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.질문이라고 보기에는 조금 어려울 수도 있는 글이긴 한데, 물론 강의는 스프링 시큐리티 5로 되어있긴 하지만 저는 시큐리티 6로 따라보고 있는데요.지금까지 강의 내용은 완벽히 일치하진 않아도 소스 보면서 비슷한 부분이 많이 남아 있었는데, 6버전부터는 아예 Vote 작업과 관련된 내용이 모두 deprecate 되고 모든 처리는 AuthorizationFilter 에서 진행되는 듯 합니다.사실 강의 보면서도 Voting 작업의 실제 필요성에 대해서 의문이 있긴 했는데, 아마 그러한 의견이 반영되었는지는 잘 모르겠습니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Hello.html
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.이 코드로 했을때 hello.html이 안되길래질문글들을 찾아봤는데 이 코드로 해보라는 말이 있어 해봤더니 돼었습니다왜 강의에 있던 코드로는 진행이 안되었던건가요?또 이와관련해서 앞으로의 강의에서도 유의해야할 점이 있나요?
-
해결됨스프링 시큐리티
안녕하세요 강사님.
안녕하세요 강사님강의 내용을 듣고 제가 이해한 부분이 맞는지 여부와추가적으로 질문드리고 싶은 내용이 있습니다. 유저가 최초 로그인을(인증) 하게 되면SecurityContextPersistenceFilter에 HttpSessionSecurityContextRepository를 통해 SecurityContext를 생성하고UsernamePasswordAuthenticaionFilter에서 인증 처리를 거친 후에SecurityContextPersistenceFilter에서 Session에 저장하여 SecurityContext를 저장한다. 인증 이후에 유저가 요청하게 되면SecurityContextPersistenceFilter에 HttpSessionSecurityContextRepository를 통해 Session에서 SecurityContext를 가져와서SecurityContextHolder에 저장한다. 우선 제가 이해한 부분은 이렇습니다.맞게 이해했는지 궁금합니다. 그리고 여기서 추가로 여쭤보고 싶은 점이1. SecurityContextPersistenceFilter에 설명 강의 부분에서최종 응답 시 공통 로직으로 SecurityContextHolder에서 clearContext()를 한다고 설명해주셨는데SecurityContextHolder를 clear하지 않고 유지해야 Authentication객체를 계속 유지하는 게 아닌지 궁금합니다.또한 로그인한 유저 객체를 가져올 때SecurityContextHolder.getContext().getAuthentication()을 통해서 가져오는데최종 응답 시에 clearContext()를 한다면 어떻게 가져오는지 궁금합니다. 2. ajax 방식을 연습할 겸 따로 프로젝트를 만들어서 진행해봤습니다.거기서 FormLogin방식 자체를 사용하지 않았더니 filterChainProxy에 UsernamePasswordAuthenticationFilter 자체가 등록되지 않는 것 같습니다.UsernamePasswordAuthenticationFilter는 FormLogin 방식에서만 등록되는 필터인가요?그리고 인증 이후 SecurityContextPersistenceFilter에서 SecurityContextHolder에 값을 저장하는 로직이 궁금합니다.자체 필터를 등록하고 해당 필터에서 HttpSession에 SecurityContext key("SPRING_SECURITY_CONTEXT")로 authentication을 저장해도SecurityContextPersistenceFilter에서 SecurityContextHolder에 SecurityContext를 설정하지 않는 것 같습니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
정적 컨텐츠 서빙 흐름 질문드립니다
안녕하세요, 정적 컨텐츠 서빙 흐름에 관해 질문드립니다.교재의 위 이미지 및 강의 내용에 따르면,localhost:8080/hello-static.html 로 접속 시, 먼저 hello-static 관련 컨트롤러를 우선적으로 찾아보고, 없을 경우 static/hello-static.html 을 찾아보는 순서로 설명을 해주셨습니다.정말 그런가 하여 hello-static에 매핑되는 컨트롤러를 다음과 같이 추가(+resources/templates/hello-static-template.html 추가)해보았는데, 여전히 정적 컨텐츠인 src/main/resources/static/hello-static.html 이 서빙됩니다.package hello.hellospring; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HelloController { @GetMapping("/hello-static") String helloStatic() { return "hello-static-template"; } }따라서, 흐름도 이미지에 있는 것처럼 확장자(.html)까지 아예 명시하면, 컨트롤러를 거치지 않는 것이 아닌가 생각되는데, 제가 잘못 구현한 부분이 있거나 이해를 잘못 한 부분이 있을까요?감사합니다.관련 강의 및 교재강의 : '섹션 2. 스프링 웹 개발 기초' - 정적 컨텐츠교재 : 14p 정적 컨텐츠 서빙 흐름도 이미지
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
순수 jdbc 회원 목록 IllegalStateException 라이브러리 에러
ERROR 7708 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalStateException: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection] with root cause JdbcMemberRepository 클래스에서 pdf파일을 복붙한 후 전체 Run 누르고 localhost에서 회원 목록을 조회했더니 웹에서 실행이 안됩니다.라이브러리가 안 맞아서 에러가 난 것 같은데 구글링에서 찾아봐도 없어서 질문 올립니다.라이브러리만 따로 수정할 수 있나요?아니면 저 클래스만 다시 작성해야 될까요?앞으로도 스프링부트 쓰다 보면 에러가 계속 날 수도 있는데 spring 홈페이지에서 관련 문서를 찾아보면 될까요?어떻게 하면 될까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
결국 완강을 했습니다!
수강 신청은 몇 달 전에 했는데계속 듣다가 이해가 안가서 좀 쉬다가또 흐름이 끊기고 기억이 사라져 처음부터 다시듣기를 반복하다가 드디어 오늘 거진 3개월 만에완강을 했습니다!최소한의 이해로 따라온 강의지만 꽤 스프링에 대한이해도가 깊어진 것 같습니다ORM인 JPA를 배운 것이 특히 신기하게 집중되고흥미로웠습니다. 복잡한 sql코드를 없앨 수 있어서 그랬던것 같습니다, ㅎㅎ. 모든 로드맵을 구매하였으니 선생님만 믿고 스프링 강의를 무한 반복하여 많은 것을 얻어 가겠습니다!! 감사합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
join 메소드는 리턴값이 있는데 왜 그냥 호출해도 오류가 안나나요?
안녕하세요! 제목처럼 join 메소드는 회원가입시키고 아이디를 리턴해주는데 왜 테스트케이스는 리턴값을 따로 안받아줘도 오류가 나지않나요?memberService.join(member);-> 따로 Long saveId = memberService.join(member);이렇게 안해줘도 오류가 안나서 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Dto
위강의에 MemberDto에 만약 address필드까지 추가해야한다면 MemberDto 리스트를 만들때List<MemberDto> collect = findMembers.stream() .map(m -> new MemberDto(m.getName(),m.getAddress())) .collect(Collectors.toList()); 위와 같이 해준다면 MemberDto에서의 address와 findMembers에서의 address가 같은 주소값을 참조하고 있어 상황에 따라 뜻하지 않는 에러가 발생할 수 있다고 생각하는데 MemberDto에서 address 객체를 아예 새로 만드는 것이 더 좋을까요?? 현업에서는 어떻게 사용하는지 궁금합니다!
-
해결됨토비의 스프링 부트 - 이해와 원리
스프링 컨테이너 설명중 헷갈리는 부분이 있어 질문 드립니다.
안녕하십니까강의 즐겁게 보고 있습니다.Containerless 강의 6분 30초 부분에서 다음과 같이 설명 해주셨습니다."여러개의 Bean을 가지고 있는 스프링 컨테이너가 서블릿 컨테이너 뒤쪽에서 서블릿을 통해서 웹으로 들어온 요청을 받아가지고 스프링 컨테이너한테 다시 넘겨준다."해당 부분 설명이 조금 헷갈리는데 그냥 단순하게 서블릿 컨테이너를 통해 들어온 요청을, 서블릿 컨테이너 뒤에서 동작하고 있는 스프링 컨테이너에 넘겨준다. 정도로 생각하면 될까요?"스프링 컨테이너한테 다시 넘겨준다" 는 부분이 좀 헷갈리는데 제가 이해한것이 맞는지 궁금하여 질문 남깁니다. 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
5:27 이름에 SpringDataJpa만 있으면
빈에 자동으로 등록시켜준다는 건가요?스프링에서 이 인터페이스가 스프링데이터jpa인지 어떻게 알 수 있나요?어떤 방식으로 인식을 하는건가요?
-
해결됨토비의 스프링 부트 - 이해와 원리
애노테이션 관련 질문입니다.
안녕하세요 토비님 강의 잘 듣고 있습니다. 다름이 아니라 항상 스프링을 공부하면서 궁금한내용이 있어서 질문 드립니다.스프링을 보면 정말 많은 곳에서 애노테이션을 사용합니다.해당 강의에서도 @Controller안에 @Component를 적용해서 마치 자바에서 상속을 받는 것 처럼 작동합니다.하지만 제가 자바를 공부 할때 애노테이션을 이용해서 해당 클래스를 불러와 코드를 작성하거나 혹은 애노테이션 끼리의 상속 관계를 만드는 방법은 없었던 걸로 알고 있습니다.그렇다면 누군가가 애노테이션을 불러와서 이러한 작업을 대신 수행하고 있다는 뜻인데 이런 작업들은 '자바'를 이용해서는 어렵다고 생각합니다.그럼 이러한 작업은 스프링이 어떻게 하는지 궁급합니다.많이 부족한 질문 읽어 주셔서 감사합니다. ㅎㅎ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
인텔리제이 에디터 관련 질문드립니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]함수를 연속으로 호출할 때 함수().함수().함수() 이런 형식으로 사용하곤 합니다. 인텔리제이에서 이런 문법을 쓰면 자동완성으로 탭이 연달아 일어나 보기가 껄끄럽습니다. 자동완성을 일자로 해주는 해결방법 있을까요??
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
Testcase 상에서 @Trasactional 사용시
당연히 구글링 해보셨져? 원하는 결과를 못찾으셨나요? 어떤 검색어를 입력했는지 알려주세문제가 발생한 코드(프로젝트)를 Github에 올리시고 링크를 알려주세요.안녕하세요. 호돌맨님 강의 잘 보고 있습니다! Post 관련 테스트를 작성할 때, 저는 @Transactional을 이용해서 DB에 데이터가 반영되지 않도록 시도했습니다.그리고 테스트를 진행하였습니다. 메서드를 각각 테스틀 할 때는 통과했지만, 메서드 모두 동시에 돌릴 때는 테스트 통과에 실패하였습니다. @Transcational, 영속성 컨텍스트로 구글링을 시도했었습니다. @DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)를 사용하면 영속성 컨텍스트를 새로 생성함으로써 테스트가 모두 통과가 되었지만, 매번 영속성 컨텍스트를 새로 생성하는 것은 비효율적이라고 생각했습니다.. 결론적으로 제가 본 바로는 유의미한 결과를 얻을 수 없었습니다.. 아래 코드와 그에 출력되는 결과를 이미지로 첨부해두었습니다. 혹시 어떤 것이 원인인건지 힌트라도 알려주실 수 있을까요?? 구글링 키워드를 알려주셨으면 좋겠습니다..! (해결법은 제가 찾겠습니다!!)PostService.java @Service @RequiredArgsConstructor @Transactional(readOnly = true) public class PostService { private final PostRepository postRepository; @Transactional public void save(PostCreateDto postCreate){ // Post post = new Post(postCreate.getTitle(), postCreate.getContent()); Post post = Post.builder() .title(postCreate.getTitle()) .content(postCreate.getContent()) .build(); postRepository.save(post); } public Long findPostById(Long postId){ Post post = postRepository.findById(postId) .orElseThrow(() -> new IllegalArgumentException("존재하지 않는 게시물입니다.")); return post.getId(); } } PostServiceTest.javaimport com.toktok.core.domain.post.Post; ... @SpringBootTest @Transactional. //똑같이 영속성 컨텍스트를 공유하고 있기 때문에 save가 롤백되어야 하지 않나요??.. class PostServiceTest { @Autowired private PostService postService; @Autowired private PostRepository postRepository; @Test @DisplayName("데이터가 저장 되어야합니다.") void save_test(){ //given PostCreateDto postDto = PostCreateDto.builder() .title("제목입니다.") .content("내용입니다.") .build(); //when postService.save(postDto); //then Post post = postRepository.findAll().get(0); assertThat(post.getId()).isEqualTo(1L); assertThat(post.getTitle()).isEqualTo(postDto.getTitle()); } @Test @DisplayName("데이터는 하나 조회") void find_test(){ //given Long postId = 1L; PostCreateDto postDto = PostCreateDto.builder() .title("글 제목입니다.") .content("글 내용입니다.") .build(); postService.save(postDto); //when Long postById = postService.findPostById(1L); //then assertThat(postById).isEqualTo(1L); } @Test @DisplayName("존재하지 않는 데이터 확인") void not_exist_post(){ //given Long notExistPostId = 2L; Post post = Post.builder() .title("글 제목입니다.") .content("글 내용입니다.") .build(); Post savedPost = postRepository.save(post); //when postService.findPostById(savedPost.getId()); //then assertThrows(IllegalArgumentException.class, ()-> postService.findPostById(notExistPostId)); } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.set get 오류 해결하려고 import 바꾸니 이렇게 오류가 생기네요..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
시간추출오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. https://www.inflearn.com/course/lecture?courseSlug=스프링-입문-스프링부트&unitId=49600&category=questionDetail&tab=community&q=815548
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hello.html 부분 오류 ..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]11행 부분에서 자꾸 오류가 뜨네요 ...
-
해결됨실전! 스프링 데이터 JPA
fetchjoin시 QueryDsl과 @EntityGraph 사용 기준
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 영한님. QueryDsl과 @EntityGraph 사용 기준에 대해 궁금한 부분이 생겨서 질문 남깁니다.fetchJoin을 할 때, 여러가지 방법이 있겠지만 QueryDsl과 @EntityGraph이 가장 편리한 방법이라고 생각합니다. 저의 경우엔 @EntityGraph가 가독성이 더 좋다고 느껴서 간단한 조회용 페치조인의 경우에 사용하고, 검색조건이 있는 복잡한 조회의 경우엔 Querydsl을 사용하는데요. 실제로 이 둘을 사용할 때 어떤 것에 우선순위를 두시는지 궁금합니다. 강의 잘 듣고 있습니다. 감사합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
이번 강의부분은 코드작성 안해도되나요?
듣기만 하라고 하셨는데코드 안따라가도 뒤에 jpa영상에서 문제없나요?