[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] ErrorPageController에서 RequestDispatcher 상수 추가하는 부분에 스프링3버전 이상부터는 javax가 아니라 jakarta로 해야 된다고 적어야 할 것 같아요! 이걸로 좀 헤맸네요 public static final String ERROR_EXCEPTION = "jakarta.servlet.error.exception"; public static final String ERROR_EXCEPTION_TYPE = "jakarta.servlet.error.exception_type"; public static final String ERROR_MESSAGE = "jakarta.servlet.error.message"; public static final String ERROR_REQUEST_URI = "jakarta.servlet.error.request_uri"; public static final String ERROR_SERVLET_NAME = "jakarta.servlet.error.servlet_name"; public static final String ERROR_STATUS_CODE = "jakarta.servlet.error.status_code";
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 영한님. 이번 강의를 들으면서 실제 MyBatis나 JPA를 사용했을 때 커넥션이 커넥션 풀로반환되는 시점이 궁금했습니다. GPT에게 물어본 결과로는, 트랜잭션 단위로 커넥션을 커넥션 풀로 반환한다는 답변을 받았습니다. 예를들어 트랜잭션 1에서 findById(), findByUsername()을 호출한다면 트랜잭션 1에서 획득한 커넥션 1을 가지고 findById()에 의한 select 쿼리를 호출 후 커넥션1을 반환하지 않고 그대로 유지하다가 findByUsername()으로 두 번째 select 쿼리를 호출한다는 답변을 받았습니다. 이부분이 맞는지 질문 드리고 싶습니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 애노테이션에 대해서 @xxx 을 붙이면 이런기능이 된다. 이렇게만 알고 있는데요, 실제로 컴파일할 때 어떻게 이루어지는지 조금더 자세한 설명같은게 없을까요? https://developer-youn.tistory.com/122 위의 링크에 있는 정보보다 조금더 deep한 내용이었으면 좋겠습니다.
영상에선 itemservice-db파일 기존의 코드를 수정해서 사용하라고 하셔서 그렇게 했는데요 거기에 깔려있는게 2.6.5입니다. id 'org.springframework.boot' version '2.6.5' 근데 강의 자료에선 이제 3.0이상을 쓰라고 하셔서요 이게 일단 거기 있는데로 2.65로 진행해도 되는건가요? 아님 spring.io가서 3.0을 다시 깔아야하나요 jpa까지 하다가 오류가 계속나서 처음부터 다시 시작하려고 하는데요 일단 영상 그래도 2.6.5으로 진행하고 싶은데 자료를 계속 보는데 전부 2.xx는 지원이 끊겨서 3.0으로 쓰라고 하셔서요 진짜 2.xx다 빼고 3.0이상으로 전부 바꿔야 하나요?
멤버서비스 테스트에서 예외가 발생했을때 사용한 람다식이 해석이 안됩니다. 무슨 의미 인가요? assertThatThrownBy(()-> member service.accountTransfer(members.getMemberId(), memberEx.getMemberId(), 2000) .isInstanceOf(IllegalStatementException.class); 위 람다식은 어떻게 해석해야 하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 영한님. 먼저 항상 좋은강의 잘 듣고 있습니다. 최근에 이직을 하게 되면서 여유가 생겨 영한님 강의로 다시 학습을 시작하고 있는데요, 결론적으로 먼저 데이터베이스에 관한 지식(커넥션 , 세션 뿐만 아니라 성능 튜닝 및 설계) 을 위해 추천해주실만한 책이 있을까요? 당연히 영한님 관계형 데이터베이스 강의가 나온다면 너무 좋겠지만, 직금은 자바 강의만으로 바쁘신거 같아서요! 왜냐하면 저는 springboot 시작 시점에 db connection pool을 채울 때, 하나의 db session만을 가지고 여러 db connection을 만들어 connection pool을 채울것이라고 생각했습니다. (db session도 web session처럼 인증을 유지하는 논리적인 연결 개념이라고 이해했고, 어차피 동일한 username password를 사용하니깐요) 그렇지만 검색 후 진짜 영한님 설명처럼 각각의 connection은 별도의 db session으로 맺어지는것으로 나와있었습니다. 그래서 제가 아직 관계형 데이터베이스 관련 지식이 많이 부족하다는 생각이드는데요, 혹시 추천해주실만한 학습 방법(책을 포함한) 이 있으실지 궁금합니다! (혹은 1월 meet up에서 말씀해주신 것 처럼 올해 까진 관계형 데이터베이스 강의가 나올지도 궁금합니다!) 감사합니다.!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 상품 수량 입력 시 1111111111 Integer 값을 넘기면 숫자를 입력해주세요 메시지 박스가 뜨는데 아마 저의 개인적인 생각은 properties 설정에 typeMismatch.java.lang.Integer=숫자를 입력해주세요. 메시지 대로 사용되는 것이고 오버 플로우 문제거나 다른 예외로 lang.Integer 아이디로 쓰인 것이 맞나요? 그리고 이런 예외 사항은 실무에서는 예외로 처리하는지 아니면 서버 단에서 Max 에노테이션 중 어디서 검증하나요?
//에러상황: Non-static method 'expire(javax.servlet.http.HttpServletRequest)' cannot be referenced from a static context SessionManager.expire(request); 강의에서도 해당 메소드는 void로 설정이 되어있는데 제코드에서는 static으로 변경하라고 합니다. 왜그런건가요? 전체코드는 아래입니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 이 의미를 제가 이해한 대로라면 application.properties에 제가 아무 것도 추가하지 않으면 스프링 부트가 알아서 application.properties에 spring.messages.basename=messages 이걸 추가하고, 이렇게 messages만 지정되어도 부가적으로 messages_en.properties, messages_ko.properties 이것들도 인식되는 거로 이해했습니다. 꼭 ko나 en 말고도 messages_temp.properties 또는 messages_sdfsdf.properties 이것들도 다 인식된다고 보면 되나요? 아니면 _ 뒤에 와야 하는 건 kr이나 en 등 몇 가지가 따로 지정되어 있는 걸까요? 2) 또 하나 궁금한 점이 있습니다. 스프링 부트를 쓰지 않고 @Bean public MessageSource messageSource() { ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setBasenames("messages"); messageSource.setDefaultEncoding("utf-8"); return messageSource; } 이 코드를 쓴다고 한다면, 이때도 messageSource.setBasenames("messages"); 이렇게 messages만 지정하면 messages_en.properties , messages_ko.properties 다 인식할 수 있나요?
@Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { // CSRF 설정 http.csrf((csrf) -> csrf.disable()); http.authorizeHttpRequests((authorizeHttpRequests) -> authorizeHttpRequests .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll() .requestMatchers("/").permitAll() .anyRequest().authenticated() ); http.oauth2Login((oauth2Login) -> oauth2Login .loginPage("/login") .userInfoEndpoint(userInfoEndpoint -> userInfoEndpoint .userService(principalOauth2UserService)) .defaultSuccessUrl("/", true) .permitAll() ); return http.build(); } 현재 위와 같이 우선 oAuth2.0 인증 기반을 구현했습니다. 이 상태에서 로그인을 하면 웹 브라우저 쿠키에 JSESSIONID : 0C3706243FE7B32FF2A3C757013B164C 형식의 값이 삽입됩니다. 이후 test 용으로 작성한 "/user" 경로로 접근을 시도하면 접근이 가능하게 됩니다. 만약 쿠키를 지우고 "/user" 로 접근하면 "/" 로 튕기고, 다시 로그인을 해야합니다. 여기서 궁금한 게 저는 별도의 쿠키 생성 로직을 작성하지 않았는데 oAuth 로그인 후 JSESSIONID : 0C3706243FE7B32FF2A3C757013B164C 이 녀석이 어떻게 생성된 것인지 궁금하며, 어떻게 저 녀석으로 인증이 필요한 자원에 접근이 가능한 것인지 원리가 궁금합니다. 검색해보니 톰캣 컨테이너에서 세션을 유지하기 위해 발급하는 키라고 하는데, 이게 그냥 인덱스 페이지에 최초 접속할 때도 생기더라구요 ? oAuth 로 로그인하면 값이 바뀌긴 하지만,,, 구글링 해보면 세션 만들고 쿠키 만들고 하던데, 그럴 필요가 없는 거 아닌가요 ? + 추가질문 http.sessionManagement( (sessionManagement) -> sessionManagement .sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED) .maximumSessions(1) // 최대 허용 가능 세션 수 .maxSessionsPreventsLogin(false) // 멀티로그인 차단, false : 기존 세션 만료(default) .sessionRegistry(sessionRegistry()) ); 이와 같이 또 세션 정책을 세웠는데, 네이버 웨일로 로그인하고, 크롬으로 로그인 하면 둘 다 로그인 상태가 유지되는데 왜 이러는 걸까요...
실제 서비스에서 수백 수천의 사용자가 접속을 하였는데 풀에 등록된 커넥션이 100개밖에 없으면 선착순 100명에 들지 못한 나머지 사람들은 계속 대기 하고 반환된 풀을 가져다 사용하는거로 이해했습니다. 관리자 입장에서 사용자 대기를 줄이기 위해 풀의 최대 갯수를 최대로 많이 하면 사용자의 대기 없이 즉각적으로 접근이 가능해서 더 좋은 서비스를 제공이 가능한것 같은데 굳이 기본 풀 갯수를 10개로 설정한 이유가 있나요? 그리고 풀의 최대갯수는 몇까지 가능한가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 이 빨간색이 정확히 WAS 내부의 web-server인거죠?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] WAS는 간단히 말씀드리면 Web Server + Web Container(Sevlet Container)로 되어있습니다. 라는 답변을 봐서 궁금한게 생겼습니다. 그냥 정적인 파일만 내려주는 Web Server 는 주로 아파치 를 사용한다고 했는데 WAS = Web Server + Web Container 에서 Web Server 는 뭐로 만들어지나요? 톰캣인가요??
선생님! iloc같은경우 인덱스값은 그 앞에 까지 뽑기때문에 +1 해주는 범위까지 설정 해 주는것인데, 컬럼 번호 쓸때는 해당 없는거 같네요?! quiz 2번 푸는데 iloc로 메뉴~할인율 까지 할때 범위를 :3으로 하시길래요! 위에 설명할때는 iloc때 범위를 :로 나타낼 때 마지막을 포함하지 않는다고 하셨는데, 인덱스만 포함하지 않는게 맞는거죠?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] BasicItemController를 만드실때, 상품 목록은 items 상품 조회메서드는 item 같이 메서드명을 명사로 지었는데, 굳이 메서드명을 동사로 안지어도 될까요? 어차피 Mapping URL이 중요하고 메서드명은 큰의미없어서 관례를 따르지 않은건가요?