inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

JsonSerializer & JsonDeserializer

미해결

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

예제에서는 StringSerializer 와 StringDeserializer 를 사용하도록 설정하고 ObjectMapper 를 통해 직렬화/역직렬화를 해주셨는데요. 혹시 JsonSerializer 와 JsonDeserializer 를 사용하지 않는 이유가 있을까요? 그리고, JsonDeserializer 를 사용하든 StringDeserializer 를 사용하든 역직렬화를 할 때 실패하게 되면 offset commit 이 되지 않고 재시도를 하는동안 해당 message 의 partition 은 blocking 된다고 이해하고 있는데 맞을까요? 이 경우에도 retry 이후, 해결 안되면 dlt topic 으로 이동하는게 맞을까요?

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

하나의 consumer에서 두가지 이상의 topic의 메세지를 받고자 할때 받는 메세지에 시간차와 상관없이 하나의 consumer에서 받을수 있나요?

미해결

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

하나의 consumer에서 두가지 이상의 topic의 메세지를 받고자 할때 받는 메세지에 시간차와 상관없이 하나의 consumer에서 받을수가 있는 건가요?

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

auto.create.topics.enable=false 설정

미해결

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

리서치를 하다보니 실무에서는 auto.create.topics.enable=false 설정을 사용하는게 좋다는 글을 많이 보게 되었습니다. 네이밍 컨벤션이나 예상치 못한 topic 의 생성 등을 방지하기 위함으로 이해했는데요. 그럼, xxx.dlt 와 같은 topic 들도 직접 생성을 해줘야 하는지 궁금합니다. 그리고, 실제로 실무에서 해당 설정을 많이 사용하는지 또한 궁금합니다 🙂

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

email 발송 로직 관련

미해결

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

consumer 쪽에서 이메일 발송 로직 대신 Thread.sleep(3000) 을 써주셨는데요. 이 말은, consumer 쓰레드 자체에서 이메일 보내는 로직을 실행한다고 가정해서 그런거라고 이해했습니다. 개인적으로 consumer 는 message 를 consume 만 하고, 실제 비즈니스 로직 (email send) 는 별개의 쓰레드로 async 하게 동작하는게 더 효율적이라고 생각이 되는데요. email 발송 로직을 별개의 쓰레드로 할 때와 현재처럼 consumer 쓰레드에서 할 때 차이점 및 주의해야할 점 (ex. offset 수동 커밋 등) 이 있을까요?

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

노트에 노션페이지 공유가 없습니다.

해결됨

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

설정값 복사해서 넣으려고 하는데, 물론 따라 칠 수야 있습니다만 모든 학습자에게 불편할 수 있으니 노션페이지 노트에 공유 부탁드립니다.

  • msa
아라레 댓글 2 좋아요 0 조회수 131

kafka 강의

미해결

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

kafka 강의 부터는 아직 최신 버전으로 영상이 업데이트 되지 않은거 같은데 혹시 올해 업데이트 될 예정일까요?? 업데이트가 된다면 이 후에 강의를 듣고 싶어서요!!

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

concurrency 설정 + 같은 groupId 내에 consumer 여러개

미해결

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

concurrency 관련하여 궁금한점이 있습니다. 하나의 topic (ex. email.send) 에 5개의 파티션이 있다고 가정. 같은 groupId 로 지정된 consumer 2 (A, B)개가 있고 각각 concurrency=3 으로 설정이 되어 있다고 가정 이런 경우, 같은 groupId 내의 컨슈머는 같은 partition 을 consume 할 수 없으니 1개의 thread 는 동작하지 않게 된다고 보면 될까요? A-1 thread ===> partition 1 A-2 thread ===> partition 2 A-3 thread ===> partition 3 B-1 thread ===> partition 4 B-2 thread ===> partition 5 B-3 thread (동작안함) ====> x 추가로 실무에서는 일반적으로 concurrency 옵션을 사용하는지 궁금합니다.

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

concurrency 동작 안됨

미해결

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

