묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결카프카 완벽 가이드 - 코어편
카프카 학습과 관련하여 질문 드립니다
최근 카프카 버전에저는 zookeeper 가 아닌 KRaft 를 사용하는 것으로 바뀌는 등 몇가지 차이점이 있는데 강의 내용으로 학습한 후 변화된 버전에 맞춰서 변경할 때 러닝커브가 어느 정도가 될지 궁금합니다
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
카프카 학습에 관한 질문
강사님 안녕하세요, 강의 잘 듣고 있습니다.카프카의 성능과 안정성을 확보하기 위한 다양한 기법과 설정에 대해서 강의에서는 해당 부분이 깊이 다루어지지 않아, 이후에는 수강생이 스스로 학습해야 한다고 하셨는데요.현재 현업에서는 카프카를 직접 사용하지 않고 있어 개인적으로 학습이 필요한 상황입니다.추천하실 만한 도서나 강의, 혹은 효과적인 학습 방법이 있을지 궁금합니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
완강 후 학습 방향에 대한 질문
쿠케님 안녕하세요!우선 좋은 강의 제작해주셔서 정말 감사합니다. 강의 들으면서 대규모 시스템을 설계할 때는 어느 것을 신경써야 하고, 또 주의해야 하는지 많은 인사이트를 얻고 있어요. 추석 연휴 동안 제 나름대로 열심히 들어서 이제 한 개 섹션만 남았는데, 완강을 한 뒤에 강의에서 얻은 것들을 토대로 대규모 트래픽을 가정한 서비스를 설계하고, 개발해보려고 합니다. 강의로만 듣고 넘기기에는 아까운 내용들이 많아서 확실하게 제 것으로 만들어야겠다 싶더라고요. 일하면서 써먹으면 더없이 좋겠지만 아쉽게도 그럴 환경은 안 되어서요.. ㅎㅎ 그래서 나름대로 구상을 해보면서 강의를 듣고 있는데, 문득 강의에서 다룬 아키텍처와 기술을 한 번에 다 도입하는 건 오히려 학습 효율을 떨어뜨리는 선택이 아닐까 싶은 생각이 들어서요. 실무에서 Redis 정도는 사용해봤지만, 분산 데이터베이스나 MSA도, Kafka나 CQRS도 이 강의에서 처음 사용해봤습니다. 개념은 대충 주워 듣긴 했지만, 제대로 공부해본 적도 없고요. 결론적으로 하나씩 해보는 게 낫겠다 싶은데, 강의에서 다룬 내용 중 어느 것을 먼저 학습하는 게 좋을지 쿠케님께 조언을 구하고 싶어요. 물론 정답이 없는 문제지만, 지금 당장 제가 일하는 환경에서는 써먹을 일이 별로 없는 내용들이다 보니 무엇을 먼저 하는 게 좋을지 선택하기가 어렵네요. 감사합니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
Kafka 대신 Redis Pub/Sub을 사용할 수도 있을까요?
안녕하세요, 강사님!Kafka 관련 강의를 듣다가 기술 선택의 기준에 대해 궁금한 점이 생겨 질문드립니다. 현재 강의에서 Kafka를 이벤트 브로커(Event Broker)로 사용하고 계신데,Redis의 Pub/Sub 또는 Redis Streams 기능을 이용하면비슷한 형태로 서비스 간 메시지 전달을 구현할 수도 있을 것 같다는 생각이 들었습니다. 그래서 아래 두 가지 부분이 궁금합니다 Kafka를 선택하신 이유 또는 기준이 무엇인지 예: 처리량, 확장성, 영속성, 장애 복구 등 기술적 관점에서 어떤 요소가 결정적이었는지혹은 실제 서비스 환경에서 Redis 기반 메시징을 사용했을 때의 한계가 있었는지도 궁금합니다. 이벤트 브로커(Event Broker)와 메시지 브로커(Message Broker)의 개념적 차이 두 용어가 거의 비슷하게 사용되는 경우도 많은데,Kafka가 ‘이벤트 브로커’로 분류되는 이유가 무엇인지 알고 싶습니다.실제로 시스템 설계 시, 어떤 기준으로 두 개념을 구분하고 선택하시는지도 궁금합니다. 제가 이해하기로는 Redis는 단순한 메시지 전달 중심,Kafka는 이벤트 스트리밍 및 데이터 파이프라인 중심으로 알고 있는데,이 부분이 맞는 방향인지도 확인해보고 싶습니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
최적화 순서
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.강사님, 최적화를 진행할 때 보통 어떤 순서로 고민하시나요?예를 들어 트래픽이 몰릴 때 먼저 어디를 확인하고, 어떤 기준으로 개선 방향을 정하시는지가 궁금합니다.
-
미해결카프카 완벽 가이드 - 코어편
파티션 증가시 비용 증가 고려
성능에 비해 용량 증가가 저렴하기때문에 파티션 증가가 극단적이지만 않다면 항상 유리할까요?파티션을 증가시키면 토픽을 재성성하지 않으면 다시 줄일수 없는 것으로 이해했습니다.그런데 실무에서 성능과 비용 문제 트레이드오프를 고려해야할지 궁금합니다.
-
미해결카프카 완벽 가이드 - 코어편
Kafka 초기 Partition 개수 설정 관련 질문
좋은 강의를 제공해주셔서 감사합니다.Kafka를 처음 설정할 때 Partition 개수를 1개로 두고 추후 확장하는 방식이 일반적인가요?아니면 초기에 적절한 Partition 개수를 여유롭게 미리 설정하는 것이 좋을까요?또한, 이러한 설정은 멀티 노드 Kafka 클러스터 구성 여부에 따라 달라질 수 있는지도 궁금합니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
무한 뎁스 댓글 테스트 데이터 삽입 질문
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.2뎁스 댓글 목록의 테스트 데이터 삽입 시에는 계층 구조까지 파악할 수 있게끔 작성이 되었는데무한 뎁스 댓글의 테스트 데이터 삽입은 계층 구조로 생성하지 않으신 이유가 궁금합니다!
-
해결됨비전공자도 이해할 수 있는 MSA 입문/실전 (feat. Spring Boot)
카프카에서 발행한 이벤트를 처리중에 실패한 경우 보통 어떻게 처리하는지 궁금합니다
안녕하세요 강사님 카프카에서 컨슈머가 메시지를 읽은 후 처리 과정에서 실패했을 때 재처리 전략을 어떻게 잡으면 좋은지 궁금합니다.consume 이후 비즈니스 로직 실행중에 예외가 발생하여 실패한 경우OOM 등의 이유로 서버가 비정상적으로 종료되어 실패한 경우위의 두가지 상황에서 일반적으로 어떻게 처리하는지 궁금합니다.
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
Kotlin data class 엔티티에서 copy로 수정 후 save하는 이유가 있을까요?
data class로 엔티티를 정의해서 copy로 변경 후 save하는 방식을 사용하셨는데, 일반적으로는 JPA의 더티 체킹을 이용해 변경 감지를 활용하는 경우가 많습니다.혹시 copy 방식을 사용하신 게 의도하신 설계 방향일까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
게시글 정보와 게시글 조회수 동시에 필요한 API 조회 질문
현재처럼 서비스 구조가 거의 테이블 단위로 DB와 API 서비스가 분리될 때,이런 구조에서 화면에서 리스트 형태로 두 도메인 데이터를 함께 조회해야 하는 경우가 있을 것 같습니다.예를 들자면 게시글과 게시글 조회 수를 함께 보여주는 리스트 API가 필요한 상황에서,단건 조회라면 프론트에서 별도로 API를 호출해도 괜찮을 것 같은데,페이징 처리나 리스트 형태로 여러 데이터를 묶어서 조회해야 할 때,실무에서는 보통한 서비스에서 다른 서비스를 RestClient(Feign 등) 로 호출해서 데이터를 합치는 방식으로 처리하는지,아니면, 같은 도메인 서비스로 묶어버린다던지아니면 프론트엔드에서 각각의 API를 호출한 뒤 병합하는 방식으로 처리하는지궁금합니다.실제 현업에서는 이런 경우 어떤 접근 방식을 주로 사용하나요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
실제 실무에서도 이런식으로 쿼리를 작성하는지 궁금합니다!
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요.향로님의 추석 챌리지에서 우연히 제목을 보고 바로 구매했는데 아직 완강하지는 못했지만 정말 좋은 강의 같습니다!선배 개발자님이 개발하시는 느낌으로 보고있습니다! ㅎㅎ궁금한 점은 혹시 실무에서도 이런식으로 서브쿼리를 이용해서 대규모 데이터에 대해서 처리를 하는지가 궁금해져서 질문 남겨봅니다!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
Path Enumeration 방식 적용 후 redis 적용 방법 관련 질문
안녕하세요 강사님.강의에서 Path Enumeration 방식을 활용해 데이터베이스 조회 성능을 최적화하는 방법을 매우 유익하게 배웠습니다.실제 대규모 서비스 환경에서 이 조회 결과를 Redis로 캐싱하려고 할 때, 캐시를 저장하는 자료구조 선택에 대해 강사님의 의견을 듣고 싶습니다.현재는 Path를 기반으로 DB에서 계층 구조를 유지하며 정렬된 댓글 목록을 조회하고 있습니다. 이 결과를 Redis에 저장하는 방법으로 아래 두 가지를 고려하고 있습니다.1. List 구조 (LRANGE)장점: DB에서 조회한 정렬 순서를 그대로 Redis에 저장할 수 있어, 조회 시 한 번에 가져올 수 있습니다.고민: CUD(특히 중간 삽입) 발생 시 전체 List를 삭제하고 DB에서 다시 조회해 재저장해야 하므로 비효율적일 수 있습니다.2. Sorted Set 구조 (ZADD)장점: 각 댓글을 멤버로 저장하고 Path 값이나 정렬 기준을 score로 부여하면, CUD 발생 시 해당 멤버만 ADD/REMOVE로 처리할 수 있어 갱신이 효율적입니다.고민: Path 기반의 정렬 값을 Redis의 score로 매핑하는 과정이 다소 복잡합니다.이처럼 캐싱 로직의 구현 복잡도(Sorted Set)와 갱신 효율성(List의 TTL 전략) 사이의 균형을 고려할 때,강사님께서는 무한 depth 댓글 구조를 캐싱할 때 어떤 Redis 자료구조가 더 적합하다고 생각하시는지 궁금합니다.감사합니다.
-
해결됨가장 쉽고 깊게 알려주는 Kafka 완벽 가이드 [ By. 비전공자 & Kakao 개발자 ]
OutBox 패턴에 대한 질문입니다.
안녕하세요 ! 강의 잘 듣고 있습니다.최근 OutBox 패턴을 사용해보려고 시도중입니다 !CDC도구를 사용하지않고 어플리케이션에서 폴링을 구현한다고 하였을 때 폴링전용 어플리케이션을 따로 두어야 하는지 궁금합니다.ex) 주문서버에서 DB에 저장 -> 폴링 서버에서 DB에 저장된 이벤트를 폴링으로 조회 후 메시지 발행이렇게 생각한 이유는 주문서버에 폴링을 구현한다면 스케일 아웃 상황에서 폴링 로직도 저절로 스케일아웃되기때문입니다.여러개의 폴링 로직이 같이 돌아가면 데이터가 꼬일 수도 있지 않을까 합니다.어플리케이션 폴링구조의 outbox 패턴 구현에 대한 정석이 있는지 궁금합니다.
-
해결됨가장 쉽고 깊게 알려주는 Kafka 완벽 가이드 [ By. 비전공자 & Kakao 개발자 ]
kafka 컨슘은 실시간 인가요?
실시간 이라면 stream하고 어떻게 차이가 나는걸까요?
-
해결됨가장 쉽고 깊게 알려주는 Kafka 완벽 가이드 [ By. 비전공자 & Kakao 개발자 ]
메세지 저장 관련 질문입니다
카프카 메시지 저장 방식에 대한 질문카프카에 대해서 잘 알지 못할때 카프카에 메시지가 저장되어 편리하다는 이야기를 들었습니다. 그래서 AWS SQS에서 카프카로 전환하면 별도의 메시지 저장소가 필요 없을 것 같았는데, 강의를 들어보니 장기 보관이 필요하면 결국 따로 저장해야 하는 것 같더라고요.질문:장기 보관이 필요한 메시지는 별도 저장소(DB, S3 등)에 저장하시나요?카프카 자체 저장만으로 충분한 경우와 별도 저장이 필요한 경우를 어떻게 구분하시나요?
-
해결됨카카오 개발자(면접관)와 함께하는 워크플로우 기반의 대용량 트래픽 처리 기법
전체적인 플로우에 대해 질문드립니다.
이론 부분을 제가 이해를 잘 못해서 질문드리는 것 같은데요,Kafka와 Debezium 까지의 전반적인 그림은 그려지는데temporal(acitivity나 workFlow클래스 등) 까지 합쳐졌을 때의 플로우가 잘 이해가 가지 않는데구상하신 아키텍처를 모두 합친 플로우가 궁금합니다!
-
해결됨카카오 개발자(면접관)와 함께하는 워크플로우 기반의 대용량 트래픽 처리 기법
Temporal에 대해서 더 알고 싶어요.
교육을 듣다보니 Temporal에 대해서 더 알고 싶은데Temporal 공식 사이트는 너무 방대하고, 사용법 위주로 설명되어 있어서, 혹시 내부 아키텍처 같은 내용을 참고할 수 있는 자료가 있을까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
sharding의 기준, shard key 사용에 대해
대부분 하나의 DB만을 사용하다보니 shard key가 고려되지 않은 테이블 설계를 보고 많이 사용했는데 처음부터 shard key는 고려하면서 설계를 하는것이 좋을까요?저같은 경우처럼 shard key가 고려되지 않은 테이블에서 샤딩을 하기위해서 shard key를 추가하는 작업은 어느정도의 난이도가 있을까요?강사님이 생각하시는 데이터베이스 샤딩을 위한 기준같은게 있으신지 궁금합니다.
-
미해결장애를 허용하는 견고한 시스템 만들기
안녕하세요. 타임아웃 시간에 관하여 질문있습니다.
제가 아직 신입이다 보니 타임아웃에 대하여 어떻게 테스트하고 어떻게 결정을 하지에 관하여 터득하지 못하여서실무에서는 어떤식으로사용하나 궁금합니다감사합니다