inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

soft Delete 시 index 설정

해결됨

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

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

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

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

코드 결과값이 좀 다릅니다.

미해결

입문자를 위한 LangChain 기초 — v1.0+ 업데이트

멀티체인 부분에서 chain1의 답변이.. 길게 나옵니다. 한 단어로 'future'라는 답변이 나와야 사실 chain2에 english_word라는 변수에 알맞는 값이 들어가는 걸텐데요. 문장으로 답이 나와서 이상한 상황입니다. 무슨 문제가 있어서 이렇게 invoke 결과값이 달라지는지 제가 뭘잘못했는지 모르겠습니다. 제 잘못이 아니라면 이게 무엇 때문인지, 어떻게 해결할 수 있을지 궁금합니다. (chain2도 답변을 영어로 하는 문제도 있습니다.)

  • python
  • llm
  • langchain
  • openai-api
김재형 댓글 2 좋아요 0 조회수 201

[오타 의심 제보] 강의 6:11 부분

해결됨

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

오타 여부가 확실하지는 않지만, 제가 생각했을 때 오타가 아닌가 싶어서 제보합니다. 영상 위치 : 6분 11초 강의록 위치 : p.24 - 스레드 종료 규칙 오타 의심 내용 : 원본 : 예를 들어, thread.join() 호출 전에 thread의 모든 작업이 완료되어야 하며, ... 수정 : 예를 들어, thread.join() 리턴 전에 thread의 모든 작업이 완료되어야 하며, ... 의견 : thread.join()을 호출하면, thread가 모든 작업을 마친 후에 void로 리턴하고 난 뒤에야 thread.join() 다음에 있던 코드들을 수행하는 것이니까 리턴 이 적절한 단어 아닌가 싶습니다.

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
dev.rudevico 댓글 2 좋아요 0 조회수 139

논리적 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 조회수 235

섹션2 ["환경 vs. 설정 vs. 구성"] 강의 자막 문의

해결됨

실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지

질문은 많으시면 많을수록 좋습니다. 가능한 빠른 답변 드리겠습니다. 원활한 답변을 위해, 자세한 질문 사항 부탁드려요 😋 [33초] 각 단어에 맞는 영어 번역이 잘못된 것 같습니다. 환경 / 구성 / 설정 Environment / Configuration / Setting 로 이해하면 될까요?

  • python
  • 알고리즘
티읕이응 댓글 1 좋아요 0 조회수 158

'섹션 4 영속성 관리 - 내부 동작 방식' 관련 내용 질문

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 처음에 Member 테이블이 비어있는 상태입니다. 아래 코드를 첫번째 실행할때는 insert, insert, update 총 3번의 쿼리가 날아가고, 두번째 실행할때는 insert, insert 총 2번의 쿼리가 날아가게 됩니다. 왜 첫 번째 실행시에는 update 쿼리가 날아가지만, 동일한 코드를 두 번째 실행할때는 update 쿼리가 날아가지 않는지 궁금합니다. 둘다 persist시에 영속성 컨텍스트의 1차캐시에 PK가 150L인 엔티티가 저장되고, find시에 DB가 아닌 해당 1차 캐시에서 가져오는 것이라고 이해했습니다. 그렇다면 두 코드 모두 변경 감지(Dirty Checking)에 의해 update가 날아가야하는 것 아닌가요? public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try { // 트랜잭션을 지원하는 쓰기 지연 Member member1 = new Member(150L, "A"); Member member2 = new Member(160L, "B"); em.persist(member1); em.persist(member2); System.out.println("================"); // 변경 감지 Member member = em.find(Member.class, 150L); member.setName("ZZZ"); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); } emf.close(); } }

  • java
  • jpa
박형규 댓글 2 좋아요 0 조회수 102

묵시적 조인말고 명시적 조인을 쓰라고 하셨는데 그러면 외래키 연관관계 매핑을 할 필요가 없지 않나요?

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 묵시적 조인말고 명시적 조인을 쓰라고 하셨는데 그러면 외래키 연관관계 매핑을 할 필요가 없지 않나요? 외래키를 @ManytoOne mappyby 이런걸 쓸 필요가 없지 않나요? 처음에 배울때 member.getTeam() 이렇게 member에서 team을 꺼낼때는 사용하는 용도로 아는데 이때도 조인이 이루어지는걸로 아는데 이것도 묵시적 조인이 아닌가요? getTeam() 이런걸 쓰지 말라는건가요? 아니면 jpql을 사용할때만 m.team 이런걸 쓰지말라는건지 에매하네요

  • java
  • jpa
캐내기 댓글 1 좋아요 0 조회수 132

섹션 3의 6번 문제 - 뒤집은 소수

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

강사님 영상 보고 입력 받는 방식만 다르게 하고, 나머지 로직은 똑같이 처리했는데 자꾸 오답이라고 뜹니다. 결과 창에 들어가서 리턴값과 정답값을 비교해보아도 다른 점을 발견하지 못했습니다. 도와주세요ㅜㅡㅜㅡㅜ package 인프런.section3; import java.io .BufferedReader; import java.io .IOException; import java.io .InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class section3_6 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader( System.in )); int n = Integer.parseInt(br.readLine()); StringTokenizer st = new StringTokenizer(br.readLine()); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = Integer.parseInt(st.nextToken()); } System.out.println(); for(int x : solution_2(n, arr)){ System.out.print(x + " "); } } public static ArrayList<Integer> solution_2(int n, int[] arr){ ArrayList<Integer> answer = new ArrayList<>(); for (int i = 0; i < n; i++) { int tmp = arr[i]; int res = 0; while(tmp > 0){ int t = tmp % 10; res = res * 10 + t; tmp /= 10; } if (isPrime(res)) answer.add(res); } return answer; } public static boolean isPrime(int n){ if (n == 1) return false; for (int i = 2; i < n; i++) { if (n % i == 0) return false; } return true; } }

  • java
  • 코딩-테스트
