묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Spring Boot 버전 선택
프로젝트 생성시(아래 화면) 2.3.1 버전은 선택할수조차 없는데, 어떻게 해야 하나요? 3.1.3 혹은 3.0.10, 그리고 2.7.15를 선택할수 있는데요?자바 11로 하라고 하셨는데, 20으로 하면 어떻게 되는거죠? 답변좀 주세요.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
external libraries에 아무것도 없어요..ㅠ
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]라이브러리 살펴보기 강의 듣고있는데 external libraries에 왜 아무것도 없는걸까요..?ㅠㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
테스트 실행 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]MemberRepositoryTest의 save()를 실행하면java.lang.ClassNotFoundException이 발생함 이전에 진행했던 파일들의 경로를 옮겼다가 제자리로 돌린거 말고는 강의와 pdf대로 진행했고 재차 확인했으나 해결이 안됨pdf대로 새 프로젝트로 진행했으나 동일하게 java.lang.ClassNotFoundException가 발생함구글링으로 1.캐시무효화, 2.프로젝트 재 빌드,3.그래들-빌드-clean 실행등 해봤으나 해결안되네요 해결방법 알려주세요ㅠ 문제의 프로젝트 파일 링크https://drive.google.com/file/d/1g12BApYMhuBIP_YdDjdhwBm9mqZ6Iepi/view?usp=sharing
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
Component
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]MemberRepositoryV1 에 @Repository 나 @Component를 해줘야 스프링빈에 등록이 되고MemberServiceV1 에서 @AutoWired로 의존성주입이 가능한게 아닌가요? 헷갈려서 질문 남깁니다.아니면 현재 실제 서버를 띄우는게 아닌 TEST 만 진행 중이라서사용을 안하고 있는건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@Autowired 역할
컴포넌트 스캔과 자동 의존관계 설정 강의를 보고 제가 이해한 것이 맞는지 궁금하여 질문 드립니다. 각 컨트롤러, 서비스, 레포지토리에 @Controller, @Service, @Repository 를 붙여주면new로 객체 생성하지 않아도 @Autowired로 스프링 컨테이너에서 가져다 쓸 수 있는 것인가요?그리고 프로그램 동작 중 오직 하나의 컨트롤러, 서비스, 레포지토리만 존재하는 것인지 궁금합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
jsp 공부 질문
외람된 질문이지만 궁금한게 있습니다. 전문대를 다니고 있는데 이번 학기부터 Jsp를 깊게 배우는 것 같은데 스프링 강의랑 병행하면서 학교 진도 따라서 jsp를 제대로 배우는 것도 괜찮겠죠?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
필터 적용시 에러?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.12분에 미인증시 http://localhost:8080/items 하면 로그인부분으로 가야하는데 가지 않고 localhost에서 리디렉션한 횟수가 너무 많습니다. 라고 나옵니다. 오타 있나 코드 다시 봐도 모르겠더라고요 ㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Junit5 테스트 시, JDK 17 stackoverflow error 해결 문의드립니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]jdk 17로 사용하고 있는데회원 리포지토리 테스트 케이스 작성 강의를 보면서Hashmap과 Long 때문에 stackoverflow error가 발생하는데 어떻게 해결해야 하나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Argument Resolver. HTTP 메시지 컨버터
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]@RequestBody타입의 파라미터 컨트롤러가 호출되기전에 @RequestBody의 argument를 처리하는 Argument Resolver가 HTTP 메시지 컨버터를 사용해서 필요한 객체를 생성하고 생성한 파라미터를 컨트롤러로 넘겨주는 것이다.Argument Resolver안에 HTTP 메시지 컨버터가 있다고 생각을 해도 괜찮을까요?Argument Resolver도 매우 다양한게 존재하고, HTTP 메시지 컨버터도 매우 다양하게 존재한다고 하셨는데 Argument Resolver-HTTP 메시지 컨버터가 쌍을 이룬다고 생각해도 될까요?Argument Resolver가 처리할 수 있는 argument는 결국 HTTP 메시지 컨버터가 생성해주는 것으로 이해했습니다.저는 이렇게 이해를 했는데 혹시 다르게 이해한 부분이 있을까요?
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
03. MySQL 설치 및 접속하기에서
mysql 에서 startup 을 켠상태에서 cmd 켜서는 sql 연결이 잘되는데 끄면 안됩니다. 수업진행하는데 문제가 될까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
동시세션제어 관련 질문이 있습니다!!
안녕하세요. 영한님 강의를 들으며 스프링을 공부하고 있는 학생입니다!!mvc 2편 로그인 처리 관련 부분을 듣다가 (HttpSession을 이용하는 부분)궁금한 것이 떠올라서서로 다른 브라우저 두 개를 키고 같은 사용자 계정으로 로그인을 해보았는데요,서로 다른 세션이 생성되는 것을 보고이런 식이면 같은 사용자에 대해 세션들이 굉장히 많이 생성될 수 있을테니깐 공격당하기 쉽겠다라는 생각이 들었습니다.그래서 구글링을 해보았는데요, 동시세션제어 전략들에 대해서 알게되었고그를 사용하기 위해 Spring Security를 사용한다는 것을 알게되었습니다.그래서 검색을 통해 알게 된 정보를 바탕으로 아래와 같이 SecurityConfig.java 파일을 만들어서 작성하였는데요.@Configuration @EnableWebSecurity public class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{ http.sessionManagement() .maximumSessions(1) .maxSessionsPreventsLogin(true); return http.build(); } }제가 기대한 것과 다르게 동시세션제어가 이루어지지 않았습니다...검색을 한참을 해보았는데 마땅한 정보를 얻지 못하여 이렇게 질문 드립니다!! 어떻게 해야 동시세션제어 전략을 적용할 수 있을지 답변해 주시면 정말 감사하겠습니다!
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
스프링 부트 3.1.3버전 CGLIB
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.스프링 부트 3.1.3버전 CGLIB스프링 부트 3.1.3버전으로 해당 강의를 따라가던 중 proxyCheck() 테스트의 로그가 CGLIB$$0이 출력됩니다. 테스트는 성공하였지만 영한님처럼 프록시 객체의 해시코드가 16진수로 이루어진 값이 아니라 0이 나옵니다. 혹시 몰라서 부트를 2.7.14로 다운그레이드 했더니 영한님과 비슷하게 16진수의 해시코드가 나오더라구요. 혹시 스프링부트3 버전 이상부터 프록시 객체의 해시코드 값이 변경된 걸까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
경로 패키지 자동생성??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]인텔리제이 에서 자동으로 경로패키지도 만들어주나요 ?강의내에서 WEB-INF/views/new-form.jsp 를 만들어놓지 않았는데패키지도,jsp파일도요 이렇게 선언했다고 해서 인텔리제이에서 감지해서 자동으로 패키지경로+jsp파일까지 만들어줄수가있나요? 미리 만들어져있길래 소름이 돋아서 물어봅니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 사용자인데 빌드는 어디서 어떻게 하신건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]윈도우 사용자는 cmd에서 하는건가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
최초 세팅 오류
안녕하세요.최초에 스프링부트 파일을 열고 모델을 빌드했을 때 문제가 발생하여 질문 남깁니다.자바 버전의 문제인가 싶어 java8, java17 둘 다로 해봤는데 여전히 오류가 사라지지 않습니다.오류로그와 plugins는 다음과 같습니다.No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.1.3 was found. The consumer was configured to find a library for use during runtime, compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '8.2.1' but:plugins { id 'java' id 'org.springframework.boot' version '3.1.3' id 'io.spring.dependency-management' version '1.1.3' }감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
v5 구조에 대한 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]제가 V5구조를 제대로 이해했는지 헷갈려서 질문글 올렸습니다.핸들로 = 컨트롤러 라고 생각하고있으며,핸들러 매핑 정보에서 컨트롤러를 찾아오고,핸들러 어댑터 목록에서 찾아온 핸들러(컨트롤러)를 처리할 수 있는 어댑터를 찾아온다. 어댑터가 없는 경우 해당 컨트롤러는 지원하지 않는 컨트롤러여서 다른 컨트롤러로 개발을 해야한다.어댑터가 있는 경우, 찾아온 어댑터의 파라미터로 핸들러 매핑 정보에서 찾은 핸들러를 파라미터로 넘겨줌으로써 사용하고자 하는 핸들러를 내부 호출하고 아케텍처 구조에 맞게 처리하여 ModelView를 반환해준다.아키텍처 구조에 맞게 처리한다는 것은 v4 컨트롤러는 view-name을 반환하지만 FrontController에서는 view-name이 아닌 ModelView 객체를 사용해야하니 어댑터 내부에서 ModelView를 반환하도록 처리한다는 의미입니다.이러한 아키텍처를 사용하면 A개발자는 v1 컨트롤러로, B개발자는 v2 컨트롤러로 개발을 하고싶을 수 있는데, 이때 핸들러 어댑터를 통해 실제 컨트롤러를 호출하기 때문에 핸들러 어댑터가 서로 다른 컨트롤러를 맞춤 스펙으로 내부에서 처리(110v -> 220v 바꿔주기)해주기때문에 개발의 유연성이 확대로 이해했습니다.혹시 잘못 이해한 부분이 있을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
RequestMappingHandlerAdapter가 V1,V2,V3의 핸들러들을 모두 처리할 수 있는 이유
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]SpringMemberControllerV1,V2,V3에서 newForm, save, members메서드들이 RequestMappingHandlerMapping에 핸들러 매핑정보로 등록되어있고,RequestMappingHandlerAdapter 가 V1,V2,V3들의 모든 매서드들을 처리하는 것으로 이해하였습니다. 여기서SpringMemberControllerV1, V2, V3의 newForm, save, members메서드들은 인자값과 반환값이 다릅니다.V1,V2인자: HttpServletRequest , HttpServletResponse반환: ModelAndView V3인자: RequestParam, Model반환: String하나의 어뎁터로 인자값과 반환값이 다른 핸들러들를 모두 처리할 수 있는 점이 이해가 잘 되지 않았습니다.RequestMappingHandlerAdapter 를 살펴보았을때, HttpServletRequest , HttpServletResponse 를 인자로 받고 ModelAndView 를 반환하는 handleInternal 함수만 찾을 수 있었습니다.위의 3가지 이유로 `RequestMappingHandlerAdapter V1,V2 버전을 처리하는 것은 이해하였지만, V3를 처리할 수 있는 이유가 무엇인지 궁금합니다. 제가 추측하는 이유는 다음과 같습니다.RequestMappingHandlerAdapter 가 V1,V2를 처리하고 V3를 따로 처리하는 어뎁터가 있나요?RequestMappingHandlerAdapter 가 V1,V2,V3를 모두 처리할 수 있게하는 애노테이션의 기능이 있나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
혹시 강의 중에 PDF 파일 관련해서는 다운 받을 수 없나요?
혹시 pdf 파일은 어디서 다운 받을 수 있나요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
import jakarta.persistence.Entity; jpa 관련 import에러
JPA Member 작성 중 오류가 발생하여 질문 드립니다.import javax.persistence.Entity;import jakarta.persistence.Entity;모두 시도 해봤는데 안됩니다.gradle 프로젝트를 reload 하더라도 Unable to load class 'org.gradle.api.plugins.MavenPlugin'.This is an unexpected error. Please file a bug containing the idea.log file.이런 에러만 계속 발생합니다.maven플러그인이 사라졌다고 해서 gradle 버전변경도 시도해보고 자바 버전 변경도 시도해 봤지만 해결하지 못했습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
WebConfig 구조질문
아래 코드와 같이 webconfig 에 대한 코드를 치고 봤더니 3번째 메서드 logFilter()는 @Bean을 붙여주어서 이 주석을 해제하면 웹설정이 동작하는건 이해가 가는데 첫번째 두번째 메서드는 WebMvcConfigurer 인터페이스의 메서드들을 오버라이딩해서 구현하고 @bean을 안붙였는데 웹 설정이 어떻게 적용이 되는지 궁금합니다.@Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LogInterceptor()).order(1).addPathPatterns("/**").excludePathPatterns("/css/**","*.ico","/error-page/**") ; //오류 페이지 경로 제외 } @Override public void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> resolvers) { resolvers.add(new MyHandlerExceptionResolver()); } //@Bean public FilterRegistrationBean logFilter(){ FilterRegistrationBean<Filter> filterFilterRegistrationBean = new FilterRegistrationBean<>(); filterFilterRegistrationBean.setFilter(new LogFilter()); filterFilterRegistrationBean.setOrder(1); filterFilterRegistrationBean.addUrlPatterns("/*"); filterFilterRegistrationBean.setDispatcherTypes(DispatcherType.REQUEST,DispatcherType.ERROR); return filterFilterRegistrationBean; }