묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
access_token Db 저장건
휘발성이 강한 access_token 을 redis 에 저장하지 않고, 굳이 mysql 에 저장하는 이유가 있을까요??
-
미해결개발자라면 알아야 할 redis 기본
Redis Pub/Sub, Stream과 Kafka 비교 질문입니다.
안녕하세요.Redis에 관련하여 좋은 강의 감사합니다. Redis Pub/Sub과 Stream 기능의 큰 역할은 메시지를 발행하면 구독하고 있던 서버에 실시간으로 전달해주는 것으로 이해했습니다. 위 역할만 하는 것이면 아래 이유로 Redis에 비해 Kafka를 선택하는 것이 일반적이지 않을까 생각이 듭니다.속도적인 부분은 Redis가 메모리 위에서 동작하여 Kafka 보다 빠르지만 유저 입장에서는 거의 차이가 없을 것 같다.Kafka가 더 많은 자원을 요구하지만 확장성과 영속성, 안전성을 고려했을 때 이점이 있다. 위 생각에 대하여 피드백 부탁드립니다.
-
미해결실전에서 바로 써먹는 Kafka 입문
섹션7 51 컨슈머서버 무한 리로드?
이전에 컨슈머 서버 ( email-send-consumer ) 에서는 문제가없었는데마지막 email-service에서는2025-08-28T23:50:12.394+09:00 INFO 40252 --- [ner#0.dlt-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-29, groupId=email-service.dlt] Discovered group coordinator 13.209.11.23:9092 (id: 2147483646 rack: null)2025-08-28T23:50:12.394+09:00 INFO 40252 --- [ner#0.dlt-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-29, groupId=email-service.dlt] Request joining group due to: rebalance failed due to 'The coordinator is not available.' (CoordinatorNotAvailableException)2025-08-28T23:50:12.396+09:00 INFO 40252 --- [ner#0.dlt-2-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-31, groupId=email-service.dlt] Discovered group coordinator 13.209.11.23:9092 (id: 2147483646 rack: null)2025-08-28T23:50:12.396+09:00 INFO 40252 --- [ner#0.dlt-1-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-30, groupId=email-service.dlt] (Re-)joining group2025-08-28T23:50:12.396+09:00 INFO 40252 --- [ner#0.dlt-2-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-31, groupId=email-service.dlt] Request joining group due to: rebalance failed due to 'The coordinator is not available.' (CoordinatorNotAvailableException)2025-08-28T23:50:12.399+09:00 INFO 40252 --- [ner#0.dlt-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-29, groupId=email-service.dlt] (Re-)joining group2025-08-28T23:50:12.401+09:00 INFO 40252 --- [ner#0.dlt-2-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-31, groupId=email-service.dlt] (Re-)joining group2025-08-28T23:50:12.411+09:00 INFO 40252 --- [ner#0.dlt-1-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-30, groupId=email-service.dlt] Successfully joined group with generation Generation{generationId=261, memberId='consumer-email-service.dlt-30-5a032e9e-a903-4fb7-9004-487d74eb6c79', protocol='range'}2025-08-28T23:50:12.411+09:00 INFO 40252 --- [ner#0.dlt-2-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-31, groupId=email-service.dlt] Successfully joined group with generation Generation{generationId=261, memberId='consumer-email-service.dlt-31-0cdcda6c-6ddf-4e0b-980a-868f587ed2bd', protocol='range'}2025-08-28T23:50:12.411+09:00 INFO 40252 --- [ner#0.dlt-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-29, groupId=email-service.dlt] Successfully joined group with generation Generation{generationId=261, memberId='consumer-email-service.dlt-29-2b16177f-2cc3-44c0-b244-50109078218e', protocol='range'}2025-08-28T23:50:12.411+09:00 INFO 40252 --- [ner#0.dlt-1-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-email-service.dlt-30, groupId=email-service.dlt] Finished assignment for group at generation 261: {consumer-email-service.dlt-31-0cdcda6c-6ddf-4e0b-980a-868f587ed2bd=Assignment(partitions=[]), consumer-email-service.dlt-29-2b16177f-2cc3-44c0-b244-50109078218e=Assignment(partitions=[user.signed-up.dlt-0]), consumer-email-service.dlt-30-5a032e9e-a903-4fb7-9004-487d74eb6c79=Assignment(partitions=[])}...이런식으로 계속 로그가 반복됩니다프로듀서에 발행은 완료됐고 cli에서 메세지도 확인했는데컨슈머서버에서 저렇게 자꾸 정상적으로 작동을 하지않습니다 @Service public class UserSignedUpEventConsumer { private final EmailLogRepository emailLogRepository; public UserSignedUpEventConsumer(EmailLogRepository emailLogRepository) { this.emailLogRepository = emailLogRepository; } @KafkaListener( topics = "user.signed-up", groupId = "email-service", concurrency = "3" ) @RetryableTopic( attempts = "5", backoff = @Backoff(delay = 1000, multiplier = 2), // 1 초 2초 4초 8초 16초 5번 dltTopicSuffix = ".dlt" ) public void consume(String message) throws InterruptedException { UserSignedUpEvent userSignedUpEvent = UserSignedUpEvent.fromJson(message); // 실제 이메일 발송 로직 String receiverEmail = userSignedUpEvent.getEmail(); String subject = userSignedUpEvent.getName() + "님 회원가입 ㅊㅋ"; Thread.sleep(3000); System.out.println("메일 발송 완료"); // 이메일 발송 로그 저장 EmailLog emailLog = new EmailLog(userSignedUpEvent.getUserId(), receiverEmail, subject); emailLogRepository.save(emailLog); } 강사님 코드랑 이전 email-send-consumer 서비스 코드 및 야믈파일도 몇번 확인했는데 다른점이 없습니다 왜그런걸까요
-
미해결실전에서 바로 써먹는 Kafka 입문
섹션6 43 질문드립니다
안녕하세요, 강의 잘보고있습니다.프로듀서나 컨슈머서버 야믈파일에서 3개의 ip를 적고있는데만약 컨슈머 서버를 2대이상 돌렸을때 기준으로 각 서비스마다 ip를 똑같이 3개 적어야하는건가요? 아니면 1번 서버에서는 리더 노드ip 만2번 서버에서는 팔로워 파티션 노드 ip 만이런식으로 나눠서 적용하나요?또 저런식으로 서버가 나눠져있는경우 순차적으로 메세지 처리는 이전에 강의에서 언급한 하나의 파티션은 단 하나의 컨슈머에만 할당되고 컨슈머는 메세지를 순서대로 처리한다했는데 순서에는 상관이 없는걸까요? 추가로 그다음 섹션보다가 궁금한게현업에서도 라운드로빈방식을 대부분 사용하나요?실무기준에서 궁금합니다!
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 업데이트 계획이 궁금합니다.
현재 강의를 약 60% 정도 수강한 상태이며, 이제 강의가 아직 업데이트되지 않은 부분만 남아 있습니다.향후 강의 업데이트 일정이나 계획이 어떻게 되는지 알 수 있을까요?업데이트 계획에 따라 남은 강의를 수강하려고 합니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
MSA 아키텍쳐 DB관게
MSA 구조에서 DB는 FK로 묶여있지 않고 다 분리된 테이블일까요?아니라면 ERD 다이어그램도 추가해 주실 수 있으실까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
MSA 아키텍쳐 DB관게
MSA 구조에서 DB는 FK로 묶여있지 않고 다 분리된 테이블일까요?아니라면 ERD 다이어그램도 추가해 주실 수 있으실까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
gradle source sets가 없을때
안녕하세요 8강 강의에서 멀티모듈 구조 만드실때 각 서비스에 디렉토리를 추가하는 과정에서 new -> directory 클릭했을 때 강사님은 경로명 입력하는 칸 밑에 gradle source sets가 떠서 쉽게 src와 test디렉토리 등을 추가하셨는데 저는 뜨지 않습니다.. 왜 그런걸까요??
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
data class 관련 질문입니다
강사님 안녕하세요!강의를 듣다가 궁금한 부분이 있어서 질문드립니다. 다름이 아니라, 검색을 해보면 코틀린에서 Entity 정의 시, data class는 권장하지 않고 사용하지 말라는 글들도 나오는데 강의에서는 data class를 사용하셔서 조금 혼란이 오는데요 ㅠㅠ 혹시 실제 코틀린을 사용하는 회사들은 Entity를 정의할 때, 일반 class가 아닌 data class를 사용하나요?
-
해결됨가장 쉽고 깊게 알려주는 Kafka 완벽 가이드 [ By. 비전공자 & Kakao 개발자 ]
다이어그램 저장소 파일 오류
다이어그램 저장소 파일을 다운받고 압축해제 시 해당 오류가 발생하는데 파일이 문제인걸까요?
-
미해결Kafka & Spark 활용한 Realtime Datalake
Spark Programs 구조에서 막혔습니다.
강의를 잘 따라가던 도중에 4040 웹에 접속했는데 저렇게 떴는데 뭐가 문제일까요?
-
미해결Kafka & Spark 활용한 Realtime Datalake
kafka-broker01 ping 반응 없습니다.
kafka-broker01에 ssh로 접속하고 Ping을했는데 회신이 없이 그대로 멈춰있습니다.
-
미해결Kafka & Spark 활용한 Realtime Datalake
github actions 오류 문의 드립니다.
안녕하세요. git push 이후 actions 오류 발생 되어 문의 드립니다.Github 에서 AWS codeDeploy 오류 확인 됩니다.어떤 부분을 체크 해보는게 좋을까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
인기글 컨슈머 질문
안녕하세요 강의 잘 듣고 있습니다. 인기글 컨슈머 관련해서 궁금한 점이 있습니다. 컨슈머와 api가 동일한 hotarticle 모듈에 포함되어 있는데 api는 그대로 두고 컨슈머만 스케일아웃하고 싶을 수 있을 것 같은데, 이 경우 별도의 모듈로 분리하면 될까요? 아니면 더 좋은 방법이 있을까요? 감사합니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
좋아요 수 구현 PessimisticLock1 질문
안녕하세요 강사님 강의 잘 듣고 있습니다.아래 내용이 궁금하여 질문 드립니다. 질문:PessimisticLock1에서 주석 달아놓으신"트래픽이 몰리는 상황에서 유실될 수 있으니게시글 생성 시점에 미리 0으로 초기화해둘 수 있다"는 부분에서 어떤 이유로 데이터가 유실이 될 수 있는지 궁금한데 예시나 상황에 대해서 추가 설명해주실 수 있을까요?! 감사합니다.
-
미해결Kafka & Spark 활용한 Realtime Datalake
github Actions 실행 강의 따라가는도중 막혔습니다.
강의에서는 master.yml도 appspec.yml이랑 똑같던데 제 환경에서 똑같이 따라했는데 master.yml과 appspec.yml의 아이콘이 다르게 뜹니다.git status를 치면 수정함: .github/workflows/master.yml, 수정함: appspec.yml 이렇게 떠야하는데 저는 modified: appspec.yml 이거 하나만 뜹니다. 강사님과 똑같이 따라했습니다. 이전에 git add . 를 한 적이 없음git push를 한 후에 깃헙 Actions에 들어가보면 There are no workflow runs yet. 이라고 뜹니다. 강사님처럼 workflow run이 안 됩니다.뭐가 문제일까요? 강의랑 똑같이 따라갔는데제가 다르게 한 거는 카프카 브로커를 만들때, 인스턴스 유형을 public-nat: t3.micro,kafka-broker: t3.small로 한 거만 다릅니다.
-
미해결실전에서 바로 써먹는 Kafka 입문
kafka [37강의]
[1] 기존 Kafka 프로세스 확인 및 종료[2] 포트 사용 여부 확인[3] 깔끔하게 다시 시작bin/kafka-server-start.sh config/server.properties 같은 에러가 뜹니다.에러 원인을 확인하기가 힘드네요 ㅠ
-
미해결실전에서 바로 써먹는 Kafka 입문
섹션6. 36,37
섹션6. 36,37 강의를 실습하고 다음날 다시 bin/kafka-server-start.sh config/server.properties명령어 써서 실행시키려니까 이렇게 뜨고 실행이 안됩니다. 원인이 뭘까요?
-
미해결카프카 완벽 가이드 - 코어편
환불문의
혹시 예전에 구매하고 나중에 들어야지 했지만 하지만 해당 기술이 저에게 필요 없어지고인프런 규정상 이미 기간이 지나서 안된다고는 인지하고 있어그냥 냅뒀었습니다 . 하지만 금액이 금액인지라 혹시나 이와 관련하여 환불이 가능한지강사님에게 직접 문의드립니다. 감사합니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
Outbox와 OutBoxEvent 무엇이 다른 것인가요?
OutBoxEvent.class의 필드에 그대로 OutBox를 받으시던데 생성이유와 OutBox와 OutBoxEvent의 차이점이 궁금합니다