inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

db table 관련질문

미해결

커머스 서비스로 배우는 NestJS 실전 개발 (w. Prisma, Docker, Redis, Kafka)

createdAt이랑 updatedAt은 default(now()) 랑 @updatedAt 을 통해 prisma model에서 핸들링이 가능한데 사용하지않고 dto에서 직접 다루는 이유가 궁금합니다

  • docker
  • kafka
  • redis
  • nestjs
  • prisma
Ref 댓글 1 좋아요 0 조회수 59

현업에서 prisma relationMode는 사용안하나요?

미해결

커머스 서비스로 배우는 NestJS 실전 개발 (w. Prisma, Docker, Redis, Kafka)

relationMode="prisma"로 지정하면 ORM으로 조인하는 기능들 사용하면서 실제 DB에는 관계가 안걸리는걸로 알고 있는데 복잡한 조인이 아니면 저런식으로 사용해도 상관없지 않나 생각이 들어 강사님께서는 어떻게 생각하시는지 궁금해서 어쭤봅니다.

  • docker
  • kafka
  • redis
  • nestjs
  • prisma
Ref 댓글 1 좋아요 0 조회수 115

Kafka Cluster 구성도 질문

미해결

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

6:27분 쯤 강의 내역에서 각 브로커가 파티션을 분사하는 과정에서 브로커 3에 topic3이 갑자기 생겼는데 그림에서 오타인 걸까요 ?

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
w ho 댓글 1 좋아요 0 조회수 70

레디스로 재고 관리

해결됨

2026년! 백엔드 개발자를 위한 Redis 실전 가이드: 기초부터 실무 패턴까지

안녕하세요. 최근 수백만 동시 접속을 처리하는 예매 시스템 아키텍처 관련 강의와 유튜브 영상을 참고하면서, 작은 프로젝트로 선착순 쿠폰 발급 시스템을 직접 구현해보며 학습하고 있습니다. 현재는 Redis를 활용해 선착순 쿠폰 발급을 구현하는 구조를 고민하고 있는데, 몇 가지 아키텍처 설계에 대해 궁금한 점이 있어 질문드립니다. 1. Redis + DB 원자성 관련 Redis에서 쿠폰 발급 가능 수량을 감소시키고, 동시에 DB에도 반드시 반영(쿠폰 발급 및 사용자 할당 기록)해야 하는 상황을 가정하고 있습니다. 이 경우 Redis의 재고 감소와 DB 반영을 하나의 트랜잭션처럼 원자적으로 묶어야 할 것 같은데, 현실적으로는 분산 환경 특성상 이를 직접적으로 묶는 것이 어렵다고 이해하고 있습니다. 그래서 일반적으로는 Lua Script로 Redis 내부에서 쿠폰 재고 감소 중복 발급 방지 처리 Redis Stream(또는 Queue)에 발급 이벤트 기록 을 원자적으로 수행하고, 이후 별도의 스케줄러(또는 Worker)가 해당 Stream을 읽어서 DB에 반영하는 방식 으로 설계하는 것이 맞는지 궁금합니다. 2. 메시지 큐(Kafka 등) 사용 시 구조 또한 쿠폰 발급 결과를 Kafka 같은 메시지 큐로 전달하는 방식도 있을 것 같은데, 이 경우에도 동일하게 Lua Script로 Redis 내부에서 쿠폰 재고 감소 중복 발급 방지 처리 Redis Stream(또는 Queue)에 발급 이벤트 기록 이후 스케줄러가 stream읽어서 Kafka로 전달 Consumer가 DB에 반영 과 같은 구조로 가져가는 것이 일반적인지 궁금합니다.

  • 아키텍처
  • redis
  • FastAPI
김재연 댓글 2 좋아요 0 조회수 121

Lock 해제 문의 드립니다.

해결됨

2026년! 백엔드 개발자를 위한 Redis 실전 가이드: 기초부터 실무 패턴까지