댓글 2 좋아요 0 조회수 126

페이지가 넘어갈 때 url 변하지 않는 경우

미해결

[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

안녕하세요 제공해주신 깃허브 홈페이지 url의 경우는 페이지가 넘어갈 때마다 'url/page{page_num}' 형식으로 변하게 되는데 제가 살펴본 네이버 카페의 경우(링크 아래 첨부)는 페이지 수를 넘겨도 페이지 수가 변하지 않았습니다. 네이버 카페 url: https://cafe.naver.com/cantsb 혹시 이러한 경우 페이지 수에 따른 크롤링을 어떻게 하는지 궁금합니다.

  • python
  • 웹-크롤링
fwm8 댓글 1 좋아요 0 조회수 290

챕터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 조회수 219

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

해결됨

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

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

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

YOLO 학습

미해결

[개정판] 딥러닝 컴퓨터 비전 완벽 가이드

안녕하세요 강사님 최근에 YOLO를 이용해 이것 저것 연습을 하는데 궁금한 점이 있습니다. 데이터셋의 크기가 너무 커서(2TB) 일단 필요한 부분만 선택해서 학습을 했습니다. 그런데 이렇게 하면 새로운 데이터셋을 추가해서 학습을 시키려면 <기존 1TB + 새로운 데이터셋> 이렇게 합친 데이터셋을 다시 학습을 해야 하나요...? 예를 들어 a, b, c, d를 탐지할 수 있게 학습을 하고 추가적으로 ㄱ, ㄴ, ㄷ, ㄹ도 탐지할 수 있게 데이터를 추가해서 총 a, b, c, d, ㄱ, ㄴ, ㄷ, ㄹ을 모두 탐지할 수 있도록... 마지막 출력 계층만 새롭게 학습을 하는 방법은 기존 데이터셋에 대한 성능이 떨어질 수 있어 좋은 선택은 아닌가요...?

  • python
  • 머신러닝
  • 딥러닝
  • keras
  • tensorflow
  • 컴퓨터-비전
장태훈 댓글 2 좋아요 0 조회수 227

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

미해결

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

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

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

persist 호출 시점에 영속성 컨테스트 객체 상태

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

https://www.inflearn.com/community/questions/336059/%EC%96%91%EB%B0%A9%ED%96%A5-%EC%97%B0%EA%B4%80%EA%B4%80%EA%B3%84-%EC%A3%BC%EC%9D%98%EC%A0%90%EC%97%90-%EA%B4%80%ED%95%9C-%EC%A7%88%EB%AC%B8 안녕하세요. 위 질문을 보고 궁금한 점이 생겨서 질문드립니다. 강의에서 진행하는 프로젝트에서 기본키 생성전략을 IDENTITY 라고 하면 em.persist()를 호출하는 시점에 insert 쿼리를 날려서 db에 저장을 하고, 키를 조회해서 영속성 컨텍스트의 키로 사용한다고 이해하고 있습니다. 이 때 영속성 컨텍스트의 키는 실제 DB의 키를 사용하고 영속성 컨텍스트의 엔티티는 DB의 데이터가 아닌 순수 객체가 들어가는 것이 맞나요?

  • java
  • jpa
lmkn5342 댓글 1 좋아요 0 조회수 92

[코드 공유] yield() 유무에 따른 체크 로직 수행 횟수를 확인할 수 있는 코드 공유합니다.

해결됨

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

[비교 결론] (맥북 프로 2018형 기준) yield() 사용 X : 체크 로직 319_216_379 회 수행 yield() 사용 O : 체크 로직 000_730_447 회 수행 [코드 사용법] 체크로직 while loop에 있는 Thread.yield(); 를 주석처리 on/off 하면서 체크하시면 됩니다. 프로그램 수행 -> a, b, c, d, e, q를 순서대로 입력 위 두 동작을 주석처리 on/off한 후에 실행하는 두 경우 모두에서 비슷한 속도로 해 주시면 비교가 더 명확합니다. [코드 설명] MyPrinterV4 코드를 기준으로 하여 다음과 같이 체크 로직의 수행 횟수를 카운트할 수 있도록 개선했습니다. 러프하게 작성한 코드라서 세부적인 부분은 무시바랍니다. // 체크 로직의 수행 횟수를 기록하는 변수 private static int count = 0; while (!Thread.interrupted()) { if (jobQueue.isEmpty()) { count++; // 체크 로직 수행시 1회 추가 기록 Thread.yield(); // 여기를 On/Off하며 체크 continue; } } // 메인 함수의 마지막 부분에 추가한 코드 // q를 입력하여 프로그램을 종료했을 때까지 수행된 체크 로직의 횟수를 출력 System.out.println(count); [전체 코드] package thread.control.printer; import java.util.Queue; import java.util.Scanner; import java.util.concurrent.ConcurrentLinkedQueue; import static util.MyLogger.log; public class MyPrinterV4 { // 추가된 코드 private static int count = 0; public static void main(String[] args) { Printer printer = new Printer(); Thread printerThread = new Thread(printer, "printer"); printerThread.start(); Scanner userInput = new Scanner(System.in); while (true) { log("프린터할 문서를 입력하세요. 종료 (q): "); String input = userInput.nextLine(); if (input.equals("q")) { printerThread.interrupt(); break; } printer.addJob(input); } // 추가된 코드 System.out.println(count); } static class Printer implements Runnable { Queue<String> jobQueue = new ConcurrentLinkedQueue<>(); @Override public void run() { while (!Thread.interrupted()) { if (jobQueue.isEmpty()) { // 코드 추가된 부분(시작) count++; Thread.yield(); // 주석 on/off 하며 비교 // 코드 추가된 부분(종료) continue; } try { String job = jobQueue.poll(); log("출력 시작: " + job + ", 대기 문서: " + jobQueue); Thread.sleep(3000); log("출력 완료: " + job); } catch (InterruptedException e) { log("인터럽트 발생. message=" + e.getMessage()); break; } } log("프린터 종료"); } public void addJob(String input) { jobQueue.offer(input); } } }

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
dev.rudevico 댓글 1 좋아요 0 조회수 138

setOrder();를 하신 이유가 궁금합니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요. 강의 내용 16분30초쯤에 Order order = new Order(); order.addOrderItem(new OrderItem()); 위 코드를 아래와같이 Order order = new Order(); em.persist(order); OrderItem orderItem = new OrderItem(); orderItem.setOrder(order); 1. 이렇게 수정하셨는데, 이렇게 하시는 이유가 무엇인가요..? 양방향연관관계라서 addOrderItem()을 통해 양쪽에 값을 설정해줬었는데 왜 아래와 같이 변경하신건지 궁금해서 질문드립니다. 2. Order와 OrderItem간의 관계를 양방향연관관계로 하지말고, OrderItem -> Order 단방향연관관계로 설계해서 OrderItem에만 setOrder()로 설정해주신것일까요?? 3. 만약 2번의 내용이 맞다면, 그렇게 하신 이유도 궁금합니다... 감사합니다

  • java
  • jpa
오리쉐리 댓글 4 좋아요 0 조회수 200

새로운 dict를 생성한 이유에 대해서 궁금합니다.

미해결

프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)

