inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

Permission targetId null

미해결

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

당연히 구글링 해보셨져? 원하는 결과를 못찾으셨나요? 어떤 검색어를 입력했는지 알려주세 >> hasPermission targetId null 문제가 발생한 코드(프로젝트)를 Github에 올리시고 링크를 알려주세요. https://github.com/IE-MangChi/RepositoryForAsk.git 영상에선 그냥 넘어갔지만 targetId값이 null로 찍히는게 맞는지 잘모르겠습니다. 강의내용대로면 저값이 매핑되어야하는데, 공식홈페이지보니 아닌거 같아서 질문드립니다!

  • vue.js
  • aws
  • spring-boot
  • jpa
  • spring-security
홍성민 댓글 2 좋아요 1 조회수 486

localhost:8080/hello가 whitelabel error가 떠요

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

View 환경설정 강의 그대로 폴더를 만들었는데 localhost:8080/hello를 하면 화이트라벨 에러가 나오고, localhost:8080 만 치면 강의에서 /hello 붙인 결과 페이지랑 똑같이 나오는데 어디가 문제인지 모르겠어요.ㅜㅜㅜㅜ

  • java
  • spring
  • mvc
  • spring-boot
adiand 댓글 2 좋아요 0 조회수 932

submit 버튼을 눌렀을때 어떤 api 가 불러와지는지 코드 어디에 쓰여있나요?

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 저 submit 버튼을 눌렀을때 어떤 api를 호출하는지 html에 없는것 같아서요. <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head th:replace="fragments/header :: header"/> <body> <div class="container"> <div th:replace="fragments/bodyHeader :: bodyHeader"/> <form th:object="${form}" method="post"> <!-- id --> <input type="hidden" th:field="*{id}"/> <div class="form-group"> <label th:for="name">상품명</label> <input type="text" th:field="*{name}" class="form-control" placeholder="이름을 입력하세요"/> </div> <div class="form-group"> <label th:for="price">가격</label> <input type="number" th:field="*{price}" class="form-control" placeholder="가격을 입력하세요"/> </div> <div class="form-group"> <label th:for="stockQuantity">수량</label> <input type="number" th:field="*{stockQuantity}" class="form-control" placeholder="수량을 입력하세요"/> </div> <div class="form-group"> <label th:for="author">저자</label> <input type="text" th:field="*{author}" class="form-control" placeholder="저자를 입력하세요"/> </div> <div class="form-group"> <label th:for="isbn">ISBN</label> <input type="text" th:field="*{isbn}" class="form-control" placeholder="ISBN을 입력하세요"/> </div> <button type="submit" class="btn btn-primary">Submit</button> </form> <div th:replace="fragments/footer :: footer"/> </div> <!-- /container --> </body> </html> 설명해주시면 감사하겠습니다ㅜㅜ

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
han127kr 댓글 1 좋아요 0 조회수 460

devtools 오류

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

devtools가 적용이 안되어서 인터넷에 나와 있는 내용 다 긁어서 해봐도 안됩니다. ㅠㅠㅠ 어떻게 해야 하나요

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
smlnk124 댓글 6 좋아요 1 조회수 1586

