영상 11:00부분 부터, 테스트가 끝날 때마다 초기화되는 AfterEach부분을 적지 않았음에도 불구하고 정상실행 됩니다. findByName()이 왜 오류가 안날까요? 스프링이 업그레이드 되면서 자동으로 clear하는 기능이 생겼나 싶어서 찾아보니까 그런내용은 없었는데, 혹시 오류가 안나는 이유를 알 수 있을까요? package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.junit.jupiter.api.Test; import java.util.List; import static org.assertj.core.api.Assertions.*; class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); @Test public void save() { //given Member member = new Member(); member.setName("spring"); //when repository.save(member); //then Member result = repository.findById(member.getId()).get(); assertThat(result).isEqualTo(member); } @Test public void findByName() { //given Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); //when Member result = repository.findByName("spring1").get(); assertThat(result).isEqualTo(member1); } @Test public void findAll() { //given Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); //when List<Member> result = repository.findAll(); //then assertThat(result.size()).isEqualTo(2); } }
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강의 1분 정도에 View는 화면을 그리는데 모든 역량을 집중해야 한다고 말씀해주셨는데 아래의 케이스에서는 어느 영역에서 처리하나요? db의 데이터 Y, N 또는 True, False의 데이터가 있을 경우 화면에는 예, 아니오 또는 사용, 미사용 과 같이 처리 할 경우 DB에서 조회 시, Service에서 if 또는 case 문으로 처리 가능하고, Front에서도 처리 가능한데 DB 또는 Service에서 처리 할 경우 해당 값이 변경 되야하면 서버를 재기동하는 부담이 있고, Front에서 할 경우는 단순 파일 배포를 통해 재기동하지 않아도 된다는 장점이 있을 것 같습니다. 어느게 정답일 수는 없겠지만 보통은 어떻게 처리하는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 버전이 달라서 그런건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. spring.io에 들어가서 프로젝트를 선택할때 Gradle이 Kotlin하고 Groovy두개로 나뉘는데 어떤걸 선택해서 만들어야 하나요?
[질문 내용] MessageSource 를 스프링 빈으로 등록하지 않고, 스프링 부트와 관련된 별도의 설정을 하지 않으면 messages 라는 이름으로 기본 등록된다고 전 강의에서 배웠습니다. 지금 application.properties에는 messages 라는 이름으로 기본 등록됐으니 MessageSource를 스프링 빈으로 등록하지 않았을텐데 어떻게 @Autowired로 주입된건지 궁금합니다..!!
다른분 질문 답변에서 WAS는 Web Server + Web Container(Sevlet Container)라는 것을 알았습니다. 여기서 WAS안에 WAS + 서블릿 컨테이너가 있는데 1) WAS 안에 Web Server + Web Container(Sevlet Container)라고 생각하면 될까요? 2) 그럼 request, response 객체는 웹 서버 부분에서 생성된다고 이해하면 될까요?? 3) 웹서버부분에서 request,response 객체를 파라미터로 helloServlst(서블릿 객체)에 넘기는 것은 웹서버가 애플리케이션 로직같은 동적인 처리가 필요하니까 서블릿 컨테이너(WAS)에 요청을 위임한 것이다 라고 이해하면 될까요?? 답변주시면 정말 감사하겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] cmd에 아무리쳐도 다 안되는데 어떻게하나요..? 강의영상 시작부터 막히네요.. 강사님이 cd study라고 치시는데 이거 의미도모르겟구..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] p태그에 th:text가 없다면 안녕하세요.손님 이게 뜨는거잖아요? 인텔리제이안에서 크롬으로 튼 화면이거든요. 그러면 p태그안에 쓴 안녕하세요.손님이 나와요 근데 강사님처럼 직접 localhost:8080/hello 에 들어가면 안녕하세요 hello가 나와요 컨트롤러에서 model.attribute에 name,value 넣어서 그런건 알고있는데 <p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p> <p>안녕하세요. 손님</p> 저 html 보이는게 두개가왜 다른지도 궁금하고 언제 th:text를 쓰고 p태그를 쓰는지가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. assertThrow()부분에서 오류나는데 인터넷 보고 해봐도 해결이 안되네요 assertThrows()함수와 try catch 부분에서 fail 이 오류가 납니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 질문 내용을 다 읽어 본 뒤에 질문 드립니다. h2연결이 안되어서 회원목록이 h2와 연결이 전혀 안 됩니다. 구글 드라이브에 업로드해서 질문드립니다 .ㅠㅠ https://drive.google.com/file/d/1VXf9yrQWtOnXcDB2imbcf0QRGPIp7OGH/view?usp=sharing
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 동일한 에러 메세지 질문이 없어서 남깁니다! 버전만 다르고 강의와 동일하게 진행했는데 아래와 같은 에러가 발생합니다. External Libraries를 보면 4개밖에 없는데, 라이브러리를 가져오지 못해서 발생한 문제일까요?
찾아보니까 .\gradlew build로 슬래시가 아니라 역슬래시던데 차이가 있나요? 그리고 libs 폴더안의 파일이 hello-spring-0.0.1-SN APSHOT.jar 와 hello-spring-0.0.1-SN APSHOT-plain.jar 두 파일이 있는데 차이점이 뭔가요?
addItemV6컨트롤러 내용중에, redirectAttributes.addAttribute("itemId",savedItem.getId()); redirectAttributes.addAttribute("status",true); return "redirect:/basic/items/{itemId}; 이렇게 해주면, 리다이렉트된 URL로 HTTP GET메서드를 호출하는것이기 때문에, @GetMapping("/{itemId}") 컨트롤러가 동작해서 그에 맞는 뷰 템플릿을 호출해줌으로써 상품상세 화면이 노출되는것 같은데요. 여기서 질문드리자면, "redirect:/basic/items/{itemId}“이지만, 실제 리다이렉트된 URL은 /basic/items/3?status=true 이런식으로 쿼리파라미터형식도 같이 붙게되서 GET /basic/items/3?status=true으로 요청을 보내게되는데, 어떻게 @GetMapping("/{itemId}") 컨트롤러가 동작하는것인가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] <div>상품 종류1</div> <div th:each="type : ${itemTypes}" class="form-check form-check-inline"> <input type="radio" th:field="${item.itemType}" th:value="${type.name()}" class="form-check-input" disabled> <div>상품 종류2</div> <div th:each="type : ${itemTypes}" class="form-check form-check-inline"> <input type="radio" th:field="${item.itemType}" th:value="${type}" class="form-check-input" disabled> 위에서 field에 있는 값과 value 값을 비교해서 같을 시에 checked가 추가된다고 말씀하셨습니다. 영한님께서 수업 때 하신 방식인 상품 종류 1처럼 하게 되면 String 값과 enum을 비교하는 거니까 상품 종류 2처럼 enum과 enum을 비교하는 게 맞지 않나 생각이 들어서 질문 드립니다! 제가 상품 종류 2로 코드를 바꿔서 해도 정상적으로 동작했습니다.