inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

레디스의 동적 서버 리스트와 샤딩 범위 중복 문제 질문

해결됨

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

안녕하세요, 강의 잘 듣고 있습니다. ^^ 분산 시스템에서 균등 샤딩 부분을 듣다가 궁금한 점이 생겨서 질문드립니다. 각 서버는 자신의 @Scheduled에 의해 레디스 서버로 조회하여 자신의 인덱스를 찾은 후 이를 기반으로 각자 서버 로컬에서 샤딩 범위를 계산하는 것으로 이해했는데요. 여기서 궁금한 점은 각 서버마다 @Scheduled가 동작하는 시점도 다를테고, 레디스의 저장된 서버 리스트가 동적으로 변하기도 하는데, 이러한 이유로 서로 다른 서버가 부분적으로 겹치는 샤딩 범위를 각자 계산하여 카프카로 중복 전송하는 시나리오가 발생하지는 않는 것인가요? ex) A의 @Scheduled 동작 시점에서는 서버가 3개 뿐이었지만 B의 @ Scheduled 동작 시점에는 서버가 5개로 늘어난 경우 서버 A가 계산한 자신의 샤딩 범위 0~20 서버 B가 계산한 자신의 샤딩 범위 13 ~ 27 답변 주시면 감사하겠습니다. 😊

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
알알이 댓글 2 좋아요 1 조회수 285

좋아요 비관적 락 적용 시 데드락 발생 관련 질문입니다..

해결됨

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

