묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
@AfterEach 대신 @Transactional 사용 시 오류
안녕하세요 강사님, 좋은 강의 제공해주셔서 감사합니다 :) "9강. 책 관련 기능 테스트 작성하기" 강의를 듣던 도중 궁금한 점이 생겨 이렇게 질문을 드립니다. 해당 강의에서 @AfterEach()를 사용하며, 아래와 같이 returnBookTest()를 테스트합니다.@AfterEach를 사용했을 경우, 위와 같이 정상적으로 테스트를 통과합니다. 그러나, @AfterEach 대신 @Transacctional을 사용할 경우, 동일한 테스트에서 다음과 같이 실패합니다.@Transactional은 테스트 케이스 종료 후 db를 롤백시킨다고 알고 있습니다. 그러므로 @AfterEach 대신 @Transactional을 사용해도 잘 돌아갈 것으로 예상하고 돌려봤으나, 테스트에 실패한다고 떴습니다.(@Transactional을 사용 시, BookServiceTest class를 open class BookServiceTest로 수정했습니다) 왜 @AfterEach 대신 @Transactional을 사용했을 경우 해당 상황에서 실패하는지 알 수 있을까요?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
BookRepository 위치
혹시 BookRepository를 domain/book 아래에 만드신 이유가 있으신가요?? BookRepository이니까 repository/book 아래 만드는게 나중에 찾을 때도 편할거 같고 좀더 직관적인 거같아서 질문드립니다.
-
미해결실전! 스프링 데이터 JPA
뭘 사용할지 선택에 있어서 질문입니다.
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값을 주는데 어떤 이유인지 궁금합니다.
-
미해결실전! 스프링 데이터 JPA
@GeneratedValue에 관한 질문입니다.
member = Member(id=3, username=member1, age=10)-> member.getTeam() = Team(id=1, name=teamA)member = Member(id=4, username=member2, age=20)-> member.getTeam() = Team(id=1, name=teamA)member = Member(id=5, username=member3, age=30)-> member.getTeam() = Team(id=2, name=teamB)member = Member(id=6, username=member4, age=40)-> member.getTeam() = Team(id=2, name=teamB) Team을 먼저 persist 했기때문에 team의 id가 1,2가 됐고, 그 뒤에 순차적으로 member의 id가 3,4,5,6이 된 건가요 ? Team은 Team대로, Member는 Member대로 각 엔티티마다 id를 사용하는게 낫지 않나요? 실무에서는 어떤지 궁금하고, 만약 실무에서는 각 엔티티마다 id값을 공유한다면 강의에서는 모든 엔티티가 같은 id값을 공유하는지 궁금합니다.
-
미해결실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
allopen vs spring
안녕하세요 강의 듣다 궁금한 점이 있어 질문드립니다!"org.jetbrains.kotlin.plugin.allopen" 플러그인을 사용하여 allopen으로 지정되어 있는 상태가 아닌가요?그런데, 'org.jetbrains.kotlin.plugin.spring'를 다시 추가해야 하니 두 플러그인의 차이를 모르겠습니다 !
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 가입 시 화이트 라벨
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]선생님과 동일하게 소스 입력하고, 셋팅도 제대로 했는데 'http://localhost:8080/members/new' 에서 등록버튼 누르면 화이트라벨이 뜹니다ㅠ 다른 사람들거 보고 동일한 위치에 확인해봤는데 오타도 없는거 같아요! 한번 확인 부탁드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
커넥션 관련 질문 드립니다
커넥션 풀을 이용하여 커넥션을 사용해서 반납하고 다음 커넥션을 가져올 때 conn0이라고 같은 커넥션만 가져오는 것을 볼 수 있는데 커넥션풀이 어떤 커넥션을 주는지 알고리즘이 따로 있는 걸까요? 어떤 기준으로 커넥션을 주는지 궁금합니다
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
index.html 질문
제가 thymeleaf를 복습하려고 타임리프 기본 기능 만들어 놓은 것을 실행시켰는데 왜 자꾸 index페이지가 다른 게 뜰까요..ㅜㅜ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
form태그 url과 button태그 url
th:onclick="|location.href='@{/basic/items/{itemId}(itemId=${item.id})}'|"이 button 태그를 form태그가 더 큰 범위에서 둘러싸고 있습니다. <form action="item.html" th:action method="post">th:action으로 현재 페이지로 url이 설정돼있고 http 메서드 방식은 post 방식인데 1. editForm에서 취소 버튼을 누르면 <button> 태그에서 지정한 url로 이동하는 이유가 세부적으로 지정해줬기 때문인가요??? 취소 버튼을 눌렀을 때 post 방식으로 이동하는 것인가요?2번이 맞다면 보내는 데이터가 없으니까 Get방식이어야 하는 것 아닌가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hello-String api 실행화면 소스 코드
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.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를 써서 이렇게 화면이 뜨는게 맞는건지 모르겠네요
-
미해결더 자바, 코드를 조작하는 다양한 방법
어노테이션 프로세서 활용 예와 관련해 질문 있습니다.
'마무리' 한 강 남았네요.덕분에 많이 배우고 많이 성장한 것 같습니다.그런데, 어노테이션 프로세서 활용과 관련해서,, QueryDSL 사용 시 생성되는 엔티티의 Q파일도 어노테이션 프로세서를 활용한 기술인지 궁금합니다.짐작으로는 맡긴 한데, 관련 언급이 없었어서요.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
No tests found for given includes: [ooo.ooo.oooTests](--tests filter)
테스트 도중No tests found for given includes: [ooo.ooo.oooTests](--tests filter)intellij ide 사용중인데 해당 에러가 뜹니다.해결방안으로 settin -> Run test using -> Gradle에서 intelliJ IDEA로 변경하면테스트 케이스가 잘 작동하는데요.이유가 무엇인가요??인텔리제이는 왜 실행이 되고그레들로는 실행이 안되는지도 궁금합니다. 스프링 부트 2.7.10gradle 2.6.1java 11버전입니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
실무에서도 id를 따로 두나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의에서는 사용자가 입력하는 아이디와 서버에서 직접 생성하는 아이디가 있는데 실무에서도 서버에서 생성하는 아이디를 같이 두나요? 데이터베이스에 저장도 같이 하는지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
11분 쯤에 프록시 관련하여 질문입니다.
지연 로딩을 사용하면 그 객체를 사용할 때 프록시 객체에서 영속성 컨텍스트에 연결을 요청해서 진짜 객체를 가져오는 거로 알고 있는데요이번에는 단순히 Order만 Return 했기 때문에 Order객체 안에 있는 프록시 객체(Member, Delivery, OrderItems)는 사용할 일이 없는 것 아닌가요 ?왜 프록시 객체를 사용하려다 문제가 발생했는지 알 수 있을까요?
-
미해결스프링 기반 REST API 개발
이벤트 Repository강의 중 Event 클래스에 private Integer Id; 위치 질문
이벤트 Repository강의 중 Event 클래스에 private Integer Id; 이 한줄의 위치가 맨 위가 아니면 에러가 납니다.왜 그런건가요? (저는 강의 순서대로 입력하느라 아래쪽에 입력했었습니다.) 에러내용은 : org.springframework.orm.jpa.JpaSystemException: Unknown integral data type for ids : java.lang.String
-
미해결스프링부트 시큐리티 & JWT 강의
@PreAuthorize @Secured 차이
안녕하세요 좋은 강의 해주셔서 감사합니다! 다름이 아니라 강의에 질문이 있어 문의드립니다.혹시 @PreAuthorize @Secured 차이는 표현식의 차이밖에 없는건가요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
clearStore cannot find symbol
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.코드를 정상적으로 작성했음에도 불구하고 오류가 납니다. file-invalidate caches 후 다시 실행하여도 같은 오류가 발생됩니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
오류발생
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.똑같이 했는데 저부분이 오류가 발생합니Cannot resolve method 'hasText' in 'StringUtils'이렇게 나옵니다
-
미해결스프링 핵심 원리 - 기본편
왜 App.config 파일의 객체 생성 메서드를 static 으로 주면 안되나요?
안녕하세요 ! 스프링 프로젝트를 하며 원리가 궁금해서 수강하게 되었습니다. 강의 너무 잘 듣고 있습니다: )다름 아니라, 싱글톤 컨테이너 파트의 @Configuration과 싱글톤 강의에서 스프링의 싱글톤 컨테이너를 테스트 하는 부분을 듣고 있습니다. 그리고 제 코드에서 실수를 발견했습니다. 테스트 결과가 강의처럼 여러 번 객체를 생성해도 하나의 객체만 생성(싱글톤 적용)될 수 있어야 하는데 제 코드에서는 작동되지 않았습니다.이전 코드를 찾아본 결과, App.confing 파일의 memberRepository()의 접근제어자를 static으로 주었기에 싱글톤이 적용되지 않고 계속 새로운 객체가 생성되어 테스트에 실패했습니다. AppConfig.java 일부입니다.//올바른 메서드 @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } //이전 메서드 @Bean public static MemberRepository memberRepository() { return new MemoryMemberRepository(); }그런데 그 이유가 너무 궁금해져서 이렇게 질문 드립니다! static method에서 객체를 생성하면 왜 스프링 컨테이너가 이를 싱글톤으로 처리하지 못하는 걸까요?답변 기다리겠습니다 감사합니다.