하나의 consumer 에서 concurrency 옵션을 통해 멀티 쓰레드로 동작이 되는지 테스트를 해봤는데 강좌화면에서처럼 consumer 가 멀티스레드로 동작하지 않는것 같습니다. partition : 3개 concurrency : 3 partitional.class: org.apache.kafka.clients.producer.RoundRobinPartitional 로그 : 로그를 봐서는 roundrobin 으로 설정을 했음에도 하나의 partition 으로 메시지가 들어가는것 같습니다. 그리고, consumer 도 하나의 스레드로 message 를 consume 하는것으로 보입니다. 2025-10-15T16:01:15.466+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-4","price":4000} 2025-10-15T16:01:17.473+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:17.474+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-8","price":8000} 2025-10-15T16:01:19.480+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:19.481+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-16","price":16000} 2025-10-15T16:01:21.485+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:21.486+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-15","price":15000} 2025-10-15T16:01:23.491+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:23.491+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-5","price":5000} 2025-10-15T16:01:25.494+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:25.495+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-18","price":18000} 2025-10-15T16:01:27.499+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:27.501+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-3","price":3000} 2025-10-15T16:01:29.510+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:29.510+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-9","price":9000} 2025-10-15T16:01:31.514+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:31.515+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-13","price":13000} 2025-10-15T16:01:33.522+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:33.522+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-1","price":1000} 2025-10-15T16:01:35.527+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:35.529+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-11","price":11000} 2025-10-15T16:01:37.532+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:37.532+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-19","price":19000} 2025-10-15T16:01:39.538+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:39.538+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-7","price":7000} 2025-10-15T16:01:41.539+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:41.539+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-6","price":6000} 2025-10-15T16:01:43.543+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:43.544+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-20","price":20000} 2025-10-15T16:01:45.554+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:45.555+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-10","price":10000} 2025-10-15T16:01:47.560+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:47.560+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-14","price":14000} 2025-10-15T16:01:49.566+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:49.566+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-17","price":17000} 2025-10-15T16:01:51.568+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:51.568+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-2","price":2000} 2025-10-15T16:01:53.575+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. 2025-10-15T16:01:53.577+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.OrderService : Received message {"name":"Product-12","price":12000} 2025-10-15T16:01:55.581+09:00 INFO 11736 --- [kafka-practice] [ntainer#0-2-C-1] c.w.kafkapractice.service.Refresher : Done processing order.. github 소스코드 : https://github.com/writer0713/kafka-practice/blob/4cee9e560b2459c4bcbb6b183f3791d70cddd3d1/src/main/kotlin/com/writer0713/kafkapractice/service/OrderService.kt#L34

  • kafka
  • EDA
  • msa
  • devops
  • infrastructure
writer0713 댓글 3 좋아요 0 조회수 138

MSA 아키텍쳐 프로젝트 구성 방식

미해결

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

안녕하세요 강사님 질문을 드리고 싶은 부분이 있는데요 MSA 아키텍쳐로 개발할 때 각각의 서비스 마다 단일 배포할 수 있다는 장점이 있다고 들었는데 그러면 MSA 아키텍쳐로 개발을 진행할 때 보여주신 것 처럼 하나의 큰 프로젝트 안에 각각의 마이크로 서비스를 넣어서 만드나요? (모노레포?) 혹은 각각의 마이크로 서비스를 독립적으로 만드는건가요? (폴리레포?) 만약 둘 다 사용한다면 주로 사용하는 방식은 어떤 방식인가요?

  • java
  • spring-cloud
  • 디자인-패턴
  • msa
  • patterns
SHYU 댓글 2 좋아요 0 조회수 172

Deployment-service 연결 과정에서 오류..?

해결됨

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

윈11에 docker desktop과 wsl 을 연동하여 쓰고 있습니다. 리눅스 명령어가 더 익숙해서.. 수업 내용대로 다 잘 따라했습니다. deployment, service, pod 모두 정상적으로 작동이 됩니다. 하지만 localhost:30000으로 접속시 연결 거부가 뜨고, kubectl port-forward service/spring-service 30000:8080 으로 직접적으로 포트 포워딩을 해준 후에야 localhost:30000이 접속이 됩니다. 어떻게 해야 포트 포워딩 작업 없이 바로 서비스에 접근 가능할까요..? 뭘 설정해야 하는지 모르겠습니다

  • docker
  • kubernetes
  • msa
  • infrastructure
  • container
  • 카카오공채-개발
성진 댓글 2 좋아요 0 조회수 227

서비스 디스커버리 종류

해결됨

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

유레카 외에 최근에 자주 사용되는 서비스 디스커버리는 어떤게 있을까요?

  • spring-boot
  • 아키텍처
  • spring-cloud
  • msa
민수킴 댓글 2 좋아요 0 조회수 132

마이크로서비스와 모듈러 아키텍처 선택 질문

미해결

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

db(db2, 오라클 등등)가 여러 종류로 나뉘어 서비스 중입니다. 무조건 마이크로 서비스 구조를 채택하는것이 좋을까요?

  • java
  • spring-cloud
  • 디자인-패턴
  • msa
  • patterns
하비하 댓글 2 좋아요 0 조회수 131

MSA 전환 시점

해결됨

시스템 디자인 첫걸음: 면접에서 돋보이는 백엔드 아키텍처 설계하기

안녕하세요! 덕분에 아키텍처에 대한 큰 그림을 그려보며 강의를 듣고 있습니다. MSA 전환 시점 관련해서 질문 드립니다. 모놀리식 아키텍처에서 MSA로 전환하는 적절한 시점은 어떤 기준으로 잡는게 좋을까요? 물론 상황마다 다르겠지만, 강사님은 어떤 기준을 가장 중요하게 생각하시는지 궁금합니다. 예를 들어, Scale-out 한계, 빌드&배포 시간 증가, 혹은 서비스 크기와 복잡성 같은 요소들.. 이 있을 것 같은데 제가 미처 생각 못한 부분이 있다면 덧붙여 답변 부탁드립니다. 감사합니다!

  • 아키텍처
  • 면접
  • backend
  • 소프트웨어-설계
  • 시스템-디자인
  • msa
오늘 ONEUL 댓글 2 좋아요 0 조회수 254

