inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

스프링 부트에 Redis 적용하기 질문

미해결

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

안녕하세요 항상 강의 잘 수강하고 있습니다 ! 강의를 수강하다 질문이 생겨 여쭤보게 되었습니다. 강의 진행 시에는 Service 계층에서 Redis 설정을 적용시켰는데, Redis 설정은 Service 계층에서 적용하는 것이 일반적일까요 ? Repository나 Controller 계층에서도 걸어줘도 차이가 있는지 궁금해서 여쭤봅니다 !

  • redis
  • nosql
  • query-tuning
  • performance-tuning
wonderwall09in 댓글 2 좋아요 0 조회수 157

[수업 자료 질문] Cache Aside의 특징 문의

해결됨

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 6-4. 캐싱의 개념 3 2. 어려움을 겪는 부분 어떤 개념이 헷갈리시나요? 수업 자료를 보면 "Cache Aside는 구현이 간단하고 캐시 효율이 뛰어납니다. 하지만 데이터가 변경되었을 때 실시간으로 반영되지 않아 데이터 불일치 가능성이 있습니다."고 하는데, 왜 Cache Aside가 구현이 간단하고 캐시 효율이 뛰어난지 잘 이해가 가지 않습니다. Cache Aside에서는 애플리케이션 단에서 컨트롤을 다 해야 해서 구현이 길어지지 않나요? Cache Aside가 다른 전략과 비교했을 때 캐시 효율이 뛰어난 이유가 있을까요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 데이터 변경시 데이터 불일치에 대한 설명이 있는 것을 보면 혹시 해당 부분 설명은 Cache Aside보다는 Write Around Aside 에 대한 설명에 더 가깝지 않을까하는 생각도 해보았습니다.

  • java
  • spring
  • mysql
  • redis
  • 이력서
  • 카카오공채-채용
happyrichman 댓글 2 좋아요 0 조회수 167

[수업자료 문의] RedisTemplate으로 SETNX 시 리턴값 문의

해결됨

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 6- 12 여기까지 이해하신 내용은 무엇인가요? RedisTemplate으로 SETNX를 할 수 있고, 이 때의 리턴값은 boolean이다. 2. 어려움을 겪는 부분 어떤 개념이 헷갈리시나요? 수업 자료에는 RedisTemplate을 통해 SETNX 요청시 키 존재 유무와 상관없이 모두 True를 리턴한다고 설명 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 혹시 키가 이미 존재하면 RedisTemplate에서는 False 를 리턴하는 것이 아닐까요?

  • java
  • spring
  • mysql
  • redis
  • 이력서
  • 카카오공채-채용
happyrichman 댓글 2 좋아요 0 조회수 172

ApplyService와 Consumer서비스의 db공유?

미해결

실습으로 배우는 선착순 이벤트 시스템

안녕하세요 강의 잘 듣고 있습니다. ApplyService와 Consumer서비스의 db관련 질문을 하려 합니다. 9:30분쯤부터 ApplyService와 컨슈머서비스를 분리해서 테스트를 진행하는데 AppliServiceTest를 보면 자신의 CouponRepository에서 count개수가 100개인지 체크하는것 같습니다. 저는 쿠폰생성 및 저장 로직을 전부 컨슈머서비스로 옮겨서 여기서 쿠폰테이블을 관리한다고 생각했는데 어떻게 ApplyService가 자신이 이전에 사용하던 CouponRepository에서 count 체크가 가능한건지 궁금합니다. 혹시 두 서비스가 하나의 db를 공유하는건가요?

  • java
  • docker
  • spring-boot
  • kafka
  • redis
차성호 댓글 2 좋아요 0 조회수 125

article_like_count api test

해결됨

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

동시성 이슈가 안터질 수도 있나요?

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

이벤트 페이로드 객체의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다!.

해결됨

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

안녕하세요, 강사님 덕분에 많은 인사이트를 얻으며 성장중인 수강생입니다ㅎㅎ 다름이 아니라 이벤트 페이로드 타입의 생성 방식이 팩토리 메서드 패턴이 아닌 빌더 패턴인 이유가 궁금합니다! 빌더 패턴의 장점은 생성자 오버로딩이 많을 때, 간편하게 사용할 수 있다는 장점이 있지만 필수인 필드에 null 이 들어갈 수 있다는 단점이 있다고 생각합니다. 그래서, 저는 빌더 패턴을 해당 객체의 필드 중 null 이 들어갈 수 있는 필드가 많을 때 사용하는 걸 선호하다 보니, 이벤트 페이로드 타입을 생성 할 때 일부 필드에 null 이 들어가는 걸까? 란 궁금증으로 질문이 생기게 되었습니다. 빌더 패턴에 대한 강사님의 의견이 궁금하며 이벤트에 기존에 사용하신 팩토리 메서드 대신 빌더 패턴을 사용하신 계기가 궁금합니다! 감사합니다 :)

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
종혁 댓글 2 좋아요 0 조회수 150