spring boot: 3.3.2 mysql: 8.0.38 강사님과 동일한 버전 사용하고 있습니다. @Test void likePerformanceTest() throws InterruptedException { ExecutorService executorService = Executors.newFixedThreadPool(100); likePerformanceTest(executorService, 1111L, "pessimistic-lock-1"); likePerformanceTest(executorService, 2222L, "pessimistic-lock-2"); // likePerformanceTest(executorService, 3333L, "optimistic-lock"); } private void likePerformanceTest(ExecutorService executorService, Long articleId, String lockType) throws InterruptedException { CountDownLatch latch = new CountDownLatch(3000); System.out.println(lockType + " start"); long start = System.currentTimeMillis(); for (int i = 0; i < 3000; i++) { long userId = i + 2; executorService.submit(() -> { like(articleId, userId, lockType); latch.countDown(); }); } latch.await(); long end = System.currentTimeMillis(); System.out.println("lockType = " + lockType + ", time = " + (end - start) + "ms"); System.out.println(lockType + " end"); Long count = restClient.get() .uri("/v1/article-likes/articles/{articleId}/count", articleId) .retrieve() .body(Long.class); System.out.println("count = " + count); } 위 테스트를 실행 시키면 pessimistic-lock-1 start lockType = pessimistic-lock-1, time = 5353ms pessimistic-lock-1 end count = 2991 pessimistic-lock-2 start lockType = pessimistic-lock-2, time = 6667ms pessimistic-lock-2 end count = 2991 count 가 3001이 안나오길래 서버 로그를 확인했는데, com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction 이렇게 데드락이 발생됐다는 로그가 출력됐더라구요.. 강사님과 똑같은 코드로 실행한거 같은데, 왜 데드락이 발생한걸까요?? 의심되는 부분은 @Transactional public void likePessimisticLock1(Long articleId, Long userId) { articleLikeRepository.save( ArticleLike.create(snowflake.nextId(), articleId, userId) ); int result = articleLikeCountRepository.increase(articleId); if (result == 0) { articleLikeCountRepository.save( ArticleLikeCount.init(articleId, 1L) ); } } 여러 스레드가 동시에 result == 0 조건에 진입해서 동일한 article_id 를 insert 하려고 하다가 충돌되는 과정에서 데드락이 발생된 것 같은데... 정확한 원인이 뭘까요? 제가 잘못 친게 있어서 그런걸까요..? PessimisticLock1, PessimisticLock2 둘 다 데드 락이 발생한 원인이 궁금합니다! 게시물 생성 시점에 미리 0으로 count를 생성 해놓으면 괜찮을 것 같은데, 같은 코드로 실행했는대도 결과가 달라 질문남깁니다..

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
chobo 댓글 2 좋아요 1 조회수 359

CV error

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

CV를 사용하였는데 하기와 같은 오류가 등장했습니다 : --> 98 raise InvalidParameterError( 99 f"The {param_name!r} parameter of {caller_name} must be" 100 f" {constraints_str}. Got {param_val!r} instead." InvalidParameterError: The 'scoring' parameter of cross_val_score must be a str among {'f1', 'jaccard_micro', 'positive_likelihood_ratio', 'adjusted_rand_score', 'jaccard_weighted', 'homogeneity_score', 'average_precision', 'precision_weighted', 'rand_score', 'roc_auc_ovr', 'roc_auc_ovr_weighted', 'precision', 'explained_variance', 'jaccard_macro', 'recall_macro', 'f1_macro', 'normalized_mutual_info_score', 'precision_samples', 'neg_root_mean_squared_log_error', 'r2', 'neg_negative_likelihood_ratio', 'precision_micro', 'neg_max_error', 'mutual_info_score', 'precision_macro', 'f1_micro', 'v_measure_score', 'completeness_score', 'neg_mean_squared_error', 'accuracy', 'neg_brier_score', 'recall_samples', 'jaccard_samples', 'neg_root_mean_squared_error', 'neg_mean_absolute_percentage_error', 'jaccard', 'f1_samples', 'matthews_corrcoef', 'neg_median_absolute_error', 'neg_mean_gamma_deviance', 'recall_micro', 'neg_mean_absolute_error', 'neg_log_loss', 'roc_auc_ovo_weighted', 'd2_absolute_error_score', 'roc_auc', 'adjusted_mutual_info_score', 'recall', 'recall_weighted', 'balanced_accuracy', 'f1_weighted', 'top_k_accuracy', 'roc_auc_ovo', 'neg_mean_squared_log_error', 'fowlkes_mallows_score', 'neg_mean_poisson_deviance'}, a callable or None. Got 'f1-macro' instead. 제가 작성한 코드도 함께 공유 드립니다 : import pandas as pd train=pd.read_csv('train.csv') test=pd.read_csv('test.csv') train=train.drop('ID', axis=1) test_id=test.pop('ID') print(train.shape, test.shape) print(train.head()) print(test.head()) print(train.info()) print(test.info()) print(train.isnull().sum()) print(test.isnull().sum()) y=train.pop('Segmentation') print(y.info(), y.shape) y=y-1 int_cols=train.select_dtypes(exclude='object').columns train[int_cols].corr() cat_cols=train.select_dtypes(include='object').columns print(train[cat_cols].describe(include='object')) print(test[cat_cols].describe(include='object')) for i in cat_cols: train[i]=train[i].astype('object') test[i]=test[i].astype('object') for i in cat_cols: print(train[i].value_counts()) print(test[i].value_counts()) from sklearn.preprocessing import RobustScaler scaler=RobustScaler() for i in int_cols : train[i]=scaler.fit_transform(train[[i]]) test[i]=scaler.transform(test[[i]]) from sklearn.preprocessing import LabelEncoder le=LabelEncoder() for i in cat_cols: train[i]=le.fit_transform(train[i]) test[i]=le.transform(test[i]) print(train.head()) print(test.head()) from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val=train_test_split(train, y, test_size=0.2, random_state=2025) print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) from sklearn.ensemble import RandomForestClassifier rf=RandomForestClassifier(n_estimators=50, max_depth=7, random_state=2025) rf.fit(X_tr, y_tr) y_pred_rf=rf.predict(X_val) from lightgbm import LGBMClassifier lgbm=LGBMClassifier(random_state=2025) lgbm.fit(X_tr, y_tr) y_pred_lgbm=lgbm.predict(X_val) from xgboost import XGBClassifier xgb=XGBClassifier(random_state=2025) xgb.fit(X_tr, y_tr) y_pred_xgb=xgb.predict(X_val) y_pred_xgb=y_pred_xgb+1 from sklearn.metrics import f1_score print(f1_score(y_val, y_pred_rf, average='macro')) print(f1_score(y_val, y_pred_lgbm, average='macro')) print(f1_score(y_val, y_pred_xgb, average='macro')) from sklearn.model_selection import cross_val_score scores=cross_val_score(rf, train, target, scoring='f1-macro', cv=5) print(scores) print(scores.mean())

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
yaejin1016 댓글 2 좋아요 0 조회수 94

XGBClassifier 사용 에러

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

XGBClassifier 를 사용해서 target을 분류하려고 하는데, 아래와 같은 에러가 나타납니다 : ValueError : Invalid classes inferred from unique values of y . Expected: [0 1 2 3], got [1 2 3 4] LabelEncoder를 사용해서 processing 도 다 했고, LGBMClassifier랑 RandomForestClassifier는 다 잘 돌아가는데 XGBClassifier만 저런 오류가 나타나네요;;; 참고를 위해 지금까지 작성한 코드 하기로 공유 드립니다 : import pandas as pd train=pd.read_csv('train.csv') test=pd.read_csv('test.csv') train=train.drop('ID', axis=1) test_id=test.pop('ID') print(train.shape, test.shape) print(train.head()) print(test.head()) print(train.info()) print(test.info()) print(train.isnull().sum()) print(test.isnull().sum()) y=train.pop('Segmentation') y=y.astype('object') y=y.astype('category') print(y.info(), y.shape) int_cols=train.select_dtypes(exclude='object').columns train[int_cols].corr() cat_cols=train.select_dtypes(include='object').columns print(train[cat_cols].describe(include='object')) print(test[cat_cols].describe(include='object')) for i in cat_cols: train[i]=train[i].astype('object') test[i]=test[i].astype('object') for i in cat_cols: print(train[i].value_counts()) print(test[i].value_counts()) from sklearn.preprocessing import RobustScaler scaler=RobustScaler() for i in int_cols : train[i]=scaler.fit_transform(train[[i]]) test[i]=scaler.transform(test[[i]]) from sklearn.preprocessing import LabelEncoder le=LabelEncoder() for i in cat_cols: train[i]=le.fit_transform(train[i]) test[i]=le.transform(test[i]) print(train.head()) print(test.head()) from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val=train_test_split(train, y, test_size=0.2, random_state=2025) print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) y_val=y_val.astype('category') y_tr=y_tr.astype('category') from sklearn.ensemble import RandomForestClassifier rf=RandomForestClassifier(n_estimators=100, max_depth=5, random_state=2025) rf.fit(X_tr, y_tr) y_pred_rf=rf.predict(X_val) from lightgbm import LGBMClassifier lgbm=LGBMClassifier() lgbm.fit(X_tr, y_tr) y_pred_lgbm=lgbm.predict(X_val) from sklearn.metrics import f1_score print(f1_score(y_val, y_pred_rf, average='weighted')) print(f1_score(y_val, y_pred_lgbm, average='weighted')) from xgboost import XGBClassifier xgb=XGBClassifier() xgb.fit(X_tr, y_tr) y_pred_xgb=xgb.predict(X_val)

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
yaejin1016 댓글 3 좋아요 0 조회수 200

