inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

유저 이미지 등록 에러

미해결

AWS로 쉽고 빠르지만 아주 견고한 서버 환경을 구축하는 방법

현재 인스턴스는 잘 떴고 health_check 도 문제없이 잘 되는데 이미지 등록을 하려고 하면 서버 에러가 납니다. 제가 자바쪽은 에러로그를 어떻게 봐야 하는지 잘 몰라서 서버쪽 에러 로그 확인 하지 못했습니다.

  • aws
  • docker
  • msa
  • container
  • ecs
lee zena 댓글 1 좋아요 0 조회수 21

service-discovery 프로세스 가동 이유

미해결

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

안녕하세요 강사님 양질의 강의 제공해주셔서 감사합니다 api-gateway yml 파일에 micro-service url에 매핑된 host 정보를 기입하셨는데요 이러면 service-discovery 프로세스를 가동시키신 이유가 뭘까요? 제가 이해하기론 service-discovery는 dns정도로 이해하고 있습니다

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
hotalibi 댓글 1 좋아요 0 조회수 20

안녕하세요 한번 더 문의드립니다.

미해결

카카오 면접관이 알려주는 문서기반의 프레임워크 통신 패턴을 위한 GraphQL

안녕하세요 평소에 hong님 강의를 수강하고 잇는 수강생입니다. 다름이 아니라 기존에 나눠주신 resolvers.js파일에는 새로 적어야 하는 코드에 대한 자료가 없습니다. 제가 못찾은 걸수도 있는데 현재로서는 보이지가 않습니다.

  • javascript
  • typescript
  • graphql
  • msa
  • 국비지원-부트캠프
잉꼬팡이 댓글 4 좋아요 0 조회수 51

보상트랜잭션 실패시 데이터베이스 저장하는데 그것조차 실패하면 어떻게 하나요??

해결됨

주문시스템으로 알아보는 분산트랜잭션

안녕하세요!!! 강사님!!! 3년차 백엔드 개발자입니다. 재고차감부터 쿠폰 그리고 분산 트랜잭션까지 쭉 너무 잘 듣고 있습니다!(이건 회사 계정이고 제 개인 계정으로 구매했습니다 ㅎㅎ) Orchestaration - 현재구조의 문제점과 해결방법 강의를 수강중인데, 보상트랜잭션 실패시 데이터 베이스에 저장하는것과 같이 장애가 났을 경우를 대비하는것 같은습니다. 여기서 궁금한게 실무에서는 어느정도 장애상황까지 대비를 하는지 궁금합니다. 예를들어 지금과 같이 데이터베이스에 실패한 기록을 남기는것조차 실패할 수도 있을것 같은데요... 만약 카프카를 쓴다고 해도 카프카 장애로 기록이 안된다면??? 이렇게 장애 상황을 계속 꼬리질문 하다보면 정말 끝도 없이 갈것 같은데... 실무에서는 어느정도 타협(?) 트레이드 오프(?)를 하는지 궁금합니다!! 추가로 혹시 강사님께서는 어떤 책으로 시스템 설계를 공부 하시는지도 궁금합니다..ㅎㅎㅎ 감사합니다!

  • msa
HJ 댓글 2 좋아요 0 조회수 42

코드 자료는 없는걸까요?

해결됨

카카오 면접관이 알려주는 문서기반의 프레임워크 통신 패턴을 위한 GraphQL

안녕하세요 hong님 강의를 수강하고 있는 수강생입니다. 다름이 아니라 코드 자료들은 따로 안보이는데, 직접 일시정지하고 쳐야하는 건가요? 아니면 제가 못찾은 걸까요?? 강의 일시정지 하고 코드를 치기엔 조금 힘들거 같아서 그렇습니다!

  • javascript
  • typescript
  • graphql
  • msa
  • 국비지원-부트캠프
잉꼬팡이 댓글 3 좋아요 0 조회수 65

DLQ의 수동 커밋에 대해서 질문있습니다.

해결됨

핵심만 빠르게 끝내는 실전 카프카(kafka)

처리에 실패한 메시지를 DLQ로 재발행해서 별도로 재처리하는 구조를 설계한다면 굳이 수동 커밋을 유지하지 않고 enable.auto.commit=true 로 바꿔도 무방한지 궁금합니다!

  • spring-boot
  • kafka
  • msa
  • spring-kafka
이찬원 댓글 2 좋아요 0 조회수 53

혹시 다음 강의는 언제쯤 나올까요?

미해결

[2026 NEW] 기초부터 이해하는 쉬운 쿠버네티스 - 리소스편