Lock 해제 코드에서 다른 사용자가 생성한 락을 삭제하지 않기 위해 본인의 identifier이랑 락의 value를 비교해서 삭제하는 로직 부분에서 궁금한 내용이 있습니다. 멀티스레드, 프로세스 환경에서 충분히 일어날 일 이라고 하셨는데 내가 락을 얻으면 다른 사용자는 락을 얻지 못해 value는 항상 나의 identifier이 들어있어야 하는게 아닌가? 라는 생각이 드는데 rd.set(lock_name, identifier, nx=True, px=lock_timeout_ms) 이 코드 방식으로 락을 만들면 여러 사용자가 특정 환경에 락을 얻을 수 있는건가요?

  • 아키텍처
  • redis
  • FastAPI
index 댓글 2 좋아요 0 조회수 111

답을언제쯤받아볼수있나요

해결됨

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

?

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

프로젝트가 없어요..

해결됨

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

프로젝트한게 없는데 어떻게 하죠??..포트폴리오를 작성하려는데..프로젝트한게없어서 강의들으면서 한걸 써도 된아요??

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

레디스로 대기큐 구현 질문

해결됨

2026년! 백엔드 개발자를 위한 Redis 실전 가이드: 기초부터 실무 패턴까지

학습 중 궁금한 점이 있으시면 편하게 질문 주세요. 참고로 질문이 구체적일 수록 더 정확한 답변을 드릴 수 있습니다. 😊 안녕하세요. 강의를 듣고 있는 개발자입니다. 이전에 유튜브에서 선착순 예매 관련 영상을 봤었는데 해당 영상에서 레디스를 이용해서 대기큐를 구현하는 것을 설명해주셨는데 그거에 대해서 질문이 있습니다. 레디스의 소티드 셋에 넣고 폴링을 통해서 상태를 확인한다. 타 스케줄러가 소티드셋에서 꺼내서 액티브로 바꾼다 라는 설명이 있었는데, 정확히 어떤식으로 구현하는 건지가 궁금합니다. 스케줄러가 꺼내고 액티브 유저 set으로 집어 넣는건가요? 그리고 소티드셋에서 꺼내서 엑티브 유저로 만드는 작업은 원자적으로 처리되게 하는건가요?

  • 아키텍처
  • redis
  • FastAPI
김재연 댓글 2 좋아요 0 조회수 146

API LIMIT

미해결

2026년! 백엔드 개발자를 위한 Redis 실전 가이드: 기초부터 실무 패턴까지

안녕하세요. 항상 좋은 강의 감사합니다. API LIMIT을 보면 ABUSING이랑 비슷한 개념이라고 느꼈습니다. 예를 들어, 어떤 유튜브 라이브에서 좋아요 리액션을 너무 많이 눌렸을 때, API LIMIT 알고리즘으로 고정 윈도우 방식이 적절하다고 생각했습니다. INCR 이 빈번한 작업이기 때문이죠. 근데 악성 BOT(봇)으로 좋아요를 악의적으로 누를 수도 있는데 이때는 ABUSING(어뷰징) 처리를 해야한다면 API LIMIT과 동일하게 가져가는게 맞을지 설명주신 API LIMIT도 제한 구간 10초당 몇개 를 구간과 임계치를 설정하는데, 보통 어떤 기준으로 실무에서 설정하는지 궁금합니다. 운영하면서도 모니터링하면서 조절할거 같은데 유튜브 라이브의 임계치 구간을 설명한다고 가정하면 인간의 마우스나 손으로 눌렸을 때 1초당 10번 이하? 이렇게 추상적인 실험 데이터도 정하는게 맞는지도 궁금합니다. 감사합니다.

  • 아키텍처
  • redis
  • FastAPI
rainbow8956 댓글 1 좋아요 0 조회수 89

캐시 무효화

미해결

2026년! 백엔드 개발자를 위한 Redis 실전 가이드: 기초부터 실무 패턴까지

DB부하를 줄이는 전략에서 DB의 데이터 사용자 이름을 변경 할 때, 기존 캐식 삭제 보다 기존 캐시의 JSON 프로필 이름만 수정하는 게 더 비효율적인가요? 기존 캐식 삭제 > 새로운 캐시 생성 VS 기존 캐시의 수정

  • 아키텍처
  • redis
  • FastAPI
rainbow8956 댓글 2 좋아요 0 조회수 95

Redis와 Kafca의 Pub/Sub 차이

미해결

2026년! 백엔드 개발자를 위한 Redis 실전 가이드: 기초부터 실무 패턴까지