메인 메모리 질문

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] volatile를 통해 메인 메모리에서 값을 바로 확인 하는건데 그러면 메모리는 어떻게 값이 변경 되는 것을 알 수 있는 건가요? 메인 메모리에서 값이 변경이 안되면 volatile을 사용해도 변경 된 걸 알 수 없는거 아닌가요? 제가 너무 깊게 들어간걸까요...ㅜㅜ... 운영체제?를 공부해야 되는 부분일까요??,,

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
딩띵 댓글 1 좋아요 0 조회수 150

MemberRepository 질문 입니다

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] @Autowired public MemberService (MemberRepository memberRepository){ this.memberRepository = memberRepository; } MemoryMemberRepository를 사용 할 수 있는 이유가 해당 구현체를 @Repository로 빈을 등록했기 때문에 @Autowired를 통해 MemberRepository 타입으로 주입받을 수 있는 게 맞을까요?

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

윈도우 JAVA_HOME 오류

미해결

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

G:\내 드라이브\인프런 - 스프링 입문 - 김영한\hello-spring>gradlew.bat 이렇게 실행했는데 아래와 같은 에러가 뜨는데 어떻게 해야 하나요? ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation.

  • java
  • spring
  • mvc
  • spring-boot
댓글 1 좋아요 0 조회수 460