안녕하세요 선생님, 이전에 강의를 재밌게 들었고, 지금도 종종 복습하려고 다시 수강하는 수강생입니다. 혹시 이 k8s 리소스 강의의 다음 강의가 언제쯤 출시(?)될지 대략적이라도 알려주실 수 있을까요?

  • kubernetes
  • msa
  • devops
  • infrastructure
  • container
식빵 댓글 1 좋아요 0 조회수 34

kubectl exec 에러가 발생해서 문의드립니다.

해결됨

금융 인프라를 운영하는 Toss 개발자의 Kubernetes

안녕하세요. pod 강의를 듣다가 문제가 생겨서 문의드립니다. 제가 Docker Desktop(v.4.80.0) + kubeadm 으로 강의 세팅을 비슷하게 하고 학습 진행 중입니다. 그런데 아래 명령어들은 모두 잘되는데... kubectl apply -f my-first-pod kubectl get pods -o wide kubectl logs my-first-pod 아래 명령어가 치면... kubectl exec -it my-first-pod -- /bin/bash 아래와 같은 에러가 발생합니다. error: Internal error occurred: error sending request: Post "//[::]:57349/cri/exec/LZxZE5Gs": http: server gave HTTP response to HTTPS client docker desktop 에서 k8s reset 도 해봤는데, 여전하더라구요.

  • docker
  • kubernetes
  • msa
  • infrastructure
  • k8s
식빵 댓글 3 좋아요 0 조회수 86

rabbitmq에 configservice 연결에 대해 질문있습니다.

미해결

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

안녕하세요 강사님 강의 잘 듣고 있습니다. 섹션 9에서 강의대로 docker에 rabbitmq를 올린 뒤 configservice를 실행했는데 오류가 발생합니다. org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[springCloudBus.anonymous.PswTKgDeT12hTiCFa33hLw] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:772) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.passiveDeclarations(BlockingQueueConsumer.java:649) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:636) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.initialize(SimpleMessageListenerContainer.java:1482) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$ AsyncMessageProcessingConsumer.run (SimpleMessageListenerContainer.java:1322) ~[spring-rabbit-3.2.5.jar:3.2.5] at java.base/ java.lang.Thread.run (Thread.java:1447) ~[na:na] Caused by: java.io .IOException: null at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:140) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:136) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:158) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:1033) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:47) ~[amqp-client-5.25.0.jar:5.25.0] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] at org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:1201) ~[spring-rabbit-3.2.5.jar:3.2.5] at jdk.proxy2/jdk.proxy2.$Proxy140.queueDeclarePassive(Unknown Source) ~[na:na] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:750) ~[spring-rabbit-3.2.5.jar:3.2.5] ... 5 common frames omitted Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'springCloudBus.anonymous.PswTKgDeT12hTiCFa33hLw' in vhost '/', class-id=50, method-id=10) at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:552) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:316) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:152) ~[amqp-client-5.25.0.jar:5.25.0] ... 12 common frames omitted Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'springCloudBus.anonymous.PswTKgDeT12hTiCFa33hLw' in vhost '/', class-id=50, method-id=10) at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:528) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:349) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:193) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:125) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQConnection.readFrame(AMQConnection.java:761) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQConnection.access$400(AMQConnection.java:48) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQConnection$ MainLoop.run (AMQConnection.java:688) ~[amqp-client-5.25.0.jar:5.25.0] ... 1 common frames omitted 깃허브의 프로젝트를 그대로 가져오고 어떻게 해도 해결이 안되네요ㅠㅠ 도움 부탁드립니다..

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
전윤미 댓글 1 좋아요 0 조회수 51

pg사가 있다고 가정하면

미해결

마이크로서비스 디자인 패턴 완벽 가이드