카프카에서 발행한 이벤트를 처리중에 실패한 경우 보통 어떻게 처리하는지 궁금합니다

해결됨

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

안녕하세요 강사님 카프카에서 컨슈머가 메시지를 읽은 후 처리 과정에서 실패했을 때 재처리 전략을 어떻게 잡으면 좋은지 궁금합니다. consume 이후 비즈니스 로직 실행중에 예외가 발생하여 실패한 경우 OOM 등의 이유로 서버가 비정상적으로 종료되어 실패한 경우 위의 두가지 상황에서 일반적으로 어떻게 처리하는지 궁금합니다.

  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • devops
김용철 댓글 2 좋아요 0 조회수 211

예시 코드 질문 드립니다

미해결

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

안녕하세요. 강의 잘 듣고 있습니다. 혹시 예시 코드 제공이 되나요?

  • msa
팔꿈 댓글 3 좋아요 0 조회수 177

분산 환경을 고민해야 하는 시점

해결됨

분산 데이터 모델링

안녕하세요! 시스템 개발 및 설계 과정에서 '대규모 시스템', '분산 환경', '분산 데이터 모델링'과 같은 개념들을 본격적으로 고려하고 도입해야 하는 시점은 언제일까요? 실무에서 경험해보지 못해서 '대규모' 라는 말이 막연해서 실무에서 어떤 것을 기준으로 고려하는지 혹은 지표 같은 것을 측정하는 방법이 있는지 궁금해서 질문 드립니다!

  • dbms/rdbms
  • msa
  • modeling
  • 소프트웨어-설계
  • 시스템-디자인
  • database-modeling
하양이 댓글 2 좋아요 0 조회수 123

Kafka 비동기방식 적용하면서 질문 있습니다!

미해결

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

안녕하세요. 강의 잘 듣고 있습니다! 강의 2개째 듣고 있는데 항상 초보자들이 이해하기 쉽게 잘 설명해주시는 것 같아요! 그리고 질문을 드리자면, 카프카 적용 전에는 다음과 같은 프로세스로 진행됐었죠. 그리고 동시에 3.활동 점수 부여에서 실패하면 1,2에 보상트랜잭션을 적용하는 saga패턴을 사용했었는데요. 포인트 차감 게시글 저장 활동 점수 부여 근데 카프카를 적용하면서, 만약에 3. 활동 점수 부여(=consumer) 에서 에러가 발생하면 producer쪽인 board-service에서는 이를 감지할 수 없기때문에, 기존에 작성했던 SAGA 패턴이 의도한대로 동작을 안할 것 같은데... 제가 이해한게 맞을까요? 카프카 이점을 도입하기위해 어쩔 수 없이 SAGA 패턴의 이점을 뒤로 미루도록 설계한 것인지가 궁금합니다! 제가 놓친부분이나 잘 못 이해한 부분이 있거든 답변 부탁드리겠습니다! 남은 연휴 잘 보내시길 바라겠습니다 감사합니다 😃

  • msa
  • kafka
엘릭 댓글 2 좋아요 0 조회수 141

현재에도 강의와 동일한 방식을 사용하고 계실지 궁금합니다.

미해결

Microservice 설계(with EventStorming,DDD)

우선 좋은 강의 정말 잘 들었습니다. 감사합니다. 그동안 파편화되어 있던 "어떻게 도메인을 분리하는가"에 대한 질문이 강의를 토대로 많이 깔끔해질 수 있었습니다. 말씀 주신 방식을 토대로 현재 신규 도입하고 있는 서비스를 이벤트 스토밍을 토대로 구체화해 보고 있는데요. 아무래도 강의가 제작되고 나서 시간이 좀 흐른 만큼, 현재에도 해당 방식을 토대로 설계를 해 가시고 계신지, 뭔가 더 좋은 방식이 추가되셨을지 궁금합니다!

  • 아키텍처
  • msa
  • ddd
kailis 댓글 2 좋아요 0 조회수 133

섹션 2 - 12강 강의 제목 관련 질문있습니다.

미해결

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

안녕하세요. 강의 재밌게 잘 듣고있습니다. 섹션 2 - 12 목차가 Modular Monolithic Architecture 소개로 되어있는데, 실제 강의 내용이 Layered Architecture 관련 내용인 것 같습니다. 목차 명이 의도하신 것이 맞는지 궁금해서 질문드립니다!

  • java
  • spring-cloud
  • 디자인-패턴
  • msa
  • patterns
캬오옹 댓글 1 좋아요 0 조회수 114

샤딩한 테이블에서 B Tree 인덱스를 사용하는 것

해결됨

분산 데이터 모델링

예시로 들었던 '게시판 별 게시글' 같은 인덱스 테이블에서 B Tree 인덱스를 사용하면 된다는 식으로 말씀하셨습니다. 근데 전통적인 RDBMS에는 샤딩 기능조차 존재하지 않는데, 분산된 데이터베이스에서도 테이블 수준의 B Tree 인덱스처럼 동작하는 것처럼 말씀하신 것 같아, 이것이 맞는지 문의 드립니다.

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

인기 태그

인프런 TOP Writers

주간 인기글