섹션7 상품 수정이 페이지가 연결이 안됩니다.

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 상품 수정시, 수정 버튼을 누르면 위와 같이 나옵니다. 프론트를 하나도 몰라서, 오류가 뭔지 모르겠어요 ㅜㅜ package jpabook.jpashop.controller; import jpabook.jpashop.domain.item.Item; import jpabook.jpashop.domain.item.Book; import jpabook.jpashop.service.ItemService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import java.util.List; @Controller @RequiredArgsConstructor public class ItemController { private final ItemService itemService; @GetMapping("/items/new") public String createform(Model model) { model.addAttribute("form", new BookForm()); return "items/createItemForm"; } @PostMapping("/items/new") public String create(BookForm form) { Book book = new Book(); book.setName(form.getName()); book.setPrice(form.getPrice()); book.setStockQuantity(form.getStockQuantity()); book.setAuthor(form.getAuthor()); book.setIsbn(form.getIsbn()); itemService.saveItem(book); return "redirect:/"; } @GetMapping("/items") public String list(Model model) { List<Item> items = itemService.findItems(); model.addAttribute("items", items); return "items/itemList"; } @GetMapping("/items/{itemId}/edit") public String updateItemForm(@PathVariable("itemId") Long itemId, Model model) { Book item = (Book) itemService.findOne(itemId); BookForm form = new BookForm(); form.setId(item.getId()); form.setName(item.getName()); form.setPrice(item.getPrice()); form.setStockQuantity(item.getStockQuantity()); form.setAuthor(item.getAuthor()); form.setIsbn(item.getIsbn()); model.addAttribute("form", form); return "items/updateItemForm"; } @PostMapping("items/{itemId}/edit") public String updateItem(@PathVariable String itemId, @ModelAttribute("form") BookForm form) { Book book = new Book(); book.setId(form.getId()); book.setName(form.getName()); book.setPrice(form.getPrice()); book.setStockQuantity(form.getStockQuantity()); book.setAuthor(form.getAuthor()); book.setIsbn(form.getIsbn()); itemService.saveItem(book); return "redirect:/items"; } } <!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <head th:replace="fragments/header :: header"/> <body> <div class="container"> <div th:replace="fragments/bodyHeader :: bodyHeader"/> <form th:object="${form}" method="post"> <!-- id --> <input type="hidden" th:field="*{id}"/> <div class="form-group"> <label th:for="name">상품명</label> <input type="text" th:field="*{name}" class="form-control" placeholder="이름을 입력하세요"/> </div> <div class="form-group"> <label th:for="price">가격</label> <input type="number" th:field="*{price}" class="form-control" placeholder="가격을 입력하세요"/> </div> <div class="form-group"> <label th:for="stockQuantity">수량</label> <input type="number" th:field="*{stockQuantity}" class="form-control" placeholder="수량을 입력하세요"/> </div> <div class="form-group"> <label th:for="author">저자</label> <input type="text" th:field="*{author}" class="form-control" placeholder="저자를 입력하세요"/> </div> <div class="form-group"> <label th:for="isbn">ISBN</label> <input type="text" th:field="*{isbn}" class="form-control" placeholder="ISBN을 입력하세요"/> </div> <button type="submit" class="btn btn-primary">Submit</button> </form> <div th:replace="fragments/footer :: footer"/> </div> <!-- /container --> </body> </html> 코드 올려드립니다! 확인 요청드립니다 ㅜ

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
han127kr 댓글 2 좋아요 1 조회수 433

컨트롤러단 페이징 테스트

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

// 컨트롤러 코드 @GetMapping public ResponseEntity<?> postList(@PageableDefault(size = 10, sort = "id", direction = Sort.Direction.DESC) Pageable pageable) { Page<Post> posts = postService.getPosts(pageable); return ResponseEntity.ok() .body(ApiResponse.of("success", "게시물 전체 조회 성공", posts)); } // 테스트 코드 @DisplayName("게시물 전체를 페이징해서 조회해 온다.") @Test void postList() throws Exception { //given String sortProperty = "id"; String direction = "desc"; int pageNo = 0; int pageSize = 10; Pageable pageable = PageRequest.of(pageNo, pageSize, Sort.Direction.DESC, sortProperty); given(postService.getPosts(pageable)).willReturn(Page.empty()); //when ResultActions result = mvc.perform(get("/api/posts") .queryParam("page", String.valueOf(pageNo)) .queryParam("size", String.valueOf(pageSize)) .queryParam("sort", sortProperty + "," + direction)); //then result .andExpect(status().isOk()) .andExpect(jsonPath("$.status").value("success")) .andExpect(jsonPath("$.message").value("게시물 전체 조회 성공")) .andDo(print()); then(postService).should().getPosts(pageable); } 위 테스트 코드를 실행하면 httpstatus 200을 기대했지만 500이 떴다고 테스트 실패를 합니다. 위 코드대로면 /api/posts?page=0&size=10&sort=id,desc 이렇게 요청이 가는건데, 테스트코드 말고 포스트맨으로 직접 저렇게 요청 보내면 저는 정상적으로 응답이 옵니다 ㅠㅠ 왜 저 테스트코드 실행하면 500에러가 나는걸까요..? 500 날만한 곳을 전혀 모르겠습니다 혼자 몇시간동안 끙끙앓다가 질문드립니다 ㅜㅜㅜ

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
gelab 댓글 1 좋아요 0 조회수 286