제공되는 예제 파일에 대한 실행에 관련 질문을 해 주실 때는, 자신이 사용하는 운영체제(OS), 운영체제 버전, JDK 버전, IDE와 같은 개발 도구의 버전 등을 상세알려 주시면, 답변을 드리는데 도움이 됩니다. 안녕하세요. 강의를 보고 있는 개발자입니다. 질문이 있어 문의드립니다. 만약 pg사 연동이 들어간다고 가정하면 어떤 식으로 사가를 구성해야할까요? 주문서버, 결제서버, 재고서버가 있다고 가정하면 대략적인 결제 흐름이 대부분 아래와 같을텐데 장바구니에서 구매하기 누르면 주문서페이지로 감 주문서 페이지에서 쿠폰 등을 선택하고 결제하기를 누르면 pg결제창이 뜸 pg결제를 하면 결제 승인 api를 서버가 호출 아래와 같이 해도 되나요. 장바구니에서 구매하기 누르면 주문서버에 주문서를 생성 주문서페이지에서 결제하기 누르면 주문서를 검증하고 임시결제 생성 및 pg사 url 생성 (주문서버 -> 결제서버 -> pg사 동기식으로 호출 해야할 거 같음) pg결제가 승인되면 결제서버의 결제 승인 api 호출 (임시결제를 결제완결상태로 만들고 pg사의 승인 api 호출) 결제 완료되면 결제 완료 이벤트 발행하여 재고 줄인다. 제가 생각하기에 pg사 결제 url 만드는 2번이 주문서버 -> 결제서버 동기식으로 호출하는게 맞는게 아닌가 싶어서 저렇게 했는데 혹시나 비동기로 할수 있는 방법이 있을까요? 아니면 제가 생각한 방식말고 다른 방식이 있을까요? 강의에서는 pg사 관련된 내용이 안나와 궁금하여 질문드립니다.

  • java
  • spring-cloud
  • 디자인-패턴
  • msa
  • patterns
김재연 댓글 1 좋아요 0 조회수 38

38강 클러스터에 컨트롤러 연결 질문

미해결

실전에서 바로 써먹는 Kafka 입문

마지막에 2,3번 컨트롤러를 따로 연결하는 이유가 궁금합니다. 강의에서 클러스터에 노드 3개를 연결하고 나서 브로커와 컨트롤러 모두 잘 있는지 sudo lsof -i:~~~ 로 확인까지 하셨는데 이까지는 브로커3개는 모두 다 클러스터에 연결되었고 2,3번 컨트롤러만 연결되지 않은건가요? 노드의 구성요소가 컨트롤러 + 브로커라고 하셔서 노드를 클러스터에 연결하면 자동으로 컨트롤러, 브로커 모두 연결될 줄 알았는데 브로커만 연결되는건가요?

  • kafka
  • EDA
  • msa
  • devops
  • infrastructure
gombo123 댓글 2 좋아요 0 조회수 73

Windows localhost:30000 연결 거부 현상

미해결

비전공자도 이해할 수 있는 쿠버네티스 입문/실전

강사님 안녕하세요 ! Docker부터 시작해서 쿠버네티스까지 강사님 강의를 잘 듣고 있습니다. 다름이 아니라 쿠버네티스를 사용하면서 강의를 따라 localhost:30000 주소를 통해 테스트 접속을 하려고 하는데 접속이 안되서 문의 드립니다. Deployment 와 Service는 강의를 따라가기 위해 그대로 작성했습니다. Pods 3개는 정상적으로 실행 되는걸 확인했습니다. pods 내부에 직접 들어가 호출을 하니 정상적으로 호출이 됐습니다. 포트 포워딩을 했을 때도 정상적으로 접속이 되는걸 확인 했습니다. 저와 같은 내용의 질문이 있어 강사님이 제시 해주신 방법들을 우선적으로 시도 해봤으나(Docker desktop 완전히 종료. 5분 정도 대기 후 다시 start, 쿠버네티스 리셋, netstat 을 통한 30000번 포트 우선 점유 프로세스 확인) 아직 연결은 안되는 상황 입니다. kubectl describe service spring-service 결과와 kubectl get svc -o wide 조회 결과 같이 첨부드립니다. 구글링과 AI 등을 사용해서 해결방법을 우선적으로 찾아봤는데 아직 명확한 해결법은 찾지 못했습니다. 해결방법이 궁금합니다 !

  • docker
  • kubernetes
  • msa
  • infrastructure
  • container
tnipsul 댓글 2 좋아요 0 조회수 88

혹시 수업자료는 다운받을 수 있는 곳이 없나요?

미해결

핵심만 빠르게 끝내는 실전 카프카(kafka)

강의에서 설명해주시는 내용이 깔끔히 정리되어 있는거 같아, 자료로서 볼 수 있는 링크나 파일이 있을까요? github 소스 외에 설명해주시는 강의 자료도 있으면 이론 내용 복습 차원에서 좋을 것 같아 문의 드립니다.

  • spring-boot
  • kafka
  • msa
  • spring-kafka
wonjae6707 댓글 2 좋아요 1 조회수 91

user-service jwt

미해결

비전공자도 이해할 수 있는 MSA 입문/실전 (feat. Spring Boot)