[33. 좋아요 수 구현] 에서 테스트 하는 화면 동시성 문제

해결됨

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

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. [33. 좋아요 수 구현] 에서 테스트 하는 화면에서요. 해당 방법대로 실행을 하면 동시성 문제가 발생합니다. Record has changed since last read in table 'article_like_count' 저는 MariaDB를 사용하고 있는데요. MySQL도 마찬가지로 기본 잠금 수준이 Repeatable Read 라고 알고 있습니다. 해당 기본 수준으로 실행하면 동시성 문제로 영상과 다른 결과를 보이게 됩니다. 따라서 잠금 수준을 Read Commited 나 Read Uncommited 로 변경하면 제대로 실행이 됩니다. 이렇게 하는 것이 정답인지 아니면 다른 원인이 있는건지 알려주세요.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
주주파파 댓글 2 좋아요 0 조회수 143

findByPath에서 articleId로도 검색을 해야 할 것 같아요.

해결됨

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

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. @Query("select c from CommentV2 c where c.commentPath.path = :path") Optional<CommentV2> findByPath(@Param("path") String path); 위와 같은 방식으로 조회를 하면 인덱스 서치가 되지 않는 것 아닌가요? 아래와 같은 방법으로 해야 할 것 같은데.. @Query("select c from CommentV2 c where c.articleId = :articleId and c.commentPath.path = :path") Optional<CommentV2> findByPath( @Param("articleId") Long articleId, @Param("path") String path); 답변 부탁 드립니다.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
주주파파 댓글 3 좋아요 0 조회수 147

jpa ddl-auto none을 하는 이유와 join 방법

해결됨

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

Q. SQL 로 미리 테이블 작성하거나 인덱스 설정을 SQL 로 직접하는데 이유가 궁금합니다 인덱스 같은경우 jpa 에서 쓸수있는 옵션이 제한적이라 따로 SQL 로 관리한다고 듣긴했는데 테이블도 실제로 SQL 에서 하는지 궁금하고, SQL 로만 테이블 생성 인덱스 관리를 할경우 현업에서는 어떤 db 마이그레이션 라이브러리를 주로 사용하는지도 궁금합니다. Q. 참조관계를 DB 에서 걸지않고 논리적으로만 걸었을때 참조테이블에대한 조인은 어떤식으로 하는지 궁금합니다. MSA 기준으론 데이터베이스가 아예 분리될텐데 어떤식으로 조인하나요? 추가적으로 논리적으로 참조설계가 된 상황에서 @ManyToOne 사용이 가능한지궁급합니다. 예를들면 Comment 엔티티에서 parentCommentId 같은 같은 데이터베이스에 있는 테이블에 @ManyToOne 적용이 가능한지궁급합니다.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
쵸잉 댓글 2 좋아요 0 조회수 143

질문] 에러처리 관련 문의

해결됨

은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스

현재 JWT 부분까지 들었습니다! 강의를 들으면서 갑자기 궁금한 부분이 생겨 질문드립니다. 도메인 별로 현재 API (Controller) 도 나눠져있는데요, 이런 형태의 프로젝트(DDD 아키텍처)인 경우 @RestControllerAdvice를 활용한 글로벌예외처리는 어떻게 구성하시나요? 글로벌예외처리 전용 class를 만들고 특정 익셉션들을 구성 후 각각의 익센션에 대한 응답을 ResponseProvider 를 이용해서 하는지? 등... 너무 추상적으로 질문을 드려서 이해하실지 모르겠지만 요약하자면 도메인별로 구별되어 있는 프로젝트에서는 글로벌익셉션처리가 어떤 형태로 구성할 수 있는지 궁금합니다 ㅋ.ㅋ;

  • kotlin
  • mysql
  • mongodb
  • kafka
  • redis
치즈초코우유 댓글 2 좋아요 0 조회수 134

팩터리 메소드와 response 객체 사용 이유가 궁금합니다!

해결됨

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

