실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요 강사님, 좋은 강의 제공해주셔서 감사합니다 :) " 9강. 책 관련 기능 테스트 작성하기 " 강의를 듣던 도중 궁금한 점이 생겨 이렇게 질문을 드립니다. 해당 강의에서 @AfterEach()를 사용하며, 아래와 같이 returnBookTest()를 테스트합니다. @AfterEach를 사용했을 경우, 위와 같이 정상적으로 테스트를 통과합니다. 그러나, @AfterEach 대신 @Transacctional을 사용할 경우, 동일한 테스트에서 다음과 같이 실패합니다. @Transactional은 테스트 케이스 종료 후 db를 롤백시킨다고 알고 있습니다. 그러므로 @AfterEach 대신 @Transactional을 사용해도 잘 돌아갈 것으로 예상하고 돌려봤으나, 테스트에 실패한다고 떴습니다. (@Transactional을 사용 시, BookServiceTest class를 open class BookServiceTest로 수정했습니다) 왜 @AfterEach 대신 @Transactional을 사용했을 경우 해당 상황에서 실패하는지 알 수 있을까요?
EntityManger를 주입받는 방법으로 private final EntityManager em; 이렇게 선언하고 @RequiredArgsConstructor로 받을 수도 있고, 이번 강의에서처럼 @PersistenceContext로 받을 수도 있는데 각각의 차이점이 무엇인가요 ? public long count() { return em.createQuery("select count(m) from Member m", Long.class) .getSingleResult(); } 또 여기서 메소드 선언문에는 long 타입을 반환타입으로 설정했는데 createQuery의 2번째 파라미터로는 Long값을 주는데 어떤 이유인지 궁금합니다.
안녕하세요, 제 질문은 아래와 같습니다. '강의를 시작하며' 수업에서 본 강의는 ' Spring Boot를 이용한 RESTful Web Services 개발' 강의의 후속 강의라고 말씀해주셨습니다. 기존에 Rest API를 알고 있음에도, ' Spring Boot를 이용한 RESTful Web Services 개발' 강의를 먼저 들어야만 할까요? 감사합니다.
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요 강의 듣다 궁금한 점이 있어 질문드립니다! "org.jetbrains.kotlin.plugin.allopen" 플러그인을 사용하여 allopen으로 지정되어 있는 상태가 아닌가요? 그런데, 'org.jetbrains.kotlin.plugin.spring'를 다시 추가해야 하니 두 플러그인의 차이를 모르겠습니다 !
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 선생님과 동일하게 소스 입력하고, 셋팅도 제대로 했는데 ' http://localhost:8080/members/new ' 에서 등록버튼 누르면 화이트라벨이 뜹니다ㅠ 다른 사람들거 보고 동일한 위치에 확인해봤는데 오타도 없는거 같아요! 한번 확인 부탁드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.
DB 패스워드를 암호화하기 위해 key-store를 생성하게 되는데 여기에서도 key-store의 패스워드가 yml 설정파일에 존재하게 되는 것으로 이해했습니다. key-store의 패스워드는 암호화 하지 않아도 되는건지 헷갈려서 질문드립니다. 만약 암호화가 필요하다면 DB 패스워드를 암호화 하기 위한 key-store의 패스워드를 암호화 하기위한 key-store..... 이런식으로 무한루프가 돌 것 같은데 실무 환경에서는 어떻게 사용하고 있는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] localhost:8080/hello-String?name=spring !! hello-String api 부분 실행 페이지에서 소스코드를 열어보면 html 코드가 나오는데 body 부분에 hellspring이 들어가긴 하는데 제가 window를 써서 이렇게 화면이 뜨는게 맞는건지 모르겠네요
당연히 구글링 해보셨져? 원하는 결과를 못찾으셨나요? 어떤 검색어를 입력했는지 알려주세 문제가 발생한 코드(프로젝트)를 Github에 올리시고 링크를 알려주세요. 안녕하세요 호돌맨님. 다름이 아니라 호돌맨님 영상 9:30쯤에서 Login DTO에 대한 @NoArgsConstructor가 없는데도 테스트가 정상 작동되는 모습이 보입니다. 저는 반대로 NoArgsConstructor가 없이 실행하니 생성자를 만들고 테스트를 실행하라고 빌드내용이 떴습니다. 이에 대해서 제가 놓치고 있는 부분이 있는가 싶습니다. 자바 버전 이슈인가, 롬복 버전 이슈인가 고민이 드네요 https://github.com/uiurihappy/blog.ybchar.dev/commit/e5ee816f3b3a3c05dabb586caee0ddfb9fc471a6 해당 커밋입니다.
https://www.inflearn.com/course/lecture?courseSlug=%EC%BD%94%EC%96%B4-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%8B%9C%ED%81%90%EB%A6%AC%ED%8B%B0&unitId=29835&tab=curriculum 해당 강의를 듣고 질문이 있습니다. FilterChainProxy의 시큐리티 필터 목록을 보면 SessionManagementFilter가 별도로 있는데요. 강사님이 설명해주신 내용과 ppt를 보면, UsernamePasswordAuthenticationFilter에서 호출되는 CompositeSessionAuthenticationStrategy의 strategy들을 SessionManagementFilter라 말씀하시는 것 같습니다. 그럼 시큐리티 필터 목록에 있는 SessionManagementFilter는 언제 호출되는걸까요? 혹시라도 제가 잘못 이해한 부분이 있다면, 피드백 부탁드립니다.
테스트 도중 No tests found for given includes: [ooo.ooo.oooTests](--tests filter) intellij ide 사용중인데 해당 에러가 뜹니다. 해결방안으로 settin -> Run test using -> Gradle에서 intelliJ IDEA로 변경하면 테스트 케이스가 잘 작동하는데요. 이유가 무엇인가요?? 인텔리제이는 왜 실행이 되고 그레들로는 실행이 안되는지도 궁금합니다. 스프링 부트 2.7.10 gradle 2.6.1 java 11버전입니다.
지연 로딩을 사용하면 그 객체를 사용할 때 프록시 객체에서 영속성 컨텍스트에 연결을 요청해서 진짜 객체를 가져오는 거로 알고 있는데요 이번에는 단순히 Order만 Return 했기 때문에 Order객체 안에 있는 프록시 객체(Member, Delivery, OrderItems)는 사용할 일이 없는 것 아닌가요 ? 왜 프록시 객체를 사용하려다 문제가 발생했는지 알 수 있을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 코드를 정상적으로 작성했음에도 불구하고 오류가 납니다. file-invalidate caches 후 다시 실행하여도 같은 오류가 발생됩니다.
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 똑같이 했는데 저부분이 오류가 발생합니 Cannot resolve method 'hasText' in 'StringUtils' 이렇게 나옵니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강사님과 코드를 똑같이 작성했는데 distinct를 사용하기 전에도 데이터 뻥튀기 없이 올바르게 데이터가 나옵니다. 제가 어떤 부분을 잘못한 건지 궁금합니다.
public List<Member> findByPage(int age, int offset, int limit){ return em.createQuery("select m from Member m where m.age = :age order by m.username desc") .setParameter("age", age) .setFirstResult(offset) .setMaxResults(limit) .getResultList(); } em.createQuery("select m from Member m where m.age = :age order by m.username desc", Member.class) 아래처럼 끝에 반환하는 클래스 타입을 적어줘야 된다고 기억을 하는데 위에 코드 처럼 적어주지 않아도 정상적으로 작동을 하더라구요? 반면에 public long totalCount(int age){ return em.createQuery("select count(m) from Member m where m.age = :age") .setParameter("age", age) .getSingleResult(); } totalCount 의 경우 클래스 타입을 안적어주면 바로 빤갈줄이 그어지는데 반환하는 클래스 타입이 생략이 가능한 경우도 있는건가요??