frontend 와 backend jwt 주고 받을때 controller 에서 @User 라는 데코레이션 혹은 그냥 @AuthenticationPrincipal AuthenticatedUser authenticatedUser, 만들어두고 사용하곤 했었는데 레파지토리를 나눠버렸을때는 어떻게 관리를 하게 되나요 ??

  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • devops
SJ 댓글 2 좋아요 0 조회수 77

애그리거트 질문있습니다!

미해결

Microservice 설계(with EventStorming,DDD)

강의 잘듣고 있습니다! 도출된 애그리거트와 의문이 생겨 질문드립니다. 제가 알고 있는 Aggregate는 "여러 객체를 하나의 일관된 단위로 묶은 클러스터" 이고, Aggregate Root가 존재하며 외부에서는 Root를 통해서만 접근해야 한다고 이해하고 있습니다. 근데 노란 포스트잇으로 도출된 애그리거트 들은 객체를 하나의 일관된 단위로 묶은 클러스터의 개념은 아닌거 같아서요 세번째 강의의 코드만 대략 보고왔는데 이벤트 스토밍으로 도출된 애그리거트와는 조금 다른거 같아 질문드립니다ㅜ_ㅜ

  • 아키텍처
  • msa
  • ddd
이북자 댓글 2 좋아요 0 조회수 90

DDD 는 마이바티스와 잘 맞지 않는건가요?

해결됨

Spring Boot DDD 실전: 주문 시스템으로 배우는 도메인 설계

안녕하세요. DDD 관련 강의나 블로그를 보면 대부분 JPA 로 설명해주시더라구요. 마이바티스도 실무에서 오히려 더 폭 넒게 쓰이는 것 같은데 마이바티스로는 DDD 를 적용하기 어려운걸까요?

  • java
  • rest-api
  • spring-boot
  • msa
  • backend
gibbs 댓글 1 좋아요 0 조회수 84

스프링부트 버전 문의드립니다.

해결됨

Spring Boot DDD 실전: 주문 시스템으로 배우는 도메인 설계

안녕하세요. 부트버전을 3.5 로 설정해서 수강해도 괜찮을까요. 회사에서 아직 4.x 버전 업 계획이 없어서요.

  • java
  • rest-api
  • spring-boot
  • msa
  • backend
gibbs 댓글 1 좋아요 0 조회수 67

gRPC 실무에서 질문

해결됨

카카오, 토스 개발자가 알려주는 수백개의 MSA 환경에서의 성능 보장을 위한 RPC 처리 기법

이제 앞으로 3개만 더 들으면 완강이네요! 빠르게 gRPC를 공부할수 있어서 좋았습니다. 강의를 마무리해가니 궁금한 점이있어 질문 남깁니다. 마이크로서비스가 1000개 이상되는 회사에서 데이터팀 백엔드 인턴으로 근무를 할 예정인데 데이터팀이다 보니 서비스들 전체를 아우르는 일을 해야한다고 들었습니다. 그래서 gRPC에 대해서 공부해오면 좋다고 해서 강의를 수강하게 되었습니다. 처음에 회사에 들어가면 어떤식으로 서비스들의 gRPC를 분석해야할까요? 혹시 추천해주시는 순서가 있으실까요? 예를 들어서 .proto파일을 먼저 확인한다 -> 등등 성공적인 백엔드 인턴을 위해서 추가적인 조언이 있으시다면 감사하겠습니다.

  • go
  • msa
  • backend
  • grpc
IwantKtor 댓글 2 좋아요 0 조회수 75

Orchestration SAGA 패턴 보상에 대한 질문입니다.

해결됨

카카오 면접관이 알려주는 MSA 관점에서의 분산 트랜잭션 패턴

Orchestration SAGA 패턴 구현에 대해 고민하다가 질문이 생겨 남깁니다. 보상을 요청하는 메서드가 명시적으로 나와있어 호출할 때(동기로 호출) 만약 rollback을 요청하는 호출이 실패하게 된다면 이후의 순서대로 service에 보상 요청을 하는 동작을 멈춰야 할지 계속 진행하는 게 바람직할지 고민이 됩니다. 예를 들어 서비스 1,2,3,4가 있고 center server가 orchestration 관리를 하고 1,2,3,4 순서대로 서비스 호출해서 관리를 진행한다고 했을 때 3에서 장애가 발생해서 2를 롤백하던 중 2 롤백에서 예외가 발생해서 롤백에 실패한 경우 orchestration에서 1에 대한 롤백을 진행해줘야 할지 아니면 일단 멈춰야 할지 고민입니다. 고민의 이유는 순서대로 롤백을 해주는 것은 앞에 작업이 뒤의 작업에 의존성이 있을 때만 그렇게 해주면 되나에 대한 고민이 있었습니다. 두 롤백 간에 데이터 의존성이 없다면 괜찮지 않을까 고민했습니다. 다음으로 일단 1도 롤백을 한다면 어디서부터 어디까지 롤백이 진행됐는지 추적이 어려워지지 않을까 고민했습니다. 롤백을 어떤 것은 해주고 어떤 것은 안해준다면 어디까지 롤백했는지 추적이 힘들어지지 않을까 생각이 들었습니다.

  • java
  • spring
  • mysql
  • spring-boot
  • msa