안녕하세요 게시판 강의 보면서 정말 잘 배우고 있습니다!! 국비학원 프로젝트 하던 때를 생각해보면서 듣고 있는데, 그때는 엔티티에 생성자를 만들어서 서비스에서 그냥 썼는데 본 강의에서 팩토리 메소드 형태를 사용하는 이유가 궁금했습니다!! (기술적으로 더 진보한 형태인지요) 그리고 객체마다 response를 만들어서 commentResponse, ArticleLikeResponse 같은걸 만들어 api 반환에 사용하는데, entity랑 필드도 다르지 않은데 굳이 이렇게 일일이 response 객체를 각각 만들어서 코드를 짜야하는지 궁금합니다!!

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
88diaspora 댓글 2 좋아요 0 조회수 123

클라우데라 매니저 접속 불가 및 로그인 정보 문의

미해결

15일간의 빅데이터 파일럿 프로젝트

안녕하세요, 강사님. 빅데이터 파일럿 프로젝트 강의를 수강 중입니다. 현재 강의 내용대로 Server01과 Server02를 모두 실행했고, http://server.hadoop.com:7180 주소로 클라우데라 매니저에 접속을 시도했는데 웹 페이지 자체가 열리지 않습니다. 또한 강의 자료에서 로그인 아이디와 패스워드 정보도 찾을 수 없었습니다. 혹시 클라우데라 매니저 기본 접속 주소 기본 로그인 아이디와 패스워드 접속이 되지 않을 때 점검해야 할 설정 을 알려주실 수 있을까요? 처음 환경을 구성하는 단계라서 안내해 주시면 큰 도움이 될 것 같습니다. 감사합니다.

  • 빅데이터
  • hadoop
  • kafka
  • zookeeper
  • redis
  • flume
  • impala
  • 데이터-엔지니어링
  • 카카오공채-개발
Suhwa Seong 댓글 2 좋아요 0 조회수 156

RateLimitTest시 저는 2초로 해야 정상으로 나오는데

해결됨

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

1초로하면 현재 성공, 실패 각각 200, 0으로 나오고 2초로 해야 100개 씩 성공하는데 정상인가요?

  • spring-boot
  • redis
  • backend
  • 시스템-디자인
  • cache
wisehero 댓글 2 좋아요 0 조회수 116

멀티스레드 상황인데 currentParticipants 가 AtomicInteger가 아닌 이유?

해결됨

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 4-6. 트랜잭션 실습 - 쿠폰 동시성 문제 해결 여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분 똑같이 멀티스레드 환경인데 successCount 는 AtomicInteger로 세팅되어 있고, currentParticipants 는 AtomicInteger가 아닌 이유가 궁금합니다. 이렇게 되면 Java단에서부터 currentParticipants++할 때 동시성 문제가 발생하지 않을까요? 3. 시도해보신 내용 GPT에 물어보니 AttributeConverter 사용하면 JPA에서도 AtomicInteger를 쓸 수 있다고 합니다.

  • java
  • spring
  • mysql
  • redis
  • 이력서
  • 카카오공채-채용
happyrichman 댓글 3 좋아요 0 조회수 149

커서 기반 페이지네이션 과 무한 스크롤링

해결됨

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

안녕하세요 강사님 강의를 수강하는 학생입니다. 무한 스크롤링은 두 번째부터 보통 끝쪽 id 에 데이터를 기반으로 데이터를 불러오는 방식이 보통 커서 기반 페이지네이션과 큰 차이가 없는 건가요? (claude 나 ) 블로그 보면서 이것도 비슷한 개념인 거 같아서 질문 드립니다. @Entity @Table( name = "post", indexes = { @Index( name = "idx_post_board_created_id", columnList = "board_id, created_at DESC, post_id DESC" ), @Index( name = "idx_post_created_id", columnList = "created_at DESC, post_id DESC" ) } ) @Getter @NoArgsConstructor public class Post { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "post_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) } 이렇게 엔티티에 인덱스를 만들어서 사용하는지 궁금합니다. 강의에서 처럼 SnowFlake도 보통 저렇게 인덱스를 만들어서 활용하는지도 궁금합니다.

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

섹션3에 22번째 강의에서 에러발생합니다..

해결됨

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

환경은 windows 11 64비트이구요, 자바 21, redis는 물론 docker 8.2.1 실행 중이엇구요 하지만 SplitShardedBloomFilterRedisHandlerTest 클래스에 mightContain 테스트 함수 실행 하면 첨부한 이미지 처럼 에러가 출력 됩니다. 아래는 docker 버전 정보입니다.

  • spring-boot
  • redis
  • backend
  • 시스템-디자인
  • cache
MinKyu Song 댓글 4 좋아요 0 조회수 171

실무에서 Redis에서 0번 이외의 DB를 사용하나요?

해결됨

개발자라면 알아야 할 redis 기본

안녕하세요 강사님 redis 를 잘 몰라서 공부중인데, 인터넷에 검색해보니(각종 gpt, claude)등도 실무에서 클러스터링 이슈 등으로 0번 이외의 DB는 사용하지 않는다는 설명이 있는 있는데, 0 DB 외에 1~16DB도 실무에서 쓰이나요? https://redis.io/docs/latest/operate/oss_and_stack/reference/cluster-spec/ 에서도 0 DB만 multiple databases를 지원한다고 나와있고 string 자료구조 강의에서 0 : 인증, 1: 캐싱, 3: 상품목록 등을 관리한다는 언급이 있어서 질문드립니다.

  • redis
  • nosql
  • database
  • devops
hanumoka 댓글 2 좋아요 0 조회수 302

강의_34] 공통 모듈 관련 질문입니다.

