묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요 No tests found for given includes: [jpabook.jpashop.MemberRepositoryTest](--tests filter) 이 에러가 나서 도움을 요청합니다.
MemberRepositoryTest을 실행 했는데 아래와 같이 에러가 나옵니다 Execution failed for task ':test'.> No tests found for given includes: [jpabook.jpashop.MemberRepositoryTest](--tests filter) * 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. MemberRepositoryTest코드 package jpabook.jpashop;import static org.junit.Assert.*;import jpabook.jpashop.Member;import jpabook.jpashop.MemberRepository;import org.assertj.core.api.Assertions;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.annotation.Rollback;import org.springframework.test.context.junit4.SpringRunner;import org.springframework.transaction.annotation.Transactional;import javax.persistence.EntityManager;@RunWith(SpringRunner.class)@SpringBootTestpublic class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() { Member member = new Member(); member.setUsername("memberA"); Long savedId = memberRepository.save(member); Member findMember = memberRepository.find(savedId); Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); Assertions.assertThat(findMember).isEqualTo(member); //JPA 엔티티 동일성 보장 }} application.yml코드 spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true format_sql: truelogging.level: org.hibernate.SQL: debug# org.hibernate.type: trace build.gradle코드 plugins { id 'org.springframework.boot' version '2.7.2' id 'io.spring.dependency-management' version '1.0.12.RELEASE' id 'java'}group = 'jpabook'version = '0.0.1-SNAPSHOT'sourceCompatibility = '11'configurations { compileOnly { extendsFrom annotationProcessor }}repositories { mavenCentral()}dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' implementation 'junit:junit:4.13.1' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test'}tasks.named('test') { useJUnitPlatform()}인프런 질문에도 찾아보고 구글링도 해봤는데 뭐때문인지 몰라 질문을 합니다 도와주세요ㅠ아래는 제코드 구글드라이브 공유링크입니다. https://drive.google.com/drive/folders/1h5v97WrZW3rjxwzl_G2_73a17sXsQYpw?usp=sharing
-
미해결스프링 핵심 원리 - 기본편
빈 등록 안 된 상태에서 @Autowired사용
강의 4:13초에 실행된 결과 값이 이해가 가지 않습니다. 저는 오류가 발생해야 된다고 생각합니다. 그 이유는 @Autowired가 생략된 것으로 @Autowired로 인해 의존 관계가 주입이 되어야 하는데 new AnnotationConfigApplicationContext(); 인자 속에 DiscountService.class만 존재합니다. 그러면 DiscountService생성자의 매개변수 타입이 빈 등록이 안 되어 있어 주입해 줄 타입의 빈이 존재하지 않아 오류가 발생해야 한다고 생각하는데 오류가 왜 안 나는 것인가요? 감사합니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
실제 운영에서 트랜잭션을 Repository에 적용하기도 하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]실제 운영에서 배운 내용과 같이 @Transactional을 Repository에 적용하기도 하나요?보통은 적용하지 않고, REQUIRES_NEW와 같은 특수하게 필요한 상황일때 사용하는 것일까요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@ModelAttribute 와 @RequestBody 질문입니다.
안녕하세요. 강의를 보다가 아직 모호한 부분이 있어서 질문 드립니다. @RequestBody는 Http Message Body 정보를 편리하게 조회할 수 있고 @ModelAttribute 는 파라미터 객체를 생성한 후에 setter를 호출해서 값을 binding 해준다고 하셨는데 그렇다면 @ModelAttribute는 HttpServlet의 기능을 사용하는 거고(get일때는 쿼리스트링 post일때는 Json), @RequestBody는 보내져오는 body 내용을 Json 형태인지 판별하고 보내주는 역할을 한다고 생각하면 될까요?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
미인증 사용자 요청에대해서 redirect 할 때
httpResponse.sendRedirect("/login?redirectURL=" + requestURI); 라고 되어있는데 queryString의 key 값을 URL로 하는거랑 URI 로 하는거랑 뭐가 더 적절한가여? 강의에서 URL이라했으니 그냥 URL로 적어주면 될까여? 왜냐면 변수명은 requestURI라고 해놓으셔서 궁금해요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
여러 개의 쓰레드 풀을 특정 업무에 배정할 수도 있나요?
쓰레드 풀을 마련해 백엔드 was를 운영한다고 하셨는데,이 쓰레드 풀을 특정 기능별로, 요청별로 나눠 여러 쓰레드 풀을 만들어 둘 수도 있나요? 예를 들면 결제 요청들만 처리하는 쓰레드 풀 A와 회원 정보 관리 요청들만 처리하는 쓰레드 풀 B가 있는 것이죠!
-
미해결스프링 핵심 원리 - 기본편
MemberServiceImpl와 MemoryMemberRepository의 메소드 질문있습니다!
MemberServiceImpl의 join과 findMember메소드는결과적으로 memberRepository의 save와 findById를 수행하는것을 알수있는데요여기서 MemberServiceImpl 내부에서 store변수를 만들어서 join과 findMember를 직접 구현해 사용해도 되는데 굳이 MemoryMemberRepository를 만들어서 한번더 클래스를 만들어주는 이유가있나요?제가 이유를 생각해볼때에는 코드의 대한 가독성과 전체 구조의 분리를 위해 서비스와 리포지토리를 분리하는것으로 짐작하고있는데 이것외의 큰이유가 있는지 궁금합니다!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring.io
버전이 달라서 그런지(최신) spring boot features 가 보이지 않습니다 ㅠ
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
자바8로 하면 안되는 걸까요?
자바11로 하는 이유가 궁금합니다~~
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
혼자서 삭제 구현중에 Request method 'DELETE' not supported 오류 질문드립니다!
안녕하세요 강의 너무 잘 듣고 있습니다!! CRUD중 D가 없어서 직접 구현하던중에 오류에 부딪혔는데 해결할 수 없어서 질문드립니다 ㅠㅠ 먼저 HiddenHttpMethodFilter를 사용해야 HTML Form에서 PUT, DELETE를 사용할 수 있다고 알고있습니다. 따라서 application.properties에 다음과같이 필터를 추가했습니다. # HTML form에서 GET, POST 뿐 아니라 PUT, DELETE도 사용하기 위해서 설정 spring.mvc.hiddenmethod.filter.enabled=true 이후 editForm.html에서도 다음과 같은 delete input태그 및 삭제 버튼을 추가했습니다. <form action="item.html" th:action method="post"> <input type="hidden" name="_method" value="delete"> . . 중략 . <div class="col"> <button class="w-100 btn btn-primary btn-lg" type="submit" th:formaction="|@{/basic/items/{itemId}/edit(itemId = ${item.id})}|">저장 </button> </div> <div class="col"> <button class="w-100 btn btn-primary btn-lg" type="submit" th:formaction="|@{/basic/items/{itemId}/edit/delete(itemId = ${item.id})}|">삭제 </button> </div> </div> </form> 이후 다음과 같이 @DeleteMapping 컨트롤러를 작성했습니다. @DeleteMapping("/{itemId}/edit/delete") public String deleteForm(@PathVariable Long itemId, RedirectAttributes redirectAttributes) { Item deletedItem = itemRepository.delete(itemId); redirectAttributes.addAttribute("itemName", deletedItem.getItemName()); redirectAttributes.addAttribute("status", true); return "redirect:/basic/items"; } 문제가 되는 부분은 삭제 버튼은 잘 동작하고, redirectAttribute까지 잘 적용됩니다만, 오히려 저장 버튼을 누르면 Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'DELETE' not supported] 오류가 발생하네요 아무래도 기존 저장이 POST가 아닌 DELETE로 전송되어 생기는 문제같습니다. 궁금한점은 이렇게 DELETE와 POST를 하나의 폼에서 다른 버튼을 눌렀을때 각각 동작하게 하는 방법은 없고, 각각 다른 폼을 이용해야 하는건지 궁금해서 질문드립니다!! 감사합니다!
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
인텔리j 버전 어떤게 필요한가요??
안녕하세요. 스프링 강의 로드맵에 있는 모든 강의를 구매 했는데 인텔리j 버전 확인을 안했네요.. 혹시 모든 강의가 ultimate 버전으로 강의가 진행되나요? 만약 그렇다면 저는 커뮤니티 버전으로 강의를 따라가도 괜찮나요? 특히 '스프링 DB1,2편'이 있던데 JDBC 처럼 ultimate 버전에서만 할 수 있다거나 하진 않나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링 컨테이너와 서블릿 컨테이너
안녕하세요! 강의를 든던중 궁금한 점이 있어서 이렇게 질문 남깁니다. 스프링 컨테이너는 서블릿 컨테이너의 한 종류라고 인식을 해도 되는걸가요?
-
미해결
yaml & yml 문법중 리스트 호출 순서에 관하여 문의 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안드로이드 시스템에 id가 10,11,12,13,14,15 로 되어있는 프로세스를 수행하고자합니다. matrix: os_type: ['ANDROID'] id: ['10', '11', '12', '13', '14', '15'] steps: - name: '테스트 실행' run: |- curl -F '"os_type":"${{ matrix.os_type }}", "id":${{ matrix.id }} > post_result.txt 위 코드로 작성하였을 시 10, 11, 12, ,13, 14, 15 번 순서대로 수행되지않고 15, 12, 10, 13, 14 등 랜덤하게 수행이 되는데요, 다른 언어에서는 리스트를 정의한 순서대로 출력되는데 yml코드로는 랜덤하게 수행이 됩니다. 리스트를 순서대로 수행하고자 하려면 어떻게 해야할까요?
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
Q파일 경로
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강의를 보다가 궁금한 점이 생겨서 질문드려요 generated 경로를 buildDir에 넣는 방법이 있고, 이번 강의처럼 main 아래에 두는 방법이 잇는 것 같은데요 둘 중에 어느 방법이 좀더 좋은 걸까요? 사실 두 방법 개발하는데 큰 문제는 아닌 것 같지만 혹시 의견을 주실 수 있으실까요? jpa, 스프링 완전정복 모두 굉장히 잘 보고 있습니다. 감사합니다!
-
해결됨스프링과 JPA 기반 웹 애플리케이션 개발
패스워드 수정 테스트 시 현재 인증된 사용자의 email, nickname 값을 mockMvc Parameter로 전달하는 방법에 대한 질문입니다.
안녕하세요. 이 질문은 이전에 제가 등록했던 https://www.inflearn.com/questions/595640와 연관지어 질문드립니다. '입력값 정상' 케이스의 패스워드 수정 테스트 코드를 아래와 같이 작성해 보았습니다. 위 코드에서 @WithAccount(value = "henu") 어노테이션을 통해 'value 값'을 통해 닉네임과 이메일(value + "@email.com")로 회원 정보를 생성하고, 이를 SecurityContext에 Authentication으로 넣어줌으로써 MockMvc에서도 인증된 사용자 정보를 자동으로 PasswordForm 클래스에 바인딩 시켜 패스워드 수정(POST)이 되었으면 합니다. 하지만 기대한 것과 달리 email, nickname 파라미터를 직접 설정해주지 않으면 테스트가 실패하는 상황입니다. 패스워드 수정(POST)은 View에 있는 Form을 통해 입력된 값들이 요청을 통해 넘어오면서 처리되지만, 테스트 코드에서는 아무리 인증된 사용자를 만들어 준다고 하더라도 실제로 요청 Parameter에서는 email과 nickname값이 누락된체 넘어가기 때문에 실패하는게 당연한 것이다라고 생각이 들었습니다. 결국 이 테스트가 실패한 원인은 패스워드 수정 시 '현재 패스워드' 와 '현재 인증된 회원의 DB에 저장된 패스워드'를 검사하는 로직을 포함시켰기 때문에 인 것 같은데요. 이런 상황에서도 테스트 코드를 성공시킬 방법이 있는지 조언 부탁드리겠습니다. 미리 답변 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberForm의 패키징 위치?
강의 초반부에 MemberForm객체를 domain 패키지가 아닌 controller 패키지에 생성하시는 이유가 MemberForm 객체의 주 사용 클래스가 controller여서가 맞는지 궁금합니다..!
-
미해결스프링 핵심 원리 - 기본편
"스프링 DB 1,2편"과, "스프링 부트와 JPA 실무 완전 정복 로드맵"은 어떤 차이가 있고 어떤 걸 먼저 접하는 게 좋을까요?
제목이내용입니다. 레거시 프로젝트 경력이 있는 편이라 쿼리는 좀 아는데 JPA는 전혀 접해보지 못해 JPA를 최대한 빨리 학습하고 싶습니다. MVC 1,2편을 빨리 끝내고 JPA 로드맵을 바로 수강하는 것이 유리할까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의자료
영한님이 강의할 때 사용하시는 강의자료(?)는 따로 업로드 안되어있는건가요? 제가 못찾는거인지 궁금합니다.... 베어라고 되어있는데 이 자료가 따로 업로드되어 있는지 궁금합니다..!!
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
http 요청 데이터 - post html form
요러케 여기서 전송을 누르면 다음으로 넘어가야하는데, 저는 누르면 이런 식으로 에러 뜹니다. 코드는 따라 타이핑 하였으며, html만 복붙했습니다,
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
예외를 catch 할 때는 import가 필요 없나요 ?
MemberRepository 4_1 에서 catch(SQLException e) 로 catch 하면 MyDbException을 던져줌으로서 체크예외를 언체크 예외처럼 사용하는법은 이해했습니다 근데 Catch할 때 SQLException은 왜 import 없이 사용할 수 있는건가요 ?