묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
session.getAttribute(SessionConst.LOGIN_MEMBER) == null
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]필터 강의에서 아래 로직에 대해 질문이 있습니다.HttpSession session = httpRequest.getSession(false); if (session == null || session.getAttribute(SessionConst.LOGIN_MEMBER) == null) { log.info("미인증 사용자 요청 {}", requestURI); httpResponse.sendRedirect("/login?redirectURL=" + requestURI); return; // 여기가 중요, 미인증 사용자는 다음으로 진행하지 않고 끝! }여기에서 HttpSession session = httpRequest.getSession(false); 는 유저가 보낸 세션을 기반으로 서버에서 세션을 조회해서, 있으면 반환하고 없으면 null 반환하는 것으로 이해했는데요.그 밑의 if 조건절에 대해 질문이 있습니다. if문에서 session == null 인 경우는, 1) 브라우저가 보낸 세션 ID가 없는 경우 (세션쿠키가 없는경우) 브라우저가 세션을 보냈지만 해당 세션이 서버에 존재하지 않는 경우 이렇게 두가지일 것으로 생각했습니다. 이게 맞을까요?session.getAttribute(SessionConst.LOGIN_MEMBER) == null 의 경우가 존재할 수있는지 궁금합니다. 즉 유저도 세션을 보냈고, 서버에도 세션이 존재하는데, 그 세션의 멤버 속성값이 존재하지 않는 경우가 있나요? invalidate 를 하는 것도 세션 자체를 삭제하는 것으롱 ㅏㄹ고 있어서,, 궁금합니다. 답변 주시면 감사하겠습니다!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
resp.setContentType("application/json"); 컨텍스트 타입을 지정했다는데 궁금합니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. package hello2.servlet.basic.request; import com.fasterxml.jackson.databind.ObjectMapper; import hello2.servlet.basic.HelloData; import jakarta.servlet.ServletException; import jakarta.servlet.ServletInputStream; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.util.StreamUtils; import java.io.IOException; import java.nio.charset.StandardCharsets; @WebServlet(name = "requestBodyJsonServlet", urlPatterns = "/request-body-json") public class RequestBodyJsonServlet extends HttpServlet { private ObjectMapper objectMapper = new ObjectMapper(); @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { ServletInputStream inputStream = req.getInputStream(); String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8); System.out.println("messageBody = " + messageBody); HelloData helloData = objectMapper.readValue(messageBody, HelloData.class); System.out.println("helloData username = " + helloData.getUsername()); System.out.println("helloData age= " + helloData.getAge()); resp.setContentType("application/json"); } }여기서 resp.setContentType을 지정한다면 포스트맨에 메세지바디에 자동적으로 json형식으로 지정이 되는건가요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberRepository 질문 입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@Autowiredpublic MemberService (MemberRepository memberRepository){ this.memberRepository = memberRepository;} MemoryMemberRepository를 사용 할 수 있는 이유가 해당 구현체를 @Repository로 빈을 등록했기 때문에 @Autowired를 통해 MemberRepository 타입으로 주입받을 수 있는 게 맞을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 JAVA_HOME 오류
G:\내 드라이브\인프런 - 스프링 입문 - 김영한\hello-spring>gradlew.bat이렇게 실행했는데 아래와 같은 에러가 뜨는데 어떻게 해야 하나요?ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.Please set the JAVA_HOME variable in your environment to match thelocation of your Java installation.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
서비스단에 리포지토리를 주입받는 부분
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Order에서 처럼 서비스 단에 리포지토리만을 주입받아서 사용하는게 맞는 것인지 아니면 다른 서비스를 주입받아 사용하는게 좋은 로직인지 궁금합니다. 예를들어 findById를 리포지토리로 찾을 수도 있지만 memberService.findOne으로 가져올수도 있는 경우 어떤 것을 주입받아 사용하는것이 맞는 방식인지 질문드려요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Mockito 경고
[질문 내용]Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build what is described in Mockito's documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#0.3WARNING: A Java agent has been loaded dynamically (C:\Users\jaejin\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.15.11\a38b16385e867f59a641330f0362ebe742788ed8\byte-buddy-agent-1.15.11.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future release테스트는 통과를 했는데 위와같은 경고문이 나오네요 어떤 의미인지 잘 모르겠습니다.신경 쓰지않고 계속 진행해도 되는건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
order의 cancel 메서드 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]public void cancel(){ if(delivery.getDeliveryStatus() == DeliveryStatus.COMP){ throw new RuntimeException("이미 배송된 상품입니다"); } this.statusCancel(); for (OrderItem orderItem : orderItems) { orderItem.cancel(); } } 이렇게 메서드가 있는데 여기에서 orderItem 컬랙션에 있는 값들을 cancel로직을 통해 삭제하게 될 경우 db에 반영이 정상적으로 되나요? 즉 리포지토리에서 가져온 상태가 아닌 그냥 도메인 단에서 처리해줘도 영속성 컨텍스트에 의해 관리되고 더티체킹이 적용되어 cancel 로직에 의해 업데이트 되는건가요?
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
Controller에 테스트
Controller에 테스트를 넣을 필요가 없다고 해주셨는데 실습에서는 넣은 이유가 있을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Execution failed for task ':hello.servlet.ServletApplication.main()'. 버전오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. Execution failed for task ':hello.servlet.ServletApplication.main()'.> Process 'command 'C:\Users\USER\.jdks\corretto-17.0.14\bin\java.exe'' finished with non-zero exit value 1계속 같은 오류가 발생하여 문의글 남깁니다.1. 자바 23버전을 사용 후 21로 변경해보고 17로 변경을 했습니다.2. 무료버전이기 때문에 Gradle로 설정했습니다.3. 프로젝트 폴더에 있는 gradle 폴더를 삭제하고 다시 시작해도 gradle 파일이 다시 생깁니다.4. File -> Invalidate Caches(Invalidate and Restart)를 선택해서 진행해주세요.File -> Repair IDE를 선택해서 진행해주세요.이 2가지도 다 진행했습니다.5. 빌드도구 Gradle 관련 설정 사진 첨부합니다.확인부탁드립니다~!
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
스프링 부트 3.0 버전 프로젝트 초기 설정
itemservice-db 파일에 gradle 에 들어가서 no jdk -> jdk 17 gradle jvm -> java_home 17.0.12프로젝트 설정 build.gradleplugins {id 'org.springframework.boot' version '2.6.5'id 'io.spring.dependency-management' version '1.0.11.RELEASE'id 'java'} 혹시 3.0 버전으로 설정 되어 있는 파일 다운 받을 수 있는 곳이 있을까요?
-
미해결코드로 배우는 스프링 웹 프로젝트 - Basic
책 구매 관련 질문
안녕하세요 선생님,이번에 새롭게 강의를 듣게 되었습니다.수업 중간중간에 이론적으로 조금 더 파악이 필요한 부분이 있는거 같은데,기존에 출간하셨던 책을 읽으면 조금 더 도움이 될까요? 아니면 그 외에 선생님께서 내주신 다른 책을 추천해주실만한게 있는지 여쭤보고 싶습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HandlerExceptionResolver 직접 사용과 ExceptionResolver들 간의 관계
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]API 예외 처리.pdf 강의 자료에서 아래 내용에 대해 문의드립니다."지금까지 다음 ExceptionResolver들에 대해 알아보았다.ExceptionHandlerExceptionResolver → 다음 시간에ResponseStatusExceptionResolver → HTTP 응답 코드 변경DefaultHandlerExceptionResolver → 스프링 내부 예외 처리지금까지 HTTP 상태 코드를 변경하고, 스프링 내부 예외의 상태 코드를 변경하는 기능도 알아보았다.그런데 HandlerExceptionResolver를 직접 사용하기는 복잡하다.API 오류 응답의 경우 response에 직접 데이터를 넣어야 해서 매우 불편하고 번거롭다.ModelAndView를 반환해야 하는 것도 API에는 잘 맞지 않는다.스프링은 이 문제를 해결하기 위해 @ExceptionHandler라는 매우 혁신적인 예외 처리 기능을 제공한다.그것이 아직 소개하지 않은 ExceptionHandlerExceptionResolver이다." 이때까지 ResponseStatusExceptionResolver, DefaultHandlerExceptionResolver에 대해 공부했습니다.관련 애노테이션을 붙이거나, 관련 예외 클래스 (ex REsponseStatusException 등) 을 사용하면 스프링이 자동으로 예외 코드 및 메시지를 설정해서 예외 처리해주는 걸로 이해했습니다.DefaultHandlerExceptionResolver는 애초에 스프링 내부적으로 발생한 예외 처리이므로 개발자가 별도 구현할 필요가 없고요... 그런데 갑자기 "HandlerExceptionResolver를 직접 사용하기는 복잡하다.API 오류 응답의 경우 response에 직접 데이터를 넣어야 해서 매우 불편하고 번거롭다." 이 얘기가 나온 맥락이 이해가 가질 않습니다. 혹시 ResfponseStatusExceptionResolver, DefaultHandlerExceptionResolver를 사용하기 위해서는 HandlerExceptionResolver를 직접 구현 해야하나요? 전 강의에서 HandlerExceptionResolver 인터페이스를 구현한 구현체 클래스도 실행됐다고 생각해야하나요? 제가 지금 강의 쭉 듣고나서, 자료 보면서 다시 복습 중이라.. 조금 기억이 가물 가물하네요 ㅠㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
HelloController 부분 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의 내용이랑 똑같이 다 따라쳤고 확인도 해봤는데 머 때문에 오류 뜨는지 모르겠어요 ㅠㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링 MVC 실용적인 방식 강의듣고 질문 있습니다~
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.위와같이 강의 따라서 @getMapping("/new-form") 이렇게만 해줘도 HTTP GET 메서드만 받을 수 있도록 제약할 수 있고, URL 매핑까지 된다는 걸 배웠는데요,@GetMapping("/new-form")이렇게 @GetMapping 다음에 괄호를 열고 매핑할 url을 넣어주고 괄호를 닫으면 된다는 걸 저는 @GetMapping 소스코드에서 방법을 알려주는지 궁금했습니다./* * Copyright 2002-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.web.bind.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.springframework.core.annotation.AliasFor; /** * Annotation for mapping HTTP {@code GET} requests onto specific handler * methods. * * <p>Specifically, {@code @GetMapping} is a <em>composed annotation</em> that * acts as a shortcut for {@code @RequestMapping(method = RequestMethod.GET)}. * * <p><strong>NOTE:</strong> This annotation cannot be used in conjunction with * other {@code @RequestMapping} annotations that are declared on the same method. * If multiple {@code @RequestMapping} annotations are detected on the same method, * a warning will be logged, and only the first mapping will be used. This applies * to {@code @RequestMapping} as well as composed {@code @RequestMapping} annotations * such as {@code @PutMapping}, {@code @PostMapping}, etc. * * @author Sam Brannen * @since 4.3 * @see PostMapping * @see PutMapping * @see DeleteMapping * @see PatchMapping * @see RequestMapping */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented @RequestMapping(method = RequestMethod.GET) public @interface GetMapping { /** * Alias for {@link RequestMapping#name}. */ @AliasFor(annotation = RequestMapping.class) String name() default ""; /** * Alias for {@link RequestMapping#value}. */ @AliasFor(annotation = RequestMapping.class) String[] value() default {}; /** * Alias for {@link RequestMapping#path}. */ @AliasFor(annotation = RequestMapping.class) String[] path() default {}; /** * Alias for {@link RequestMapping#params}. */ @AliasFor(annotation = RequestMapping.class) String[] params() default {}; /** * Alias for {@link RequestMapping#headers}. */ @AliasFor(annotation = RequestMapping.class) String[] headers() default {}; /** * Alias for {@link RequestMapping#consumes}. * @since 4.3.5 */ @AliasFor(annotation = RequestMapping.class) String[] consumes() default {}; /** * Alias for {@link RequestMapping#produces}. */ @AliasFor(annotation = RequestMapping.class) String[] produces() default {}; }그래서 위와같이 @GetMapping 소스코드를 확인했는데, 뚜렸하게 방법을 알려준다는 건 제가 찾지 못했는데 혹시 제가 못찾는 것일까요? 아니면 제일 첫 줄에 있는 "Annotation for mapping HTTP GET requests onto specific handler methods." 이 문장으로 @GetMapping에 값을 그대로 적어주면 된다(괄호를 열고 url쓰고 닫으면 된다)고 알아들어야 하려나요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
DB 테스트 코드 작성에서 .containsExactly에 관한 질문
안녕하세요! 섹션 4 강의를 보다보니 의문점이 생겨서요 Repository를 테스트하는 과정에서 test() 메서드에 .containsExactly를 사용하고있습니다.강사님께서 내용과 순서가 모두 맞아야 한다고 설명하시더라고요. 메모리에서의 테스트나 DB를 조회할 때 순서를 보장할 수 없는 것으로 알고있는데 문제가 있을 수도 있지만 간단한 테스트를 위해서 사용한것인지 아니면 실제로도 이런식으로 테스트 하는지 궁금합니다.관련한 질문들을 확인했으나 만족할만한 답변이 없어서 질문드립니다.
-
미해결실전! 스프링 데이터 JPA
Projection 개념과 데이터 전달과정에 대해 질문 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]궁금한게 있어서 질문합니다.Projection관련인데요.제가 이해하기로는 new 오퍼레이션을 이용해서 dto에 생성자로 데이터를 담는 방식에서 진화한 방식이라고 생각되는데, 그렇게 이해는게 맞는지 궁금합니다. interface로 proejction을 사용하면 get()함수를 통해 데이터를 꺼내오는 방식이고class를 사용하면 new 오페레이션을 사용하는 방법과 똑같이 생성자를 이용하는거 같은데, 대신 필드의 이름과 엔터티의 이름이 같던가, 같지 않다면 @Query를 이용해 alias로 맞춰주던가 하면 되는걸까요?? 또한, 이렇게 Projection을 사용해서 데이터를 가져왔을대, interface던 class던 컨트롤러에서 데이터를 프론트로 넘길때 해당 객체를 사용해도 되는건가요? 아니면 따로 또 dto를 만들어서 담은 후에 내보내야 되는건가요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
해당 강의에서 말하는 정상흐름이 어떤걸 의미하시는걸까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]10:56 쯤 정상흐름으로 바뀌었다고 하셨는데, 이게 예외 발생 시 막.. ExceptionResolver들에 의해 처리되거나WAS한테 아예 예외가 넘어가거나 등등예외에 대한 흐름으로 이어져야 하는데. 마치 예외가 발생하지 않은 것 처럼즉, 요청 성공시의 흐름으로 바뀐다는 의미인가요? 정상 흐름의 정확한 의미를 잘 모르겠습니다 ㅠㅠ
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ResponsStatusException 클래스를 이용한 에러 처리 문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]ResponsStatusException 클래스를 언제 쓰는건지 잘 모르겠습니다. 강의 예제에서 다음과 같은 코드를 작성하셨습니다. ```java @GetMapping("/api/response-status-ex2") public String responseStatus{ throw new ResponseStatusException(HttpStatus.NOT_FOUND,"error.bad", new IllegalArgumentException); } ``` ResponseStatusException 클래스를 사용하는 이유를 잘 모르겠습니다. IllegalArgumentException을 직접 컨트롤할 경우 code와 message를 변경할 수 없으니까 ResponseStatusException 클래스를 사용하는게 맞나요? 그리고 실제로는 IllegalArgumentException이 발생하지 않았는데, api/response-status-ex2 로 요청을 보냈을 뿐이고 실제로 예외가 발생한 것도 아닌데, illegalArgumentException 예외를 던지는 매커니즘이 이해가 안갑니다....
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
libs가 없습니다... ㅠㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]hello-spring파일까지 이동한 후 gradlew.bat을 입력해서 실행했는데요 BUILD SUCCESSFUL이라고 떴습니다. 그 후 cd build해서 들어간 후 dir을 입력하니까 libs라는 폴더는 없네요... 이유가 뭘까요 ㅠㅠ께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용]hello-spring파일까지 이동한 후 gradlew.bat을 입력해서 실행했는데요 BUILD SUCCESSFUL이라고 떴습니다. 그 후 cd build해서 들어간 후 dir을 입력하니까 libs라는 폴더는 없네요... 이유가 뭘까요 ㅠㅠ
-
해결됨대기업 근무하며 경험한 Redis를 야무지게 사용하는 방법 [실습]
화면에 글씨가 너무 작아요 ㅠㅠ
화면 글씨가 인간적으로 너무 작은거 같아요.. 아이패드 11로 보고 있는데..눈 빠질거 같아요 ㅠㅠ보는 사람을 배려해서 강의 제작 하셨으면 좋겠어요..