항상 좋은 강의 감사합니다. Redis와 Kafca의 Pub/Sub 차이가 궁금합니당. 예를 들어, 인스타 라이브에서 사용자의 리액션 좋아요를 Redis에 두고 post로 좋아요를 업데이트 칠 때, MYSQL 좋아요 수도 같이 증가하기 위해 Redis와 Kafca의 Pub/Sub 의 차이점이 있을까요? 좋아요 api가 redis의 좋아요 수 증가 > kafca 메시지 발행 > mysql 구조라 가정했을 때, 대규모트래픽에서 kafca와 redis의 Pub/Sub의 차이랑 뭐가 더 적절한 선택인지 궁금합니다. 감사합니다.

  • 아키텍처
  • redis
  • FastAPI
rainbow8956 댓글 2 좋아요 0 조회수 142

@Version 어노테이션이 붙은 필드는 낙관적 락이든 비관적 락이든 업데이트가 됩니다.

미해결

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

설명중에 @Version 필드를 낙관적 락에서 이용할 수 있어가지고~ 라고 하셧는데 실제 돌려보니 비관적락 2에도 DB 업데이트가 되었습니다. AI 에게 물어보니 @Version 어노테이션이 붙은 필드는 JPA 사용시 @Lock 어노테이션 사용여부 상관없이 업데이트가 된다고 합니다. 혹 다른 qna 에도 같은 내용이 있는지 확인은 모두 안해 보았습니다. ======================== 응, 같은 엔터티 row에 실제 UPDATE 가 나가면 @Version 필드는 증가한다고 보면 돼. 락 방식이 낙관적이든 비관적이든 핵심은 이거야. @Version private Long version; 이 필드가 있는 엔터티가 dirty checking으로 변경 감지 되고, flush/commit 때 UPDATE 대상이 되면 JPA/Hibernate가 version 값을 같이 갱신해. ========================

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

너무 흥미진진합니다..

미해결

2026년! 백엔드 개발자를 위한 Redis 실전 가이드: 기초부터 실무 패턴까지

RDBMS 로만 생각이 고정되어있었는데- 캐싱으로도 이렇게 문제들을 해결할수 있는거군요...

  • 아키텍처
  • redis
  • FastAPI
itboxer91 댓글 2 좋아요 1 조회수 109

순위가 동률일 때의 처리에 대해 질문드립니다.

미해결

2026년! 백엔드 개발자를 위한 Redis 실전 가이드: 기초부터 실무 패턴까지

안녕하세요, 강의 잘 듣고 있습니다. 양질의 강의 감사드립니다. Sorted Set을 활용한 리더보드 강의 시청 후 궁금한 점이 생겨 질문 남깁니다. Redis 공식 문서에 따르면 Score가 동률일 때 사전순(lexicographical)으로 처리된다고 명시되어 있는데요, 실제 비즈니스 환경에서는 사전순이 아닌 여러 기준을 복합적으로 비교해야 하는 경우가 많을 것 같습니다. Score가 64비트 부동소수점임을 활용해, 자릿수별로 기준을 나누는 방안(예: 1~8자리는 기본 점수, 9~12자리는 2순위 기준, 13~15자리는 3순위 기준 ...)도 생각해 보았습니다. 다만 동률 비교 기준이 많아지거나 기본 점수 자체가 클 경우 double 정밀도 한계로 인해 적용이 어렵겠다는 생각이 들었습니다. 실무에서는 이러한 복잡한 동률 상황을 어떤 방식으로 처리하는지 팁을 여쭤봐도 될까요? 감사합니다.

  • 아키텍처
  • redis
  • FastAPI
Dong wook Kang 댓글 2 좋아요 0 조회수 154

Service Create/Update Record 운용과 Delete Record 미운용의 차이 질문

미해결

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

안녕하세요, 선생님! 강의 들으면서 Service 및 Cache Handler 구성간 Create/Update <-> Delete 간의 Return Record 여부 차이에 대해 질문드리고자 합니다. 서비스도 그렇고, 핸들러도 그렇고, Return type이 Create/Update는 전달받은 Record를 Entity Context에 적용한 객체인데, delete의 경우 void로 운용하시는 것을 보고 어떤 차이점이 있는지 궁금하여 질문드리게 되었습니다. create, update 모두 반영 이후의 내역을 바로 반환하여 보여준다는 의미로 생각하였는데, delete를 보면 그런 것 같지는 않아서 따로 다른 의미가 있는지(실무에서 이렇게 많이 사용한다던가), 별 의미가 없는지 구체적으로 문의드리고자 합니다. 감사합니다.

  • spring-boot
  • redis
  • backend
  • 시스템-디자인
  • cache