예외처리가 된 건가요? 아님 에러인가요?

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. package hello.hellospring.service; import hello.hellospring.domain.Member; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import java.util.Optional; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.junit.jupiter.api.Assertions.*; class MemberServiceTest { MemberService memberService = new MemberService(); @Test void join() { //given Member member = new Member(); member.setName("hello"); //when Long saveId = memberService.join(member); //then Member findMember = memberService.findOne(saveId).get(); Assertions.assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test public void 중복_회원_예외() { //given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //when memberService.join(member1); try { memberService.join(member2); fail(); } catch (IllegalAccessError e) { //예외가 터져서 정상적으로 성공한 것 assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } //then } @Test void findMembers() { } @Test void findOne() { } } java.lang.IllegalStateException: 이미 존재하는 회원입니다. at hello.hellospring.service.MemberService.lambda$validateDuplicateMember$0(MemberService.java:26) at java.base/java.util.Optional.ifPresent(Optional.java:178) at hello.hellospring.service.MemberService.validateDuplicateMember(MemberService.java:25) at hello.hellospring.service.MemberService.join(MemberService.java:18) at hello.hellospring.service.MemberServiceTest.중복_회원_예외(MemberServiceTest.java:45) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Process finished with exit code -1 이렇게 빨간 느낌표가 뜨면 테스트 자체가 잘못된다는 건가요?

  • java
  • spring
  • mvc
  • spring-boot
kwldusrnclf 댓글 2 좋아요 0 조회수 672

주문할 경우 null값으로 member에 행이 추가되는

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 주문할 경우 따로 오류는 발생하지 않는데 주문 목록을 보면 회원명이 보이지 않습니다. 또한 주문할때마다 member 테이블에 null값으로 행이 하나씩 추가가 됩니다. 오류가 따로 안떠서 어떻게 해결해야할지 몰라 질문드립니다. 구글 드라이브에 파일올립니다.. https://drive.google.com/drive/folders/1faJLS1AmApbM9t_cW_olFKj3YLvaBfQg?usp=drive_link

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
jjuu0685 댓글 2 좋아요 0 조회수 298

포스트매핑은

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기서 print가 되는것은 제가 등록버튼을 눌렀을 때 되더라구요 postmapping은 등록하는 경우에 실행되게 해주는 것 맞나요?

  • java
  • spring
  • mvc
  • spring-boot
손민성 댓글 1 좋아요 0 조회수 389

타임리프 태그??

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] <html lang="en">로 해도 정상실행이 되는데 했을 때와 차이는 무엇인가요?

  • java
  • spring
  • mvc
  • spring-boot
손민성 댓글 2 좋아요 0 조회수 365

외래키 제약 조건

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 내용] 강의 내용 중 "외래키를 꼭 사용해야할까?" 에 대한 물음에 두 가지 방안을 주셨는데요. 빠른 처리가 중요하며 실시간 트래픽이 많은 시스템인 경우 -> "외래키를 사용하지 않는 쪽도 고려해볼만 함" 돈이 왔다갔다 하는 등의 reliablity가 중요한 시스템인 경우 -> "외래키를 꼭 사용하라" 그렇다면 질문이 있습니다.질문 1. 만약 외래키 제약조건이 관계형 DB에 이미 걸려있는 상태라면 Java 코드상에서는 아무런 설정 없이 비즈니스 로직을 개발해도 되나요?질문 2. 만약 외래키 제약조건이 관계형 DB에 걸려있지 않고 관계형 DB의 성능상의 이슈로 외래키 제약 조건을 애플리케이션에서 해결해야 한다면 해당 로직 또한 개발해야 하나요? 즉, JPA가 외래키 제약 조건을 체크해주는 기능이 있는지 궁금합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
수수깡 댓글 1 좋아요 1 조회수 555

