다음과 같이 코드 작성하였고 http://localhost:8080/servlet/members/new-form 여기서 username:kim age:20 입력했을때 http://localhost:8080 /servlet/members/save 해당 주소에서 id:1 username/age: null로 나오는데 해결방법을 알고싶습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. package hello.hello_spring.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class HelloController { @GetMapping("hello-api") @ResponseBody public Hello helloApi(@RequestParam("name") String name) { Hello hello = new Hello(); hello.setName(name); return hello; } static class Hello { // key: name private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } } 이 코드에서 key 값은 name이고 value값은 어떤 것인지 알 수 있을까요? 제가 못 알아들어서요ㅠ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 입력 매개변수로 Model model을 쓰는 상황과 안 쓰는 상황을 구별하지 못하겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. <첫 번째 예시> 섹션 2 - View 환경설정에서의 예시 코드 @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!"); return "hello"; } 여기에서 return 값은 hello.html의 이름과 같아야 하기 때문에 return "hello"라고 해야 한다고 하셨는데 "hello.html"인지, String "hello"인지 어떻게 구별할 수 있을까요? 정적 컨텐츠일 때에는 항상 html의 이름과 같은 문자를 return해줘야 하나요? <두 번째 예시> 섹션 3 - API 강의에서 첫 번째 예시 @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name) { return "hello " + name; } 여기에서 return 값이 "hello " + name인데 "hello.html"인지, String "hello"인지 어떻게 아나요? 이때는 항상 String 값을 return해줘야 하나요? ------------------------------------------------- 입력 매개변수로 Model model을 쓰는 상황과 안 쓰는 상황이 잘 이해가 안 감
안녕하세요. 강의 잘 듣고 있습니다! 저의 질문은 RememberMe의 존재 이유를 잘 모르겠습니다. 로그인이 안풀리게 하려는건가요 ? 그러면 세션의 유지시간을 길게 잡을 수 있을 것 같은데, 복잡하게 JSESSIONID와 REMEMBER 조합으로 쓰는 이유가 와닿지가 않네요. 어떠한 이유로 이게 생긴것이고, 어떤 상황에서 유용하게 쓸 수 있을까요? 감사합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] @EntityGraph를 이용하여 페이징 한계를 돌파할 때 리포지토리 public interface OrderRepository extends JpaRepository<Order, Long> { @EntityGraph(attributePaths = {"member", "delivery", "orderItems", "orderItems.item"}) Page<Order> findAll(Pageable pageable); } 컨트롤러단 @GetMapping("/api/v3.1/orders") public List<OrderDto> ordersV3_page( @RequestParam(value = "offset", defaultValue = "0") int offset, @RequestParam(value = "limit", defaultValue = "100") int limit ) { Pageable pageable = PageRequest.of(offset, limit); Page<Order> orders = orderRepository.findAll(pageable); return orders.stream () .map(OrderDto::new) .collect(Collectors.toList()); } 이렇게 코드를 작성하면 orderItems 이것이 @OneToMany관계에 있어 DB의 데이터가 늘어나게 되기 때문에(orderItem개수에 따라) @EntityGraph(attributePaths = {"member", "delivery"}) 이렇게 적고 컨트롤러 단에서 동일하게 실행하게 되면 OrderDto::new 이것을 실행하게 되면서 Lazy전략으로 값을 가져오게 되어 페이징을 올바르게 처리할 수 있고, 만일 이때 값을 한번에 묶어서 가져오고 싶으면 @BatchSize를 이용하는 것으로 이해하였는데 올바르게 이해한 것인지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. cmd로 java -jar hello-spring-0.0.1-SNAPSHOT.jar을 실행해서 웹 페이지가 잘 실행되는 것까지 확인이 되는데 그 이후 실행 종료가 안 됩니다 (아무것도 입력이 안 되는 상태입니다) 이럴 땐 어떻게 해야 할까요? ^C도 입력해봤는데 2번째 화면 그대로 입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] HelloServlet를 작성하기전에는 정상작동합니다 근데 HelloServlet를 작성한후 클래스를 찾을수없다는 내용이 나옵니다
안녕하세요. Member가 team이 바뀌면 this.team = team; team.getMembers().add(this); team이 변경되어서 현재 멤버의 팀 정보를 업데이트하고 새로운 팀에 새로운 멤버를 넣는다라고 이해했는데요, 기존 팀에 속해있던 멤버 정보는 안지워도 되는걸까요? 감사합니다.
섹션 6 진화하는 아키텍처의 3번째 강의인 핵사고날에 대한 사견 강의 중 8분 9초에 강사님께서 시스템이 명확할 때, 추상화가 너무 많이 되어있다면 쓸모없는 구역이라고 말씀하시고 Spring/JPA/RDB 이 3개를 쓸게 명확하다면 레이어드 아키텍처로 개발하라고 말씀하셨는데 그럼 기술 스택이 명확한 상황이라서 레이어드 아키텍처로 개발을 시작하게 된다면 전체적인 강의 통틀어서 말씀하셨던 의존성 역전, JPA에 종속적인 문제, 도메인 중점 개발 이런 것들이 필요 없어지게 되는걸까요? 레이어드 아키텍처 개발이든 핵사고날 아키텍처로 개발을 하든 도메인을 중심으로 개발하는 것이 중요하다고 생각합니다. 하지만 의존성 역전으로 인한 추상화나 그로 인한 테스트 작성이 쓸모가 없어지게 되는걸까요?
현재 login post 요청만 되는 것으로 확인이 됩니다. 1. login post요청만 받을 수 있도록 설정되어 있는 클래스가 궁금합니다. 2. 기존에 있던 loginfilter가 사라지고 현재는 어떤 필터로 대체 되었는지 알고 싶습니다. 3. http.addFilterBefore(jwtAuthenticationFilter(macSecuritySigner, octetSequenceKey), UsernamePasswordAuthenticationFilter.class); http.addFilterBefore(jwtAuthorizationMacFilter(octetSequenceKey), UsernamePasswordAuthenticationFilter.class); 현재 이렇게 코드가 있는데, 인증일 경우 jwtAuthenticationFilter만 권한 검증일 경우 jwtAuthorizationMacFilter로 가는지 여부 결정하는 과정에 대해서 설명부탁드립니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 자바 버전 17 스프링 부트 3.3.4 위와 같이 오류가 뜨며 run 버튼이 나타나지 않습니다. 첫 번째 오류 메시지 Cause: class jdk.internal.loader.ClassLoaders$PlatformClassLoader cannot be cast to class java.net .URLClassLoader (jdk.internal.loader.ClassLoaders$PlatformClassLoader and java.net .URLClassLoader are in module java.base of loader 'bootstrap') 두 번째 오류 메시지 Could not configure services using BuildScopeServices.configure(). > Could not configure services using BuildScopeCompileServices.configure(). * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 35ms .gradle 에서 캐시 삭제 해봤습니다. intellij 재설치 해봤습니다. 프로젝트를 열 때 build.gradle 파일을 선택하였습니다. 어떻게 해결하면 좋을까요...
hello-template으로 return해서 hello-template.html에서 thymeleaft에 로직 처리가 되는것은 이해했으나 그걸 다시 변환후에 주소창에 보면 hello-template에서 처리를 하였는데 왜 hello-template?name=spring가 아닌 hello-mvc?name=spring가 되는건지 궁금합니다.
_csrf 파라미터 이름과 값 사이에 공백이 있는지 확인해보세요 공백이 있을 경우 아래와 같이 공백을 지우고 다시 시도하시면 정상 작동됩니다 ### POST request with a header POST http://localhost:8080/csrf Content-Type: application/x-www-form-urlencoded _csrf=6LGfk2d_v1r5vsNT5VxTiI_8HIvuqSEMwVrVRCCQUXXhiSxyjNSppF5Jjz_Uiftmg3FnurzEMbONyhkhpD-wfROnYUTUuE5E
섹션3 - 테스트추가하기: h2를 이용한 service 테스트 에서 UserService 의 create 를 테스트하기 위해 Mock으로 주입된 JavaMailSender 의 send 를 다음과 같이 given 절에 추가하셨습니다. https://tecoble.techcourse.co.kr/post/2020-09-29-compare-mockito-bddmockito/ 에 따르면 BDDMockito는 given-when-then 구조의 시나리오 기반 테스트를 진행할 때, 시나리오에 맞게 테스트가 읽힐 수 있도록 도와주는 역할이라고 하였습니다. 따라서 저는 해당 코드를 when 절에 추가하였는데, 다른 분들은 어떤 의견이신지 궁금합니다...!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] jpa 특징은 "persist" 메서드 호출 시 바로 insert 쿼리를 날리는 게 아니라 트랜잭션을 커밋하기 직전 flush 가 발생해서 insert 쿼리 로그가 뒤에 찍힌다고 설명해주셨습니다. (영상 기준 4:50 ~ 5:12) 저도 같은 테스트코드를 실행시켰으나 강의 영상과 다르게 중간에 insert 쿼리 로그가 남는 것을 확인했습니다. 영상 촬영시점보다 hibernate 버전이 업그레이드 되어 로그를 남기는 시점만 변경이 된 것일까요? 아니면 flush 시점 자체도 변경이 된 건가요?