변수 앞 _ 하나를 사용할때

미해결

모두를 위한 파이썬 : 필수 문법 배우기 Feat. 오픈소스 패키지 배포 (Inflearn Original)

_ 를 변수에 사용하는데 있어 질문이 있습니다. 'Property(1) - Underscore' 강의에서 _가 하나를 사용할때는 PROTECTED 변수로, 상속받는 하위 클래스에 이용한다고 하셨습니다. 강사님의 다른 Python 강의에서 (정확히 어느 강의 인지는 기억이 안나네요) 가 붙은 변수를 클래스 변수로 사용하셨거든요. 혹시 두 의미가 상충되는것일까요 아니면 를 하나 사용할때는 두가지 경우 모두 사용가능할까요?

  • python
가보자고 댓글 2 좋아요 0 조회수 169

33분 if문 질문 있습니다!

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

코드에서 i=5일 때, j=7일 때 if 조건문을 만족 시키는 것은 이해했습니다. i++, j++로 숫자가 동일하게 증가하는데, 그러면 i는 j보다 먼저 if문을 만족 시키므로 i++이 실행되지 않고, j만 실행되는 것으로 이해하면 될까요?

  • python
  • java
  • c
  • 정보처리기사
isu 댓글 2 좋아요 0 조회수 143

쿠팡 BeautifullSoup 헤더넣어도 막히네요

미해결

실습으로 끝장내는 웹 크롤링과 웹 페이지 자동화 & 실전 활용

headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36', "accept-language": "ko,en-US;q=0.9,en;q=0.8", "accept-encoding" : "gzip, deflate, br, zstd", "cache-control" : "max-age=0" } 위와 같이 헤더를 넣어도.... 타임아웃으로 나오지 않더라구요 이제는 헤더만으로는 못할 거 같은데 셀레니움 외 방법이 없을까요 ㅠㅠ

  • python
  • 웹-크롤링
  • selenium
  • beautifulsoup
sakuraibbo 댓글 1 좋아요 0 조회수 467

특정 문자 뒤집기

해결됨

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

c@fa$ 가 입력 되었을 때, 제 생각에는 결과가 그대로 나와야 하지 않나 싶은데, (짝이 되는 알파벳이 없음) a@fc$이 나오는 이유가 궁금합니다.

  • java
  • 코딩-테스트
김철준 댓글 2 좋아요 1 조회수 237

수강기간 무료!?

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

ㅎㄷㅆ이랑 여기랑 일주일 이상 고민하다가 여기를 고르게 되었습니다 혹시 수강기간 무료라고 되있는데 만약 떨어지면 강의 새로 업데이트 된 것으로 볼수 있는건가요? 우선 1회만에 붙겠다는 생각으로 열심히 공부해보겠습니다!

  • python
  • java
  • c
  • 정보처리기사
박현서 댓글 1 좋아요 0 조회수 269