컨트롤러 테스트 (예외처리 테스트)

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

// 컨트롤러 코드 @PostMapping public ResponseEntity<?> postAdd(@RequestBody @Valid PostCreateRequest postCreateRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { Map<String, String> errorMap = new HashMap<>(); for (FieldError error: bindingResult.getFieldErrors()) { errorMap.put(error.getField(), error.getDefaultMessage()); } throw new ValidationException("유효성 검사 오류", errorMap); } postService.addPost(postCreateRequest.toEntity()); return ResponseEntity.status(HttpStatus.CREATED) .body(ApiResponse.of("success", "게시글 작성 성공", null)); } // 테스트 코드 @DisplayName("게시물의 제목과 본문을 반드시 작성해야 한다.") @Test void postAddWithoutTitleOrContent() throws Exception { PostCreateRequest post = PostCreateRequest.of("", " "); Assertions.assertThrows(ValidationException.class, () -> { mvc.perform(post("/api/posts") .contentType(MediaType.APPLICATION_JSON_VALUE) .content(mapper.writeValueAsString(post))) .andDo(print()); }); } 위 컨트롤러 코드를 보면 title과 content에 빈 값이 들어가면 ValidationException이 발생하고 유효성 검사 오류가 응답되어야 합니다. 그런데 응답을 보면 Body = {"status":"fail","message":"유효성 검사 오류","data":{"title":"must not be blank","content":"must not be blank"}} 이렇게 정상적으로 오류 발생 응답이 옵니다. 그런데 assertThrows 테스트코드는 통과하지 못합니다. 그럼 ValidationException이 발생하지 않았다는 뜻인데 응답은 예외가 발생했을 때의 응답입니다. 왜 테스트코드를 통과하지 못하는지 궁금합니다!

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
gelab 댓글 1 좋아요 0 조회수 375

hello와 hello-static.html 의 차이

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 주소창에 입력할 때static 폴더에 있는 hello-static과 index는 확장자 (.html)을 붙여야 하고templates 폴더에 있는 hello는 .html을 붙이면 안되는? 걸로 알고 있는데 이유가 궁금합니다! hello는 th: 문법을 사용해서 그런건가요? 확실하게 이유를 알고 싶습니다 ㅎㅎ

  • java
  • spring
  • mvc
  • spring-boot
asdf20834 댓글 2 좋아요 1 조회수 543

