묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
select 쿼리가 나가는 이유
섹션 4. 회원 도메인 개발 회원 기능 테스트 강좌 관련 질문입니다. @Test public void 회원가입() throws Exception { // given Member member = new Member(); member.setName("kim"); // when Long saveId = memberService.join(member); // then assertEquals(member, memberRepository.findOne(saveId)); }위의 코드를 실행시켰을 때, insert문 쿼리가 왜 나가지 않는지는 이해를 했습니다. 하지만 select 쿼리가 왜 나가는지는 궁금합니다.제가 생각한 흐름을 설명드리면,memberService의 join 함수를 실행해서 member 객체를 영속화하게 되면 1차 캐시에 해당 데이터가 저장이 될 것이고 동시에 쓰기 지연 SQL 저장소에 insert 쿼리문이 쌓입니다. 이때 쿼리문은 트랜잭션이 커밋되면 DB에 반영이 되지만 테스트 클래스에서는 트랜잭션이 롤백되기 때문에 insert 쿼리가 나가지 않게 됩니다. 이후 findOne 메소드를 실행할 때에는 DB에서 직접 찌르는 것이 아니라 1차 캐시에 저장되어 있기 때문에 1차 캐시에서 데이터를 가져와도 되기 때문에 select문이 나가지 않아도 된다고 생각했는데 실제 실행결과를 보니 select 쿼리문이 나가더군요.. 이유가 궁금합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
File not found:
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]순수 jdbc 강의 16분내용으로 코드실행하는데 매핑한 주소 모두 file not found가 뜹니다..Identify and stop the process that's listening on port 8082 or configure this application to listen on another port.라고 콘솔에는 뜨는데 톰캣포트랑 h2포트랑 같아서 생기는 문제일까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceIntegrationTest 실행시 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]MemberServiceIntegrationTest 에서 회원가입 코드를 실행하면 MemberController 에서 오류가 발생합니다.이유가 무엇일까요?
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
MVC06에 회원정보수정, 이미지등록수정 강의 영상이 없습니다
영상을 보면서 진행을 했는데이미지 등록 부분에서 에러가 발생하길래확인해 보니 깃허브에 수정된 코드들은 있지만수정과 관련된 영상들은 누락되었네요 깃허브 코드 복붙해서 혼자 해보긴 했는데업로드가 오래된 강의이긴 하지만 분명 검수 과정이 있었을텐데인식을 못하셨다는게 아쉽네요 다른 부분들은 보면서 많이 도움이 되었습니다
-
해결됨스프링 핵심 원리 - 기본편
LogDemoController 오류 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]섹션 9에서 LogDemoController 에 관한 코드를 강의와 똑같이 작성하였는데, 빨간색 글씨로 바뀌면서 오류가 발생합니다. 어떻게 해야 하나요?
-
미해결Practical Testing: 실용적인 테스트 가이드
개인적으로 궁금해서 질문드려요!
저번에 OrderService 작성 시, LocalDateTime.now()를 사용하는걸 보고나서 강의대로 따라 안하고 인터페이스로 한 번 감싸서, 테스트코드에서는 고정된 값을 넣어 검증할 수 있게 바꿨습니다. (사실, 이 때 AfterEach를 쓰지않고 그냥 @Transactional을 사용해서 테스트가 깨지는지 바로 몰랐어요. 그대로 안해서 죄송해요 ㅠ) IntegrationTestSupport로 환경통합하는 섹션 듣는중에, 변경감지가 동작하지 않아서 디버깅해보니깐, stock.deductQuantity에서 변경감지가 동작하지 않더라구요. @Transactional을 붙여서 해결은 했는데 왜 동작이 안한건지 궁금합니다. https://drive.google.com/file/d/1E9-pN1QbrCyZ1w2G5CSP7JtnB6c7SFPf/view?usp=drive_link
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
h2 db table 생성안됨
h2 db 연결은 되었는데 member테이블 생성이 안됩니다. spring: #띄어쓰기 없음 datasource: #띄어쓰기 2칸 url: jdbc:h2:tcp://localhost/~/jpashop #4칸 username: sa password: driver-class-name: org.h2.Driver jpa: #띄어쓰기 2칸 hibernate: #띄어쓰기 4칸 ddl-auto: create #띄어쓰기 6칸 properties: #띄어쓰기 4칸 hibernate: #띄어쓰기 6칸 show_sql: true #띄어쓰기 8칸 format_sql: true #띄어쓰기 8칸 logging.level: #띄어쓰기 없음 org.hibernate.SQL: debug #띄어쓰기 2칸 # org.hibernate.type: trace #띄어쓰기 2칸 ```
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberServiceTest
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 섹션 4 회원 기능 테스트 강의 질문입니다. @RunWith(SpringRunner.class) @SpringBootTest @Transactional class MemberServiceTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test public void 회원가입() throws Exception { // given Member member = new Member(); member.setName("kim"); // when Long saveId = memberService.join(member); // then assertEquals(member, memberRepository.findOne(saveId)); } @Test public void 중복_회원_예외() throws Exception { // given Member member1 = new Member(); member1.setName("kim"); Member member2 = new Member(); member2.setName("kim"); // when & then assertThrows(IllegalStateException.class, () -> { memberService.join(member1); memberService.join(member2); }); } }Junit5를 사용했다는 점을 제외하고는 강의와 똑같이 코드를 작성했습니다.이때 회원가입관련 테스트에서 강의에서는 insert문이 나가지 않지만 저는 따로 Rollback을 false로 설정하지 않아도 insert문이 실행되더군요. 이유가 궁금합니다.사진에서 확인할 수 있듯이 Rollback이 되었기 때문에 트랜잭션이 커밋되지 않아 insert 쿼리가 발생하면 안될 것 같은데 왜 실행되는지 이유를 모르겠습니다.
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
주입받는 authenticationManagerBuilder 질문
HttpSecurity에서 가져올 수 있는 AuthenticationManagerBuilder와주입받는 AuthenticationManagerBuilder가 사로 다른건가요?AuthenticationManagerBuilder가 자동 초기화과정에서 빈으로 생성되고 이게 싱글톤 빈이 아닌건가ㅛ..?
-
미해결스프링 핵심 원리 - 기본편
스프링으로 전환하기 - 로그 출력 오류
package hello.core; import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class MemberApp { public static void main(String[] args) { //AppConfig appConfig = new AppConfig(); //MemberService memberService = appConfig.memberService(); ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); MemberService memberService = applicationContext.getBean("memberService", MemberService.class); Member member = new Member(1L, "memberA", Grade.VIP); memberService.join(member); Member findMember = memberService.findMember(member.getId()); System.out.println("new member = " + member); System.out.println("find Member = " + findMember); } }강의 05:10에 의하면 로그가 출력되어야 하는데, 저는 실행 결과는 정상적으로 출력되지만 로그가 출력되지 않습니다. 어떤 차이인가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build이후 파일생성안됨?
빌드가 된 후에 파일 생성이 안될수가 있나요?ㅜㅜ 경로를 계속 못찾느다고 하네요 들어가봐도 build라는 파일은 없는데요 +비슷한 질문 찾아서 gradlew build로 실행해 보니 빌드오류가 뜹니다 어떤 경우인가요? devtools 지우고 다시 해봐도 동일한 오류가 뜨네요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 빈
[질문 내용] MemoryMemberRepository가 MemberRepository인터페이스를 구현하기 때문에 스피링 빈(객체)는 MemoryMemberRepository클래스의 객체여야한다고 생각하는데강의안은 이렇게 되어있는데 부모 인터페이스가 자식을 품을수 있기 때문에 그림이 이렇게 된건가요??
-
해결됨스프링 핵심 원리 - 기본편
OrderApp실행 했을 때 오류가 발생합니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]‘스프링 핵심 원리 - 기본편’커리큘럼의 섹션3 -스프링으로 전환하기 강의에서 MemberApp을 실행 했을 때는 강의처럼 작동 하는데, 7분 23초쯤 OrderApp실행 시 오류가 발생합니다.Spring Version은 3.3.2이며 logback.xml파일을 만들었는데도 발생합니다 어떻게 해야 하나요?
-
미해결Kevin의 알기 쉬운 Spring Reactive Web Applications: Reactor 1부
newBoundedElastic 에서 queue 에 쌓이는 룰
안녕하세요 좋은 강의 감사합니다.강의 <Sceduler의 종류> 에서 13:24 쯤에 나오는 내용이 궁금합니다."subscribe 3 doing" 는 왜 T-1 쓰레드의 Q1 큐에 쌓이고, "subscribe 4 doing" 는 왜 T-1 쓰레드의 Q2 큐에 쌓에 쌓이는지 궁금합니다.그 다음"subscribe 5 doing" 역시 왜 T-1쓰레드 Q1 큐에 쌓이는 지도 궁금합니다.순서가 차례로 하나씩 할당되게 되는 것인가요감사합니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
book.getStockQuantity()의 개수가 8인 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.처음에는 book.getStockQuantity()가 10일것이라 예상하였고, db에서 다시 조회해야 8일것이라 생각했습니다. 8인 이유는 book.getStockQuantity()를 할때 영속성 컨텍스트의 1차 캐시에서 조회해오기 때문에 8인건가요?
-
미해결스프링 핵심 원리 - 고급편
Spring bean 등록방법
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용][필드 동기화 - 적용]부분에서 FieldLogTrace를 @Configuration 을 이용해서 spring bean에 등록한 이유가 있을까요?@Component로 등록해도 충분했을것같은데다른의도가 있을까 궁금합니다.
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
UsernamePasswordAuthenticationFilter 존재 여부
CustoamAuthenticationFilter를 UsernamePasswordAuthenticationFilter앞에 추가하셨는데,formLogin api를 설정하지 않아도 UsernamePasswordAuthenticationFilter가 존재하는 건가요..?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
findCookie()메서드 관련 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]findCookie() 메서드에서 String cookieName으로SESSION_COOKIE_NAME = "mySessionId";위의 상수를 받고있는 상황으로써 모든 사용자의 cookieName은 전부 "mySessionId"이 됩니다.return Arrays.stream(cookies).filter (cookie -> cookie.getName().equals(cookieName)).findAny().orElse(null);위 코드에서 cookie.getName().equals(cookieName)).findAny() 이 부분을 보게되면 쿠키의 이름과 cookiename이 동일한 것중에서 무작위로 하나를 return하게 됩니다.앞서 cookieName은 전부 mySessionId인 것을 알 수 있습니다. 이럴경우 서로다른 무작위의 사용자가 쿠키를 통해 세션 로그인을 하였을 때 sessionStore.get(sessionCookie.getValue()위 코드로 member 객체를 특정 짓게 되므로, 반드시 나의 회원 정보를 찾는 것이 아닌 타인의 회원정보를 반환할 수 있는 것이 아닌가 의문이 듭니다.인턴AI가 아닌 사람이 직접 답해주시길 바랍니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
결제 보류로 넘겨야 하는 결제 예외 상황에서
서비스단에서 호출한결제 시스템(api 호출)에서 결제 금액 부족 런타임 에러로 던진 걸잡아서 다시 체크예외로 던지고 전역 예외 처리기 (@ControllerAdvice)를 사용해 처리하나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@SpringBootTest 가 SpringExtention 을 못찾아서 안돌아감
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]section3. 스프링 메시지 소스 활용 을 수강하던 중 @SpringBootTest 가 붙은 클래스 테스트를 실행하였는데, 아래와 같은 오류가 발생합니다.테스트가 무시되었습니다.java.lang.TypeNotPresentException: Type org.springframework.test.context.junit.jupiter.SpringExtension not presenthttps://github.com/mtak0235/TIL/tree/main/spring/item-service