묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 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; }
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
support되는 핸들러 어댑터가 여러개일때는 어떻게 처리해야할까요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요, 강의를 듣다가 궁금한점이 생겼습니다.이제 핸들러 어댑터에서 support를 사용했는데 해당 컨트롤러를 처리할 수 있는 핸들러 어댑터가 2개 이상일때는 어떤 식으로 처리를 해주는게 똑똑하게 처리한걸까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Annotation Processors 설정
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]프로젝트를 새로 생성한 다음에 매번 Annotaion Processors를 체크 해주는걸로 알고있는데, 체크를 안해줘도 lombok 사용이나 코드가 실행되는데 문제가 없었던것 같습니다. 혹시 어떤 이유로 해당 기능을 체크해주는 건가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
보안에 관련한 한가지 의문점이 생기네요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다른 방식도 물론이겠지만GET방식으로 데이터를 전송하다 보면간단한 해킹 공격으로도 해킹당하기 매우 쉬울거같은데이런 부분은 Spring Security를 배우면 알수있는건가요? 아니면 네트워크 보안쪽으로 따로 배우는 무언가가 있는건가요 ?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
session 객체를 thymeleaf 에서 어떻게 꺼낼 수 있죠?
@GetMapping("/basic-objects") public String basicObjects(HttpSession session) { ... }위 컨트롤러 작성하는 부분입니다.관련된 html 파일은 basic-objects 인데, ${#session} 으로 세션을 꺼내고 ${session} 으로도 세션을 꺼내네요.이게 가물가물한데 컨트롤러 메서드에서 파라미터로 호출하면 자동으로 모델에 넣어주기 때문에 thymeleaf 에서 ${session} 을 꺼낼 수 있는거죠?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
메뉴얼 강의자료는 어디서 다운받을수 있나요?
메뉴얼 강의자료는 어디서 다운받을수 있나요?강의들으면서 간단한 코드들부터 계속 손으로 치고 스샷으로 남겨놓으면서 공부하고있는데 메뉴얼 자료를 받을 수 있나요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
${item.itemName}에 질문이 있습니다.
SpringEL강의에서 이해한 바로는 ${item.itemName}은itemName필드의 Getter를 호출해서 그 값을 받아오는걸로 이해했는데 강의에서 th:field="${item.itemName}"을 했을 때 id 와 name값이 "itemName"인지 이해가 안됩니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
단축키 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 단순하고 실용적인 컨트롤러 - v4 강의10분23초쯤에F2를 눌러서 파라미터 추가하는게 있는데 어떻게 하는거예요? 해도 안되는데여,,ㅠㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@GetMapping에 경로 입력 시에 사용되는 '/'
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 질문이 있어서 글 남겨요.BasicController에서 @GetMapping의 경로를 입력해줄 때 @GetMapping("/variable")와@Getmapping("text-basic")으로 이 둘은 '/'의 유무로 차이점이 생기는데 '/'를 붙이는 것과 안 붙이는 것의 차이를 알 수 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
2023년에 강의를 들으시는 분들 중 View 환경설정 강의에서 thymeleaf URI 설정 오류 해결법 중 하나
질문은 아니고 해결한 문제가 있어서 커뮤니티 질문 글에라도 올립니다![질문 내용]View 환경설정 강의에서 thymeleaf URI 설정 오류 해결법 중 하나를 찾아서 말씀드립니다 현재는 2023.08.28 이고강의 초반에 IntelliJ community 버전을 사용해도 괜찮다고 하셔서 community 버전을 사용하고 있었는데인텔리제이 커뮤니티 버전을 사용하게되면<html xmlns:th="~thymeleaf.org"> 의 thymeleaf uri가 안 가져와집니다. 그 이유는 인텔리제이 community버전에선 application.properties를 지원하지 않기 때문인 것 같습니다.그래서 IDEA 버전으로 변경한 뒤잘 돌아갑니다! 그럼 참고하시고 저와 같이 시간 날리지 않으셨으면 좋겠습니다열공하세요!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
servlet이 thymeleaf 보다 좋은점이있나요 ?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]해당 강의내용을 보다보니 thymeleaf와 같은 작용을 하되 더 비효율적인거같은데thymeleaf보다 더 좋은점이있나요 ?