Hyo Kyun Lee 댓글 1 좋아요 0 조회수 62

조회속도 개선에서 더 개선하는 방법이 궁금합니다.

해결됨

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

안녕하세요. 인덱스를 활용한 조회 성능 개선을 공부하던 중 궁금한 점이 생겨 질문드립니다. 현재 저는 OFFSET 기반 pagination을 사용하는 서비스 를 개발하고 있으며, 다음과 같은 환경에서 성능 테스트를 진행했습니다. 데이터: 약 1,000만 건 서버: EC2 t3.small DB: RDS t4g.micro k6 vus100 1. 문제 상황 초기에는 OFFSET 제한 없이 마지막 페이지까지 이동 가능하도록 구현했습니다. 하지만 데이터가 1,000만 건 수준으로 증가하자, 깊은 페이지로 갈수록 조회 속도가 급격히 느려지는 문제 를 확인했습니다. 2. 고민 및 제약 일반적으로 이 문제는 Keyset Pagination(커서 기반) 으로 해결하라고 많이 알려져 있습니다. 하지만 제 서비스는 👉 네비게이션 바를 통한 페이지 직접 이동 (ex. 1, 10, 100 페이지 클릭) 이 필요하기 때문에 Keyset 방식만으로는 요구사항을 만족시키기 어렵다고 판단했습니다. 3. 적용한 개선 방법 다음과 같은 방식으로 성능 개선을 진행했습니다. OFFSET 최대 범위를 제한 (최대 10,000 페이지 / OFFSET 100,000) 커버링 인덱스 적용 조회 방식 개선 먼저 ID만 조회 → 이후 필요한 10건만 상세 조회 전체 게시글 수(count)는 캐싱 처리 4. 성능 개선 결과 [Page 10] avg: 1.4s → 700ms p95: 4.5s → 1.8s [Page 100] avg: 17s → 1.18s p95: 24s → 3.3s [Page 1000] avg: 32.1s → 1.7s p95: 59s → 4.27s SQL 쿼리는 분석결과 약 1700MS -> 70MS 까지 단축한 것 같습니다. 5. 추가 제약사항 로그인 사용자와 비로그인 사용자의 조회 결과가 다름 (사용자별 구독 게시글이 포함됨) 따라서 캐시는 비로그인 사용자에만 적용 위 성능 수치는 로그인 사용자 기준 6. 현재 고민 위와 같이 개선했지만, 👉 여전히 성능이 충분하지 않다고 느끼고 있습니다. 특히 궁금한 점은 다음과 같습니다. 7. 질문 OFFSET 기반 pagination을 유지하면서 👉 추가로 성능을 개선할 수 있는 방법이 있을까요? 다음과 같은 방법들을 고려했는데, 방향성이 맞는지 궁금합니다. RDS를 2개를 사용하여 조회 성능 데이터를 각각 2개의 db가 처리하도록 한다? Keyset + OFFSET 혼합 방식 ( 일반적인 페이지 이동은 Keyset Pagination을 사용하고, 사용자가 특정 페이지를 직접 입력하거나 점프하는 경우에만 제한적으로 OFFSET 기반 조회를 사용하는 혼합 방식) RDS 스펙 업그레이드 또한 에펨코리아( https://www.fmkorea.com/)와 같은 대형 커뮤니티는 제가 원하는 페이지 네이션 방식을 사용하면서 깊은페이지(최대 1만)도 지원하고 동시접속자 수십만 페이지 수천~수만 대량 데이터 환경에서도 빠른 조회 성능을 유지하는데 👉 이러한 서비스들은 어떤 방식으로 pagination 및 조회 성능을 처리하는지 궁금합니다.

  • java
  • spring
  • mysql
  • redis
  • 이력서
문영훈 댓글 2 좋아요 0 조회수 135

Redlock 알고리즘 관해 궁금한게 있습니다!

미해결

2026년! 백엔드 개발자를 위한 Redis 실전 가이드: 기초부터 실무 패턴까지

레디스 서버 한대가 죽더라도 락의 안전성을 보장하기 위해 3~5대의 다른 레디스 서버도 함꼐 있는거라면 이 서비스의 경우에는 레디스의 데이터를 모두 동기화시키는 작업이 매 요청마다 실행되는 건가요? 동기화 시키는 과정에서 TTL 에 작은 차이가 생길 수도 있디고 생각하는데 무시가능한 정도인지요?? 동기화를 시키지 않는다면 또 그 여러대의 레디스 서버가 봐라봐야할 한 곳이 다시 존재하게 됨으로써 어짜피 똑같은 건 아닌지.. 궁금합니다!

  • 아키텍처
  • redis
  • FastAPI
portal.bj 댓글 2 좋아요 0 조회수 144

좋아요/조회수 카운팅 병목현상에 대해서 궁금한점이 있습니다.

미해결

2026년! 백엔드 개발자를 위한 Redis 실전 가이드: 기초부터 실무 패턴까지

좋아요, 조회수등 단순 카운트에서 Redis를 쓰는 이유중 하나로 RDB 의 병목현상을 말씀해 주셨는데 Redis의 INCR 명령어 역시 수만개의 좋아요 처리를 한다면 같은 이유로 병목 현상이 발생하는게 아닌지 궁금합니다.

  • 아키텍처
  • redis
  • FastAPI
portal.bj 댓글 2 좋아요 0 조회수 119

Build 관련 문제 (테스트 관련 문제)

해결됨

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

다른 분들에게 도움이 될까 글을 작성합니다. 저는 윈도우 환경에서 InteliJ를 사용하고 CLI 화면이 편하기 때문에 WSL를 사용하여 도커를 사용했습니다. 해당 전에 문제 해결들은 자료가 없어서 해결 방안만 말씀드리겠습니다. cloud... gradle 문제 해당 프로젝트가 One Driver에 있기 때문에 클라우드 상에 있는 그레이들이 안되는 것으로 알고 있습니다. 만약 프로젝트가 One Driver에 있다면 One driver 밖으로 이동 시켜주세요 WSL 도커를 실행해도 윈도우 환경에서는 컨테이너를 찾지 못하는 경우가 있기 때문에 Window 환경에서 도커를 실행 하세요 해당 예외들이 터진 후에 모든 테스트 로직에 대해 예외가 발생합니다. BackendportfolioApplicationTests > contextLoads() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:143 Caused by: java.lang.IllegalStateException at LoadingCache.java:75 Caused by: java.lang.ExceptionInInitializerError at Class.java:-2 Caused by: java.lang.IllegalStateException at DockerClientProviderStrategy.java:277 원래 전에는 build와 테스트가 잘 진행되었는데 무슨 일인지 Test에서 도커를 만들지 못하는 문제가 생겼나 봅니다. 저는 테스트에서 사용되는 DB Config들을 사용하는 곳에 주석 처리하고 도커 컴포즈로 DB를 주석 처리하고 테스트에서 사용되는 DB들은 Docker compose에 사용되는 DB를 켜서 사용했습니다. Docker Compose에서 사용되는 DB로 사용되기 싫으시다면 Docker 컨테이너로 따로 만드시면 될 것 같아요 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @SpringBootTest //@Import({TestDatabaseConfig.class, TestRedisConfig.class}) public @interface IntegrationTest { } docker compose up db redis -d build 관련 에러들은 어노테이션 설정, gradle 설정, 컴파일 설정 등 많은 이유가 있어 하루 종일 붙잡아도 문제 해결이 안되는 점이 많아 시간으 며칠 잡아 먹었네요 글을 깔끔하게 가독성 좋게 작성하지 못해 아쉽지만 다른 사람들이 똑같은 문제를 맞았을 때 해당 글이 도움이 되길 바랍니다.

  • java
  • spring
  • mysql
  • redis
  • 이력서
  • junit
김윤환 댓글 2 좋아요 1 조회수 113

consumer에서 에러가 발생할 경우 데이터 유실 문의

해결됨

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

안녕하세요. kafka 관련해서 질문이 있습니다. MessageRelay > publishEvent 에서 outbox를 삭제했는데 consumer에서 에러가 발생하면 데이터가 유실되는게 아닌가요?

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

인기 태그

인프런 TOP Writers

주간 인기글