JUNIT5 로 테스트시 질문

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] JUNIT5 최신으로 테스트하고 싶어서 JUNIT5 로 테스트중인데요. 12:35 시간에서 테스트중인 내용이, 예외 처리가 반대로 되어 질문드립니다. orderCount=9 면 테스트를 통과하고 orderCoumt=11 이면 테스트를 통과하지 못합니다. Stock 초과 예외가 발생해야 테스트가 통과되는거 정상인것이 맞나요? 이 조건이 맞다면 아래 코드는 왜 반대로 동작하는지 모르겠어서 질문드립니다 ㅜㅜ @Test public void 상품주문_재고수량초과() throws Exception { Member member = createMember(); ItemBook itemBook = createItemBook("시골 JPA", 10000, 10); int orderCount = 9; orderService.order(member.getId(), itemBook.getId(),orderCount); Assertions.assertThrows(NotEnoughStockException.class,() -> orderService.order(member.getId(), itemBook.getId(),orderCount) );

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
han127kr 댓글 1 좋아요 0 조회수 597

외부 설정 관련 질문 입니다.

해결됨

스프링 부트 - 핵심 원리와 활용

[질문 내용] 1. 외부 설정 강의에서 스프링이 지원하는 다양한 외부 설정 조회 방법으로 Environment랑 @Value랑 @ConfigurationProperties가 있다고 하셨는데, 이 방식들은 스프링 부트만 제공하는 것이아닌 스프링에서 제공하는 방법들인가요?? Datasource 외부 설정 값을 주입받고 빈으로 등록하는 과정에서 @Configuration을 사용해서 @Bean을 등록하셨는데, Bean을 등록하는 방식으로 @Component사용해서 @ComponentScan을 통해 등록하는 방식도 있는걸로 압니다. 이 두 방식의 차이점이 있을까요?? 언제 @Configuration을 사용하고 언제 @Component를 사용해야할지 감이 잘안잡히네요ㅠㅠ 감사합니다 !!

  • spring
  • spring-boot
돈우 댓글 1 좋아요 0 조회수 291

parent 와 child 관계

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. parent는 여러 child를 가질수 있기에 OneToMany로 보여지고 여러 child는 1명의 부모를 두기에 ManyToOne으로 보이는데 왜 코딩에서는 아래처럼 관계 설정 되어 있는지 이해가 안가네요. @ManyToOne private Category parent; @ManyToOne private List<Category> child = new ArrayList<>();

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
강종헌 댓글 2 좋아요 0 조회수 450

kotlin first lambda에 관한 질문입니다.

해결됨

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

안녕하세요 선생님 수업 잘 들었습니다. 질문이 있습니다. 강의 == 13강 9:20초 쯤에 returnBook을 작성하실때 fun returnBook(bookName: String) { this.userLoanHistories.first { it.bookName == bookName }.doReturn() } java 코드와는 다르게 orElseThrow()에 대한 구문이 없는데 생략해도 코틀린에서는 알아서 에러를 던져주는것인가요?

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩토링
dohyun_lim 댓글 1 좋아요 1 조회수 205

http://localhost:8080/hello-mvc?name=spring

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG ) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] spring이 아니라 여전히 hello spring이 나오는 이유가 뭘까요??

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 1 조회수 747

컨트롤러단 NotFound 테스트는 어떻게 하나요?

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

@DisplayName("요청 게시물 ID에 해당하는 게시물이 반드시 존재해야 한다.") @Test void postDetailWithNonExistPostId() throws Exception { //given //when ResultActions result = mvc.perform(get("/api/posts/{id}", 2000)); //then result .andExpect(status().isBadRequest()) .andExpect(jsonPath("$.status").value("fail")) .andExpect(jsonPath("$.message").value("해당 게시물을 찾을 수 없습니다.")) .andDo(print()); } MockMvc로 컨트롤러 테스트를 하고 있습니다. 게시물을 조회하는데 id에 해당하는 게시물이 없다면 제가 직접 정의한 EntityNotFoundException이 발생하게 구현했습니다. 이 익셉션이 발생하면 400에러가 발생됩니다. 테스트 할 때 id 값을 엉뚱하게 2000으로 주는데 아래와 같이 200OK 가 뜨면서 null 값으로 가져오더라고요. 가져온 게시물은 null 값이면서 왜 id 2000의 게시물이 존재한다고 판단하고 정상적으로 동작하는걸까요? 위와 같은 NotFound 예외처리 테스트할 땐 어떤식으로 해야될까요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
gelab 댓글 1 좋아요 0 조회수 183

개발 방법론에 대한 질문 드립니다!

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

현재 강의에서 학습하고 있는 개발론을 도메인 주도 설계 DDD 라고 생각해도 무방할까요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
jjuu0685 댓글 1 좋아요 0 조회수 181

인기 태그

인프런 TOP Writers

주간 인기글