묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[데브원영] 아파치 카프카 for beginners
MSA 환경에서의 카프카 공통 설정 관리
안녕하세요. 현재 카프카 도입을 고려하고 있는데, 데브원영님의 강의로 공부를 시작하고 있습니다. 강의가 정말 많은 도움이 됩니다. 감사합니다. 수강 중 MSA 환경에서 카프카 공통 설정을 어떻게 처리하는지 의문이 들어 여쭙는 질문입니다. MSA 환경에서 카프카를 사용한다면, 카프카 관련 설정 내용들을 각 서버에 넣어야 할 텐데요. 카프카 관련 설정들을 공통 모듈로 만들고 주입받는 형태로 진행한다면, 그 범위를 어디까지 해야 할지 궁금합니다. consumer/producer factory나 kafka template를 먼저 넣을 수 있을 것 같고, 다른 (dlq, retry 혹은 공통 사용하는 dto라든지) 설정들을 어디까지 공통화하면 좋을지 고민이 많습니다. 혹시 유사한 구조를 경헌하신 적이 있다면 어떻게 구성하셨는지 궁금합니다.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Sink Connect시 테이블 생성아 안됩니다
현재 my-sink-connect 등록도 잘되었고 아무 문제없이 작동을 잘 합니다. 또한 파워쉘을 통해서 데이터가 shema형태로 잘 통신되는 것도 확인 잘 되었습니다. 하지만 my_topic_users 테이블이 생성되지 않아 문제가 생겼습니다. 오류 메시지나 로그 또한 아무것도 나오지 않아 해결을 어떻게 할지 잘 모르겠습니다. PS C:\Work\kafka_2.12-3.4.0> .\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic my_topic_users --from-beginning{"schema":{"type":"struct","fields":[{"type":"int32","optional":false,"field":"id"},{"type":"string","optional":true,"field":"user_id"},{"type":"string","optional":true,"field":"pwd"},{"type":"string","optional":true,"field":"name"},{"type":"int64","optional":true,"name":"org.apache.kafka.connect.data.Timestamp","version":1,"field":"created_at"}],"optional":false,"name":"users"},"payload":{"id":1,"user_id":"user1","pwd":"1111","name":"userA","created_at":1753221466000}}{"schema":{"type":"struct","fields":[{"type":"int32","optional":false,"field":"id"},{"type":"string","optional":true,"field":"user_id"},{"type":"string","optional":true,"field":"pwd"},{"type":"string","optional":true,"field":"name"},{"type":"int64","optional":true,"name":"org.apache.kafka.connect.data.Timestamp","version":1,"field":"created_at"}],"optional":false,"name":"users"},"payload":{"id":2,"user_id":"user2","pwd":"2222","name":"userB","created_at":1753221589000}}mysql> use mydb;Database changedmysql> show tables;+----------------+| Tables_in_mydb |+----------------+| orders || users |+----------------+ { "name": "my-sink-connect", "config": { "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector", "delete.enabled": "false", "connection.password": "test1357", "auto.evolve": "true", "connection.user": "root", "tasks.max": "1", "topics": "my_topic_users", "value.converter.schemas.enable": "true", "name": "my-sink-connect", "auto.create": "true", "connection.url": "jdbc:mysql://localhost:3306/mydb" }, "tasks": [ { "connector": "my-sink-connect", "task": 0 } ], "type": "sink" }
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
좋아요가 없는 경우 init으로 최초 생성 시 질문
안녕하세요. 좋아요가 없는 경우 팩토리 메소드로 좋아요 객체를 생성하고 영속시키는 부분은 이해가 되었습니다. 그런데 비관적 락의 select for update 를 할 때 데이터가 없으면 row 도 없으니까 락이 안잡히지 않나요? row가 존재해야만 락이 생성되는게 아닌지 궁금합니다. 그리고 이 경우 신규 데이터를 생성할때 0으로 초기화 하고 1을 증가시켜 저장할 때 여러 요청이 있게 되면 다시 경쟁 상태에 놓이게 되는게 아닌가요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
커버링 인덱스 미사용
안녕하세요 강사님, 강의 정말 잘 듣고 있습니다!기존에는 항상 커버링 인덱스를 활용하셨었는데, comment_v2 인피니트 스크롤에서는 서브쿼리를 빼고 바로 전체 데이터를 조회하시더라구요.혹시 특별한 이유가 있을까요?커버링 인덱스를 일부러 포기한 구조인지, 아니면 path 기반 설계에서는 서브쿼리 자체가 필요 없어졌기 때문인지 궁금합니다.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Kafka connect 연결시 Mysql Access Denied 문제해결법
java.sql.SQLException: No suitable driver found for jdbc:h2:mem:testdbjava.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)현재 kafak connect 연결시 이런 오류가 뜹니다. order-service를 mariadb Driver로 설정했는데 왜 h2메모리방식의 드라이버를 찾는지 이유를 잘 모르겠으며 해결방법이 절실합니다. Kafka의 zookeeper, Kafka server는 현재 작동이 잘됩니다. 윈도우 사용자입니다. 도움이 절실합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Kafka connect 실행시 No suitable driver 해결이 안됩니다
현재 zookeeper, kafka server는 다 실행되고 topic list도 잘 나오는 상황입니다. 하지만 현재Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/mydb이 에러 때문에 진도를 못나가고 있는 상황입니다. 강의 그대로 했음에도 불구하고 어떤것이 문제인지 모르겠습니다. 제발 도와주세요
-
미해결Kafka & Spark 활용한 Realtime Datalake
CodeDeploy 사용시 registration 요구
안녕하세요! 정말로 좋은 강의 너무 잘 듣고 있습니다. 지금 AWS 세팅하는 섹션을 듣고 있는데요, github actions 세팅하는 부분에서 CodeDeploy를 이용하려고 하면 registration을 요구하는 페이지로 넘어갑니다 (사진 첨부). 근데 전 이미 registration을 다 끝냈습니다. complete your AWS registration 버튼 눌러도 AWS 홈 화면으로만 돌아가네요. 안내문을 보니깐 free plan을 써서 그런 것 같은데...플랜을 업그레이드 해야하는 걸까요..ㅠㅠ
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
조회수 어뷰징 방지 질문
안녕하세요~어뷰징 방지에 대한 질문을 드리고 싶습니다. 현재, 어뷰징 방지를 위해 분산락을 잡고 해당 유저가 특정 게시물에 대한 조회수를 10분 동안 1만 올릴 수 있도록 설계해주셨는데요.레디스의 키-벨류 로도 충분히 위와 같은 어뷰징 방지를 설계할 수 있지 않나요?SETNX (key=유저+게시글, value=1, TTL=10분) 만약 이 값이 이미 존재한다면 조회수를 올리지 않는 방식으로 구현해도 충분할 거 같은데, 분산락으로 이 로직을 구현하신 이유가 궁금합니다. 감사합니다!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
무한 depth 에서의 delete 재귀적 삭제
depth가 3이상인 댓글을 삭제했을 때 부모의 부모까지 삭제가 이루어져야 하는 경우가 있지 않나요?<삭제된 댓글> ---- depth 1 ㄴ <삭제된 댓글> ---- depth 2 ㄴ <삭제되지 않은 댓글> ---- depth 3 위 구조에서 depth 3의 댓글이 삭제되면 depth 1의 댓글도 삭제되어야 하지 않나요?현재 delete 함수의 로직은 그렇게 작성되지 않은 것으로 이해했는데, 제가 이해한게 맞는지 궁금합니다. 감사합니다!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
강의에서 count의 개념
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의에서 만든 count 함수의 count 개념은전체 게시글 수인 total count의 개념이 아니라 페이지의 번호를 위한 count인거죠?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
@Test create 메소드 실행시 500에러 발생
@Test create 메소드 실행시 500에러 발생하였습니다.(게시판에 올라와잇는 해결방법은 다 해봤는데 해결되지 않았습니다.) 강사님 소스코드 다운받고 돌려도 동일하게 발생합니다.. org.springframework.web.client.HttpServerErrorException$InternalServerError: 500 Internal Server Error: "{"timestamp":"2025-07-15T14:25:26.527+00:00","status":500,"error":"Internal Server Error","path":"/v1/articles"}"at org.springframework.web.client.HttpServerErrorException.create(HttpServerErrorException.java:102)at org.springframework.web.client.StatusHandler.lambda$defaultHandler$3(StatusHandler.java:89)at org.springframework.web.client.StatusHandler.handle(StatusHandler.java:146)at org.springframework.web.client.DefaultRestClient$DefaultResponseSpec.applyStatusHandlers(DefaultRestClient.java:698)at org.springframework.web.client.DefaultRestClient.readWithMessageConverters(DefaultRestClient.java:200)at org.springframework.web.client.DefaultRestClient$DefaultResponseSpec.readBody(DefaultRestClient.java:685)at org.springframework.web.client.DefaultRestClient$DefaultResponseSpec.body(DefaultRestClient.java:631)at kuke.board.article.ArticleApiTest.create(ArticleApiTest.java:27)at kuke.board.article.ArticleApiTest.createTest(ArticleApiTest.java:16)at java.base/java.lang.reflect.Method.invoke(Method.java:580)at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
-
미해결15일간의 빅데이터 파일럿 프로젝트
클라우데라 클러스터 설치로 안넘어가짐
무료판 고르고서 계속 누르면 저렇게 빈 창으로 로딩만 계속 되는데 해결 방법이 없을까요? 여러번 새로고침해도 똑같이 됩니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
인기글 설계에 대하여 질문드립니다.
안녕하세요? 강의 정말로 잘듣고 있습니다. 인프런에서 여러 강의를 수강했지만, 정말 질 좋은 강의라고 생각합니다 ㅎㅎ..인기글 설계에 대해 궁금한 부분이 있습니다. 1)저는 레디스의 sorted_set을 사용한다고 하셨을 때, 처음 떠올린 구조는 모든 게시글에 대한 점수를 기록하면서 자연스럽게 sorted_set에 의해 정렬되는 형태를 생각했었습니다.예를 들어 20250713에 게시글이 십만개가 생성되었다고 하면, 20250713 sorted_set에 십만개의 게시글에 대한 점수가 들어있고, 필요할 떄 상위 10개의 데이터를 추출하여 인기글로 선정하는 형태입니다.이렇게 하면 게시글과 연관된 데이터의 개수를 적재할 필요도 없다고 생각했고, sorted_set을 자연스럽게 활용하는 형태라고 생각했습니다. 이벤트를 수신하고나면, 적절하게 점수만 올려주면 된다고 생각하구요. 이렇게 하면 게시글과 관련된 데이터를 적재할 필요도 없을 것 같아서 나쁘지 않은 방법 같은데, 이 방법에 대해서 어떻게 생각하시는지 궁금합니다 2) 비슷한 맥락으로, 강의에서 보여주신 방향을 선택하신 이유도 좀 궁금합니다. 1)에서 제가 말씀드린 방안보다 선생님이 강의에서 말씀해주신 방향이 어떤 장점이 있는걸까요? 3) 마지막으로.. 강의가 너무 좋아서 다음강의가 기대가 되는데요, 혹시 비슷한 사이즈에 비슷한 볼륨일까요?또 이미 강의를 제작중이실 것 같은데, 캐싱과 관련된 부분이라고는 알고 있지만 조금 더 상세한 커리큘럼이나 개강일자가 궁금합니다 ㅎㅎ좋은 강의 감사합니다
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
인기글 e2e 테스트 관련해서 궁금합니다.
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 강의 3회차를 복습하면서 궁금한 점이 생겨 질문드립니다. 인기글 섹션 마지막에, 모든 서버와 컨테이너를 실행해둔 상태에서 테스트 코드로 직접 호출해 기능을 검증하셨는데요. 실무에서도 E2E 테스트나 시나리오 테스트를 이러한 방식으로 진행하는지 궁금합니다. 개인적으로는 서버와 컨테이너를 매번 띄우고 테스트하는 과정에서 실수할 여지도 있고, 관리도 어려워 보인다는 생각이 들었습니다. 모듈 내부의 단위 테스트나 통합 테스트는 직접 작성해봤지만, 인기글처럼 여러 모듈 간의 상호작용을 테스트해 본 적은 없어 실제 현업에서는 어떤 식으로 검증하는지 궁금해 질문드립니다. 미리 답변 감사드립니다!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
대규모 시스템에 관련하여 질문 있습니다.
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강의 잘 보고 있습니다. 복습하던 중에 궁금한 부분이 있어 질문을 남깁니다.현업에서 대규모 시스템을 만드는 경우에 헥사고날 아키텍처 + MSA를 사용한다는 것으로 알고 있는데, MVC 패턴이 아니라,헥사고날 아키텍처를 대규모 시스템에서 더 선호하고 사용하는 이유가 무엇인가요?? 추가적으로 이건 강의와는 관련이 없는데, 개인적인 질문이 있습니다.저는 자바 스프링 신입 개발자를 준비하고 있는 학생입니다.지금까지는 MVC 패턴만 사용하고, 모놀리틱 아키텍처를 사용해서 배포를 진행하고 프로젝트를 해왔습니다. 제가 알기로는 학습적으로나 포트폴리오적으로나 필요성을 느껴서 하는 공부가 제일 좋다고 들었습니다. 근데, 최근에는 어떤 필요성을 느끼지 못하면서 대규모 시스템 강의,헥사고날 아키텍처가 중요하다고 하니 강의 등을 듣고 있습니다. 왜냐하면, 본격적인 취업은 내년이고 시간이 좀 남았습니다. 그래서 해당 강의들을 들어두면 언젠가 개인 프로젝트나 현업에서 사용할 수 있지 않을까하고 듣고있습니다만, 제가 사용했던 MVC 패턴의 장단점 등 기본적인 것들도 알지 못하는 상태에서 계속 진도 나가듯이 이런 저런 강의를 듣고 하는게 괜찮을까요? 즉, 아직 기본도 잘 모르면서 계속 새로운 걸 배우는 과정들이 괜찮을까하는 걱정이 드네요. 하지만, 한편으로는 CS지식이 너무 방대해서 기초를 다 잡아두고 다음 단계로 넘어간다는 것도 솔직히 엄두가 안납니다. 그래서 우선은 쭉 이것저것 배워두고 나중에 필요하면 다시 찾아보면서 공부하면 되지 않을까 싶은데, 쿠케님은 어떤 방향이 더 괜찮다고 생각하시나요??
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
Debezium 이벤트 메시지 발행 시 성공여부
안녕하세요 Debezium source connector 부분을 공부하다가 궁금한 부분이 생겨서 질문드립니다! DB의 binlog 변경 사항을 감지해서 이벤트 메시지를 발행하는 부분에서, 여러가지 원인에 의해 에러가 발생하여 메시지가 유실되는 경우도 있을 것 같은데요.커넥트에 에러로그는 남겠지만, 재처리를 위해 SourceDB 또는 별도 로그성 테이블에 메시지발행에 대한 상태를 기록하고 싶을 경우, 커넥터로부터 메시지발행 성공에 대한 응답을 받을 수 있을까요?
-
미해결Kafka & Spark 활용한 Realtime Datalake
세션1 퀴즈 문제답변관련
먼저 강의 만들어 주셔서 감사합니다.첫번째 강의 퀴즈에 대한 문의입니다. 문제 중 데이터 웨어하우스와 비교할 때, 데이터 레이크의 주요 차이점 중 하나는 무엇일까요?라는 질문에 대한 정답이 '데이터를 저장할 때 스키마 적용 방식'으로 되어있습니다. 이것은 데이터 웨어하우스의 특징이 아닌가요?해설에는 제대로 되어있는데... 정답이 되려면 '데이터를 읽을 때 스키마 적용 방식'이 되어야 할 것 같습니다.아니면 데이터 접근 권한 관리의 엄격성이 정답아닌가요? 전사의 모든 데이터가 모여있는데 웨어하우스는 처음부터 접근할 수 있는 사람들이 정해져 있지만, 레이크는 다양한 계층의 사용자에게 오픈되어 있어 권한 관리가 더 필요할 것이라 생각됩니다.
-
해결됨15일간의 빅데이터 파일럿 프로젝트
버추어박스 5.0 설치
강의에서 버추어박스는 다른 것과 달리 올드버전을 해야 문제 없다고 하여 영상 그대로 5.0버전 설치했는데너무 예전 버전이라 그런지 아예 윈도우에서 실행이 안되게 되어있습니다. 이러면 아예 최신 버전으로 설치해도 무방한가요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
수강중에 궁금한것이 생겨 질문드립니다.
안녕하세요 좋은강의 감사드립니다. 제 주변도 사서 듣는다고 합니다.예전에 완강해놓고 관련프로젝트를 하다 궁금한점이 생겼습니다. 이런식으로 분리된 구조라면, 유저 정보는 어떻게 가져오는건가요??예를들어서 게시판이면, 거기에 들어가면 게시글들이나 댓글들 뿐만 아니라 유저의 닉네임이라던가, 유저가 설정한 대표이미지 라던가 등등 유저정보에 관한것들도 같이 뷰 렌더링을 위해선 필요한 정보들일텐데 유저와 관련된 서비스도 뭔가 따로 분리가 되어있을것 같은데 이때 유저 정보들은 어떻게 같이 가져오는지 궁금합니다.디비도 다 따로 사용할텐데 연관관계매핑도 아닐테고...모르겠네요
-
미해결Kafka & Spark 활용한 Realtime Datalake
subnet이 a~c까지만 있어요
kafka-broker03을 2d에 생성하고 싶은데, ap-southeast에 2a~2c까지만 있으면 2d는 수동으로 생성해야 하나요?