해결됨

은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스

아직 MSA 경험이 없다보니 질문을 드려봅니다. 메시지에 관련된 Entity를 공통 모듈로 뺀다고 하셨는데용 Lecture_1 라는 프로젝트, Lecture_2 라는 프로젝트가 있다고 가정을 했을 때 '공통 모듈' 이라는걸 별도의 프로젝트로 구성한다는 말씀이실까요? 아니면 아래와 같이 프로젝트 root외에 모듈을 별도로 잡아서 한다는 말씀이실까영? rootProject.name = 'Lecture_2' include 'common' <-- 공통 모듈? rootProject.name = 'Lecture_2' include 'common' <-- 공통 모듈? 아, 그리고 최근에는 MSA에 대한 단점이 명확해지고 있어서 Modular Monolithic 아키텍처도 생겨나고 있는데 강사님께서는 이 부분에 대해서 어떻게 생각하시는지도 궁금합니다!

  • kotlin
  • mysql
  • mongodb
  • kafka
  • redis
치즈초코우유 댓글 2 좋아요 0 조회수 133

클라우드 환경 배포시 부하 테스트 방식에 대하여

해결됨

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

안녕하세요 딩코님, 클라우드 환경에서 비용이 발생하지 않는 올바른 테스트 방법에 대해 여쭙고자 질문 남깁니다. 제 스스로 느끼기에, 제가 프리티어로 사용하고 있는 EC2 인스턴스 내부에서 k6 스크립트를 실행하게 되면 EC2 과부화는 물론 RDS 에도 몇백만건의 데이터가 삽입이 되니 비용적, 컴퓨팅 자원적 문제가 발생할 것 으로 생각이 됩니다. 그래서 혹시 다음과 같은 방법으로 클라우드 환경 테스트를 진행하면 될지 여쭤보고 싶습니다. 테라포밍을 통해 AWS EC2 + RDS 조합으로 서버 배포 배포된 해당 주소로 제가 가지고 있는 노트북(EC2 아니고 제 로컬 PC) 터미널에서 k6 스크립트 실행 이때도 비용문제가 발생하는지? -> 아니라면 저비용으로 테스트하는 국룰 방법을 좀 소개해 주시면 감사드리겠습니다 ! 강의 너무 재밌습니다 ㅋㅋㅋ 감사합니다 !

  • java
  • spring
  • mysql
  • redis
  • 이력서
  • 카카오공채-채용
xuv2 댓글 2 좋아요 0 조회수 291

이력서 관련 궁금한 사항이 있습니다.

해결됨

백엔드 6주 실전 미션과 1:1 피드백으로 완성하는 합격 포트폴리오 - 2기

안녕하세요 딩코딩코 선생님. 다름이 아니라 궁금한 점이 있어 Q&A에다가 글을 올립니다. 6주차 까지 진행을 하며 현재 실제 업무를 하며 해결한 내역들에 대해 다시 한번 정리 해 보는 시간을 가지려고 합니다. 이러한 과정을 수행했을 때 혹시 피드백을 해 주실 수 있는지 궁금합니다.

  • java
  • spring
  • mysql
  • redis
  • 이력서
Tommy 댓글 2 좋아요 0 조회수 72

인기 태그

인프런 TOP Writers

주간 인기글