서비스단에 리포지토리를 주입받는 부분

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] Order에서 처럼 서비스 단에 리포지토리만을 주입받아서 사용하는게 맞는 것인지 아니면 다른 서비스를 주입받아 사용하는게 좋은 로직인지 궁금합니다. 예를들어 findById를 리포지토리로 찾을 수도 있지만 memberService.findOne으로 가져올수도 있는 경우 어떤 것을 주입받아 사용하는것이 맞는 방식인지 질문드려요

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
염경호 댓글 1 좋아요 0 조회수 89

Mockito 경고

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 내용] 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\jaejin\.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 테스트는 통과를 했는데 위와같은 경고문이 나오네요 어떤 의미인지 잘 모르겠습니다. 신경 쓰지않고 계속 진행해도 되는건가요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
배재진 댓글 1 좋아요 0 조회수 160

order의 cancel 메서드 질문

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] public void cancel(){ if(delivery.getDeliveryStatus() == DeliveryStatus.COMP){ throw new RuntimeException("이미 배송된 상품입니다"); } this.statusCancel(); for (OrderItem orderItem : orderItems) { orderItem.cancel(); } } 이렇게 메서드가 있는데 여기에서 orderItem 컬랙션에 있는 값들을 cancel로직을 통해 삭제하게 될 경우 db에 반영이 정상적으로 되나요? 즉 리포지토리에서 가져온 상태가 아닌 그냥 도메인 단에서 처리해줘도 영속성 컨텍스트에 의해 관리되고 더티체킹이 적용되어 cancel 로직에 의해 업데이트 되는건가요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
댓글 1 좋아요 0 조회수 103

pydantic

해결됨

FastAPI 완벽 가이드

안녕하세요. 강의에서 사용한 pydantic은 V2인게 맞는 걸까요??

  • python
  • sql
  • sqlalchemy
  • FastAPI
Full Stack 개발자 댓글 2 좋아요 0 조회수 145

[오타 제보] pdf 13장 정리 부분

해결됨

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

[오타 제보] 대상 강의록 : 13. 스레드 풀과 Executor 프레임워크2.pdf 위치 : p.49 대상 문단 : 밑에서 3번째 "그래서 일반적인 상황이라면 ~ ..." 수정 전(1) : 한번에 처리할 수 있는 수를 제안하고 안정적으로 처리하고 싶다면 ... 수정 후(1) : 한번에 처리할 수 있는 수를 제한하고 안정적으로 처리하고 싶다면 ... -- 수정 전(2) : 그러다가 일반적인 상황을 벋어날 정도로 ~ ... 수정 후(2) : 그러다가 일반적인 상황을 벗어날 정도로 ~ ... 이번 강의도 잘 들었습니다. 양질의 강의 제공에 감사드립니다! 저랑 너무 잘 맞는 강의스타일 입니다.

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

레디스와 관련해서 궁금한 점이 있습니다.

해결됨

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

안녕하세요 쿠케님 좋은 강의 감사합니다. 레디스와 관련되어 궁금한 점이 있어 여쭙고자 합니다. 현재 사내에서는 레디스를 사용 중이 아닌데 최근 JWT 기반의 인증 인가를 주니어들끼리 도입해서 이에 따른 토큰 관리 저장소로 레디스 도입을 제안 했는데요. 레디스를 이미 사용하는 환경에서 레디스를 직접 EC2에 설치해서 사용하는지 아니면 엘라스틱 캐시와 같은 클라우드 서비스에서 제공하는 것을 사용하는지 궁금합니다. 레디스와 관련되어서 몇 가지 기술 토론을 본 적이 있는데 레디스를 굳이 클러스터링 해야하나? 레디스가 단순한 이론서에서 설명하는 것 만큼 레디스 한 대가 금방 뻗을 만큼 취약하지 않다는 입장도 보았는데... 레디스 도입에 따른 클러스터링은 필수적인가요?

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

인기 태그

인프런 TOP Writers

주간 인기글