inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

DTO 설정과 서비스계층 만들기 강의에서 TodoServiceTests를 실행시켰는데 에러가 발생했습니다

미해결

코드로 배우는 React 19 with 스프링부트 API서버

강의를 따라서 코딩하고 실행시켜 봤는데 아래와 같은 내용으로 에러가 발생했습니다. 어떤 곳이 문제가 있는 알려 주신다면 감사하겠습니다. 혹시 확인하고 싶으신 게 있다면 알려 주셨으면 합니다. :: Spring Boot :: (v3.4.1) 2025-02-11T11:28:59.109+09:00 INFO 2836 --- [apiserver] [ Test worker] o.z.apiserver.service.TodoServiceTests : Starting TodoServiceTests using Java 21.0.5 with PID 2836 (started by zzamp in C:\Users\zzamp\Desktop\apiserver\apiserver) 2025-02-11T11:28:59.110+09:00 INFO 2836 --- [apiserver] [ Test worker] o.z.apiserver.service.TodoServiceTests : No active profile set, falling back to 1 default profile: "default" 2025-02-11T11:28:59.445+09:00 INFO 2836 --- [apiserver] [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2025-02-11T11:28:59.484+09:00 INFO 2836 --- [apiserver] [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 32 ms. Found 1 JPA repository interface. 2025-02-11T11:28:59.760+09:00 INFO 2836 --- [apiserver] [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2025-02-11T11:28:59.801+09:00 INFO 2836 --- [apiserver] [ Test worker] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.6.4.Final 2025-02-11T11:28:59.824+09:00 INFO 2836 --- [apiserver] [ Test worker] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled 2025-02-11T11:28:59.996+09:00 INFO 2836 --- [apiserver] [ Test worker] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer 2025-02-11T11:29:00.015+09:00 INFO 2836 --- [apiserver] [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2025-02-11T11:29:00.071+09:00 INFO 2836 --- [apiserver] [ Test worker] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection org.mariadb.jdbc.Connection@72f24a84 2025-02-11T11:29:00.073+09:00 INFO 2836 --- [apiserver] [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2025-02-11T11:29:00.107+09:00 INFO 2836 --- [apiserver] [ Test worker] org.hibernate.orm.connections.pooling : HHH10001005: Database info: Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] Database driver: undefined/unknown Database version: 10.11.10 Autocommit mode: undefined/unknown Isolation level: undefined/unknown Minimum pool size: undefined/unknown Maximum pool size: undefined/unknown 2025-02-11T11:29:00.552+09:00 INFO 2836 --- [apiserver] [ Test worker] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) 2025-02-11T11:29:00.580+09:00 INFO 2836 --- [apiserver] [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2025-02-11T11:29:00.892+09:00 WARN 2836 --- [apiserver] [ Test worker] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open -in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open -in-view to disable this warning 2025-02-11T11:29:01.216+09:00 INFO 2836 --- [apiserver] [ Test worker] o.z.apiserver.service.TodoServiceTests : Started TodoServiceTests in 2.251 seconds (process running for 3.134) Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build what is described in Mockito's documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#0.3 WARNING: A Java agent has been loaded dynamically (C:\Users\zzamp\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.15.11\a38b16385e867f59a641330f0362ebe742788ed8\byte-buddy-agent-1.15.11.jar) WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information WARNING: Dynamic loading of agents will be disallowed by default in a future release Hibernate: select t1_0.tno,t1_0.complete,t1_0.content,t1_0.due_date,t1_0.title from tbl_todo t1_0 where t1_0.tno=? No value present java.util.NoSuchElementException: No value present at java.base/java.util.Optional.orElseThrow(Optional.java:377) at org.zerock.apiserver.service.TodoServiceImpl.get(TodoServiceImpl.java:24) at org.zerock.apiserver.service.TodoServiceTests.testGet(TodoServiceTests.java:20) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended > Task :test TodoServiceTests > testGet() FAILED java.util.NoSuchElementException at TodoServiceTests.java:20 타깃 VM에서 연결 해제되었습니다. 주소: 'localhost:4408', 전송: '소켓' 2025-02-11T11:29:32.264+09:00 INFO 2836 --- [apiserver] [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2025-02-11T11:29:32.265+09:00 INFO 2836 --- [apiserver] [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2025-02-11T11:29:32.268+09:00 INFO 2836 --- [apiserver] [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. > Task :test FAILED 1 test completed, 1 failed FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///C:/Users/zzamp/Desktop/apiserver/apiserver/build/reports/tests/test/index.html * Try: > Run with --scan to get full insights. BUILD FAILED in 36s 5 actionable tasks: 5 executed

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
wjdwoals042 댓글 2 좋아요 0 조회수 144

Swagger API 3.x 오류..

미해결

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

사진과 같이 뜹니다. 강사님과 다른 코드가 없는 것 같은데 이러네요..ㅠ 방법이 있을까요?

  • rest-api
  • spring-boot
이현준 댓글 1 좋아요 0 조회수 269

하이버네이트 프록시객체 질문

해결됨

실전! 스프링 데이터 JPA

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 영한 님 강의를 들으며 공부하던 중 findAll 메서드를 통해 가져온 List<Member> members의 각 Member들이 team 필드에 프록시 객체를 들고 있다고 말씀하셨는데, 해당 프록시 객체의 값을 디버깅해 본 결과 그 안에 이미 값이 존재 했습니다. console을 확인해보니 아직 db에 쿼리를 날리기 전인데(쿼리를 날리기 전인지 p6spy에 들어오기 전인지는 확인하지 못한 점 죄송합니다.) members의 각 Member들의 team필드에 프록시 객체가 존재하지만 그 안에 이미 team의 값이 들어있는데 em.clear()를 통해 영속성콘텍스트마저 비워줬는데 어떻게 이미 알고 있는 건가요?

  • java
  • spring
  • spring-boot
  • jpa
Matthew C 댓글 2 좋아요 1 조회수 183

댓글 테스트 작성 시 에러 발생

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의를 따라가던 도중 테스트 코드에서 에러가 발생해 질문 드립니다. 섹션 3. 댓글 최대 2depth - CUD API 구현 강의를 들으며 void deleteShouldMarkDeletedIfHashChildren() 테스트에서 에러가 발생했습니다. 에러 내용은 PotentialStubbingProblem 에 관련된 내용으로 org.mockito.exceptions.misusing.PotentialStubbingProblem: Strict stubbing argument mismatch. Please check: - this invocation of 'countBy' method: commentRepository.countBy(1L, 0L, 2L); -> at shoon.board.comment.service.CommentService.hasChildren(CommentService.java:70) - has following stubbing(s) with different arguments: 1. commentRepository.countBy(1L, 2L, 2L); 위와 같이 에러가 발생했습니다. 이 내용을 토대로 살펴보았을 때, 강의에서 제공된 코드가 아래와 같은데 @Test @DisplayName("삭제할 댓글이 자식 있으면, 삭제 표시만 한다.") void deleteShouldMarkDeletedIfHasChildren() { // given Long articleId = 1L; Long commentId = 2L; Comment comment = createComment(articleId, commentId); given(commentRepository.findById(commentId)) .willReturn(Optional.of(comment)); given(commentRepository.countBy(articleId, commentId, 2L)).willReturn(2L); // //when commentService.delete(commentId); // // //then verify(comment).delete(); } 이때 comment는 mock 객체로 articleId와 commentId만 가지고 있는 상황이며 getArticleId와 getCommentId만 mocking이 되어있는데, 실제 countBy 메서드가 서비스 객체에서 private boolean hasChildren(Comment comment) { return commentRepository.countBy(comment.getArticleId(), comment.getParentCommentId(), 2L) == 2; } 위와 같이 호출이 되는데, 이때 getParentCommentId()의 값이 존재하지 않는데 테스트가 정상적으로 작동할 수 있나요? 테스트 코드에서는 countyBy(articleId(1), commentId(2), 2)로 고정해두었는데, 실제 호출은 이와 달라지기 때문에 에러가 발생한다고 생각이 들었는데 맞을까요? 강사님 코드에서는 정상 작동하고 제 코드는 작동이 에러가 나서 이유를 정확히 모르겠네요 ㅜㅜ 혹시 제 코드가 필요하실 수도 있을까봐 구글 드라이브 링크로 제 코드 파일도 남기도록 하겠습니다. https://drive.google.com/file/d/1tqV1PkvwpnaRqI9msxEj4X_t7iqg_CFr/view?usp=drive_link

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
박상훈 댓글 2 좋아요 0 조회수 207

게시글 CRUD API 구현 부분에서 gradle 관련 에러가 발생합니다.

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.mysql:mysql-connector-j' implementation project(':common:snowflake') } 이렇게 설정 하고 gradle 싱크를 맞췄을때 A problem occurred evaluating project ':service:article'. > Project with path ':common:snowflake' could not be found in project ':service:article'. 이렇게 에러가 발생합니다.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
fb1014 댓글 3 좋아요 0 조회수 238

개인적인 궁금증입니다

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

강사님께서는 실무에서 JPA를 잘 사용하지 않으신다고 하신 걸 댓글에서 봤습니다. 그러면 MyBatis나 JDBC를 주로 사용하시는 건가요? 아니면 JPA는 사용하시는데 쿼리 메소드 기능 대신 @Query로 직접 native query를 작성하시는 건가요?

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
eoyeong 댓글 2 좋아요 0 조회수 245

무한 스크롤 쿼리와 페이지 번호 쿼리 질문 있습니다.

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 페이지 넘버 쿼리 무한 스크롤 쿼리 안녕하세요 위 두 쿼리 모두 (board_id, article_id)를 인덱스로 설정해놔서 secondary index만 접근해도 될 것 같은데 페이지 넘버 쿼리에서 clustered index도 접근하는 것은 offset의 특성(?) 때문일까요? 무한 스크롤 쿼리에서는 secondary index의 정보(board_id, article_id)만으로 기준점을 찾아내고, limit 개수만큼 clustered index에 접근하는 것 같아서 페이지 넘버 쿼리에서도 secondary index의 정보(board_id, article_id)만으로도 offset의 위치를 찾을 수 있을 것 같은데 왜 clustered index까지 접근하는 걸까요??

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
eoyeong 댓글 2 좋아요 0 조회수 217

localhost/hello 404에러

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

View 환경설정 부분에서 localhost:8080/hello 부분이 접속이 안됩니다. 작성코드 결과화면

  • java
  • spring
  • mvc
  • spring-boot
댓글 4 좋아요 0 조회수 331

soft Delete 시 index 설정

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 먼저 강의 들으면서 정말 많은 것을 배우고 있습니다. 감사합니다. 아직 index나 쿼리에 대해 이해도가 많이 부족하다 보니 궁금한 점이 있는데요. 실제 게시글이나 댓글 삭제 시 물리적 삭제가 아닌 논리적 삭제(soft delete)를 구현하게 되는 경우가 많았는데요. 이때 isDeleted같은 필드를 두고 true, false 의 boolean 값으로 관리했습니다. 이후 데이터를 조회할 때는 isDeleted가 false인 것들만 조회하는 방식이었는데, 이때도 isDeleted를 복합 index의 키값으로 넣어서 관리를 하는 경우가 많을까요? 성능 향상에 많은 도움이 될 지가 궁금하네요.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
박상훈 댓글 2 좋아요 0 조회수 353

mysql을 설치하는 부분에서 docker로 mysql을 설치하면 ec2가 먹통이 됩니다

해결됨

1시간만에 치킨콤보값으로 배우는 서버 배포

mysql을 설치하는 부분에서 docker로 mysql을 설치하면 ec2가 먹통이 됩니다 제가 뭘 실수했나 해서 두번 해봤는데 두번 다 같은 증상이 있습니다. 특별하게 다르게 한건 없고 윈도우 이며 말씀 주신 방법 환경으로 그대로 했습니다 파일질라 업로드, 도커 이미지 푸시등 다 잘 됐고 mysql 설치에 증상이 생겼습니다. 두번째도 같아서 글 남깁니다. 해결 방법이 있는지 궁금합니다 터미널 접속은 윈도우 파워셀로 했습니다

  • aws
  • docker
  • spring-boot
  • github-actions
  • .jar
불스택개발자 댓글 2 좋아요 0 조회수 208

findByname파트에서 질문이 있습니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 회원 리포지토리 테스트 케이스 작성 8:48영상을 보았는데 Member result = repository.findByName("spring1").get(); 이렇게 코드를 치는걸로 나오는데 이런방식으로 하면 값이 있는지 여부를 파악 못하고 그냥 불안전하게 값을 가져오는 방식이라는걸로 예전에 다른 강의에서 말씀해주셨던 거 같은데 기억이 애매모호해서 질문드립니다. 테스트코드라서 이런방식을 택하신건지와 정석적으로 값을 체크하려면 아래방식으로 코드를 짜는지에 대해서 궁금합니다. Optional<Member> result = repository.findByName("spring1"); Assertions.assertThat(result) .isPresent() // Optional에 값이 있는지 확인 .get() // 값이 존재할 때만 안전하게 꺼냄 .isEqualTo(member1); 혹시 이 코드가 맞다면 Optional<Member> 대신에 Member 클래스를 넣으면 정석인 코드가 되는지 알고 싶습니다.

  • java
  • spring
  • mvc
  • spring-boot
sjhyt0813 댓글 2 좋아요 0 조회수 165

논리적 shard 통해 router 가 특정 shard로 라우팅 해줄때 질문 있습니다.

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

일단 해당 영상 강의에서 article_like 이라는 독립 데이터베이스 기준으로 질문 드리도록 하겠습니다. 여기를 보면 강의 내용에서 각각 테이블 따라 샤드키 기준 컬럼이 다른것을 확인 되었습니다. 예를들어서 'article_like' 테이블 경우 샤드키는 article_id 컬럼 으로 이용하고 당연히 연관관계 테이블인 'article_like_count' 테이블 경우도 샤드키를 article_id 컬럼으로 하고 있습니다. 그런데 outbox 테이블 경우는 'shard_key' 컬럼으로 해주고 있는데요. 여기서 질문은 client (애플리케이션) 에서 일단 곧장 해당 특정 샤드 데이터베이스로 보내지 않고 router 를 이용해서 정해진 샤드키 통해 어디 샤드로 전송할지 역활을 할텐데요. router 역활의 개념을 이해가 되었지만 구체적으로 어떻게 구현되어 있는것인지 잘 몰라서 질문 드립니다. 각각의 테이블 마다 샤드키에 해당되는 컬럼명이 다 다르기 때문에 이때 router 에서는 각각 어떻게 분기해서 알맞게 특정 샤드키에 해당되는 컬럼명을 추출해 특정 샤드 데이터베이스로 보내는지 궁금합니다. 그냥 무식하게 if else 조건문으로 'outbox' 테이블은 'shard_key' 컬럼값을 추출해 분기 처리하고 'article_like' 테이블하고 'article_like_count' 테이블은 'article_id' 컬럼값을 추출해 분기 처리해서 특정 샤드 데이터베이스로 보내는지 궁금 합니다!

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
리나 댓글 3 좋아요 0 조회수 237

Config 클래스에 @AutoConfiguration 의 필요성

미해결

스프링 부트 - 핵심 원리와 활용

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 org.springframework.boot.autoconfigure.AutoConfiguration.imports에 설정 클래스를 등록하면 importSelector가 해당 클래스를 읽어온 후 설정 클래스 및 내부 빈들이 등록되는 것으로 이해했습니다. 그런데 설정 클래스에서 @AutoCongiruation 이라는 어노테이션을 붙여주는 이유가 뭔지 잘 모르겠습니다. 해당 어노테이션을 제외하고 public class MemoryAutoConfig { @Bean public MemoryController memoryController() { return new MemoryController(memoryFinder()); } @Bean public MemoryFinder memoryFinder() { return new MemoryFinder(); } } 이런형태로 build한뒤 다른 프로젝트에서 implementation 을했을 때도 MemoryController와 MemoryFinder가 빈으로 등록되고 동작하는 것을 확인했습니다. imports파일에 등록하는 클래스는 자동으로 빈으로 읽혀지는 것 같은데, 해당 클래스에 @AutoConfiguration 을 붙여주는 이유가 궁금합니다

  • spring
  • spring-boot
  • prometheus
  • grafana
우으어으 댓글 1 좋아요 0 조회수 140

챕터18 retry yml 강의 부분 질문

해결됨

RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기

안녕하세요 챕터18 강의에 대한 질문 두가지가 있습니다.. retry 관련 yml에 설정을 하였을 경우에는 아래 코드에 자동으로 retryTemplate 이 적용되는 것으로 확인하였는데요.. 여기서 스프링이 어떻게 구분을 하고 해당 메서드에 retry를 적용 시키는 건가요? 아니면 큐 이름을 보고 ORDER_COMPLETED_QUEUE에 설정된 .withArgument(데드레터인자) 이 설정값들을 보고 확인 했던 것일까요..? 그리고 @Retryable 해당 어노테이션도 존재하던데 해당 어노테이션은 aop 방식으로 template이 적용되는 것 같은데 이 방법을 사용하여도 똑같이 적용 되는 것일까요.? @RabbitListener(queues = ORDER_COMPLETED_QUEUE) public void consume(String message){ if ("fail".equalsIgnoreCase(message)){ System.out.println("retry count: " + ++retryCount); throw new RuntimeException(); } System.out.println("Received Message: " + message); }

  • java
  • spring-boot
  • jpa
  • msa
  • websocket
  • rabbitmq
  • retry
hoonseung 댓글 2 좋아요 0 조회수 222

SPOCK 의존성 추가 후 Generate Test 옵션 미노출

해결됨

서버개발자 과제전형 완벽가이드 - 1편

안녕하세요 강사님 spock의 의존성 추가 후(build완료) generate test 창에서 target library에 spock이 뜨지 않습니다. 혹시 강사님이 추가로 설치하신 plugin이나 세팅이 있을까요?

  • java
  • spring
  • spring-boot
  • database
차근차근 댓글 3 좋아요 0 조회수 258

git에서 설정파일 읽어들일 때 윈도우의 경우 로컬위치가 name에 붙어 나오는 현상

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

저한테도 있어서 봤는데, 크게 신경 쓸 필요는 없을 것 같습니다. Appdata/local/temp 는 말 그대로 앱의 임시파일 저장하는 곳이고, config 서버 기동 시 git에서 해당 설정파일들을 읽어들여 저 위치에 저장하는 것으로 보입니다. 근데 왜 윈도우만 저렇게 임시파일을 저장하고 그 위치의 주소를 붙여서 출력해주는지는 잘 모르겠네요. 맥OS는 그때그때 git에서 파일을 가져오는 것일까요? 제가 맥이 없어서 그걸 모르겠네요.

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
박민호 댓글 2 좋아요 0 조회수 203

tutorial-step4 질문

해결됨

RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기

안녕하세요 해당 챕터에서 듣던 중 궁금한 점이 있습니다. FanoutExchange, java, spring, vue queue 이렇게 세가지를 바인딩 설정을 하였는데 FanoutExchange는 메세지를 발행하면 바인딩 설정된 모든 큐에 메세지를 전달하는것으로 이해했습니다. 그리고 rabbitTemplate.convertAndSend(fanoutExchange, news(라우팅키) , message) 이렇게 pub에서 발행, sub 에서는 3개의 rabbitListner 들이 있던데 이렇게 되면 3개의 sub 메세지를 다 받아야 되는게 아닌가 싶어서요. 강의를 보면은 java로 보내면 java큐에만 메세지가 들어가서 sub이 받는거 같더라구요 이 부분이 이해가 안갑니다..

  • spring-boot
  • jpa
  • msa
  • websocket
  • rabbitmq
hoonseung 댓글 2 좋아요 0 조회수 169

pub/sub, producer/consumer 차이

해결됨

RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기

안녕하세요 두 개념의 차이점이 궁금한데요 pub/sub 은 특정 topic으로 메세지를 발행하면 해당 topic을 구독중인 여러 구독자들에게 전달될 수 있고 producer/consumer는 메세지를 큐에 발행하면 큐에 저장된 메세지는 한명의 소비자에게만 전달 될 수 있는 건가요? 그러면 rabbitmq는 producer/consumer 이고 websocket은 pub/sub 인가요?

  • java
  • spring-boot
  • jpa
  • msa
  • websocket
  • rabbitmq
  • pub/sub
hoonseung 댓글 2 좋아요 0 조회수 295

DTO 분리

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 좋은 강의 항상 감사드립니다. 강의를 수강 하던 중 간단한 질문이 있어 작성하였습니다! OSIV를 끄기 위해 분리를 하실 때 QueryService를 만드시면서 동시에 기존의 DTO들을 사용하지 않으시고 Query 패키지에 새로 만들어 사용하셨는데 기존 DTO를 사용하지 않는 이유가 궁금합니다! 또한 이렇게 분리해서 새로 만드는 것이 권장되는 사항인지 궁금합니다!

  • java
  • spring
  • spring-boot
  • jpa
shshjkjk 댓글 1 좋아요 0 조회수 145

모듈질문

미해결

RabbitMQ를 이용한 비동기 아키텍처 한방에 해결하기

안녕하세요. 강의 잘 듣고 있습니다 선결지식 확인 질문과, 강의 질문이 있습니다. Q1. 원래는 프로듀서 모듈, 컨슈머 모듈, 클라이언트(API) 이렇게 3개의 모듈로 분리되어서 처리되는게 맞는거죠? 그리고 모듈이라하는거는 하나의 jar로 묶일 수 있는 모듈과, 각각 pid를 갖는 단일 프로세스 모듈 이렇게 있는데 보통은 프로듀서/컨슈머/클라이언트 모듈이라 하면 후자를 지칭하는 것도 맞구요!? Q2. 강의에서 애플리케이션을 jar로 말아서 2개를 띄우신 것은 어떻게 보면 현재 애플리케이션 내부에서 produce/consume/client 3개의 역할을 혼자 다 맡고 있기때문에 의도하신 바는 consumer를 2개 띄웠을 경우 RR 방식으로 동작한다는 것을 뜻하신게 맞을까요? 감사합니다 :)

  • java
  • spring-boot
  • jpa
  • msa
  • websocket
  • rabbitmq
보키 댓글 1 좋아요 0 조회수 126

인기 태그

인프런 TOP Writers

주간 인기글