d = {'USA': 36, 'Germany': 17,'France':32, 'Australia': 77, 'South Africa': 99, 'India': 108, 'South Korea': 200, 'South Japan':300} print(d.get("France")) t = input("You won't search of contury?").title() print(t,"<<입력값") def add_space(a): if 'South' in a: print(a.find('South')) i = a.find('South') # print(a[i:i+5]) a = a[i:i+5]+' '+a[i+5:len(a)].title() return a # if 'East' in a: # --- # if 'Wset' in a: # --- # if 'North' in a: # --- t = add_space(t) if t == "Usa": t = "USA" else: print(a) country = d.get(t) if not country: print('No results were found for your search.') else: print(country) 안녕하세요 강의 수강 중 궁금한 점이 있어서 질문드립니다. 강의 7:33에서 key가 소문자인 형태로 새로운 dict을 생성하신 이유가 궁금합니다. 문제 해결을 위한 생성 이외에 원본 변수인 'd'의 수정을 방지하기 위함과 지금 예제는 눈으로 모든 값을 확인할 수 있지만 많은 데이터를 가진 시퀀스의 경우에는 어떠한 예외가 발생할지 모르니 그에 대한 대비 제가 생각해 본 이유가 맞는지 또한 다른 이유가 있으신지 궁금합니다. 또한 제 코드에서 'add_space'함수를 매번 실행하는 게 비효율적이라는 생각이 들지만 필요하다고도 생각돼서 선생님의 의견을 여쭤봅니다.

  • python
kingryan9996 댓글 2 좋아요 0 조회수 202

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 조회수 167

인기 태그

인프런 TOP Writers

주간 인기글