won 댓글 2 좋아요 0 조회수 79

6강 - 해시태그 모델의 샤딩 전략에 대하여, 분산 정도(데이터 편중)와 트랜잭션 성능의 trade off 상황 발생 시에 대한 고민

해결됨

분산 데이터 모델링

안녕하세요, 선생님! 6강 해시태그 모델을 배운 후 데이터 분산 정도와 트랜잭션 일관성의 trade off에 대한 선택이 생각났고, 이에 대한 선생님의 고견은 어떠하실지 궁금하여 질문 올리게 되었습니다. 질문 내용은 아래와 같습니다. 데이터 편중도 크고 vs 트래픽이 많이 발생하여 트랜잭션까지 고려해야할때 샤딩키를 어떤 것으로, 어떤 부분을 tradeoff의 우선순위로 지정하는 것이 좋을지 저의 경우 트래픽을 선택할 것 같은데, 데이터 편중에 대해 추가적인 보완사항이 있다면 어떤 것이 있을지 일단 강의의 경우, 제가 이해한 내용으로는, 해시태그 모델과 같이, PK/FK의 분산 정도가 비슷하고, 부모 속성(FK)에 의한 쏠림 현상이 발생하여도 그 규모가 충분히 크지 않으므로 쓰기 경로를 중점적으로 고려하여(동일 게시글에 대한 해시태그를 동일 샤드에 저장) 설계한다. 이와 같습니다. 저는 해시태그 모델과 함께, 다른 예를 들어, 하루에 50,000건의 거래가 이루어지는 대규모 거래가 발생하는데, 이를 거래 게시판을 각 도메인 별(화장품/전자기기 등)로 별도로 만들어서 한 거래게시판 당 하루에 10,000건의 게시글, 1개의 1000~2000개의 찜이 발생한다고 하였을때의 상황에 대해 생각해보았습니다. 제가 만약 실무에서 찜 DB를 설계한다고 가정하고, 이에 대해 대응한다고 하였을때, 1) 게시글 ID와 찜(누가 찜했는지 구분해야 함, 찜ID로 구분한다고 가정하면)의 트래픽이 한 한 게시글 기준 찜 몇천여개, 게시글 총 만여개의 수준으로 발생하여 규모가 충분히 작다고 볼 수 없습니다. 2) 따라서 데이터 쏠림 현상에 대해 고민을 안할래야 안할 수가 없고, 그러면서도 데이터의 균등한 샤딩에 대해서도 고민이 들게 되었습니다. 3) 결국 데이터 분산을 균등하게 하느냐, 쏠림이 발생하더라도 쓰기 트래픽의 성능과 일관성, 조회 성능의 이점이 큰 것인가를 선택해야 하는데 4) 분산을 선택하지 않고, 트래픽 성능/일관성/조회 성능을 생각하였을때, 확실히 단일 데이터베이스에 있을때 성능적인 측면에서도 좋고, 일관성, 특히 조회 시 별도의 CQRS 전용 쿼리모델이나 DB를 따로 두지 않고 인덱스도 따로 설계하지 않는 등 훨씬 엄청난 이점이 될 것으로 판단이 됩니다. 따라서, 분산 정도 대신 성능 쪽으로 결론짓고 샤딩 키를 찜 ID 대신 게시글 ID로 지을 것 같습니다. 대신, 엄청난 트래픽으로 인해 데이터 편중이 너무 커진다면 게시글 생성일자를 샤드키로 추가하여 데이터를 좀 더 세부적으로 분리할 것 같습니다(아니면 더 좋은 방안이 있을지). 이에 대해 선생님의 생각이 궁금하여 질문드리게 되었습니다! 감사합니다.

  • dbms/rdbms
  • msa
  • modeling
  • 소프트웨어-설계
  • 시스템-디자인
  • database-modeling
Hyo Kyun Lee 댓글 2 좋아요 0 조회수 74

인기 태그

인프런 TOP Writers

주간 인기글