묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)
인사말안녕하세요. 질 높은 강의를 제공해주셔서 너무 감사하다는 말씀드립니다.아직 강의를 모두 본 것은 아니어서, 제가 질문드리고자 하는 내용이 강의에 포함이 되어있을지 모르겠습니다만.. 궁금한 내용을 질문드립니다. 질문많은 모놀리식 프로젝트에서는 Spring Web + Spring Data JPA를 의존성을 주입하고 개발을 하고 저 또한 이러한 방식의 개발을 경험해왔습니다. Spring Data JPA와 Spring Web은 동기방식으로 동작하게 되는데, MSA의 독립 모듈을 만들 때 해당 의존성들을 사용하는 것이 바람직한지 모르겠습니다.강의의 내용처럼 하나의 서비스는 독립적으로 구성된 수십개에서 수백개의 독립된 애플리케이션으로 동작을 하게 될 것인데요. 상황에 따라 다르기는 하겠지만 Spring Web과 Spring Data JPA를 사용하는 독립된 애플리케이션이 있게 된다면 이쪽에서 병목이 일어나 엄청난 성능 이슈가 발생할 것으로 생각이듭니다.이와 같은 고민을 갖고 GPT한테 물어보니 WebFlux와 R2DBC를 사용하여 모두 비동기적으로 만드는 것이 권장되는 사항이라고 하는데 이 답변이 맞을까요? MSA를 구성한다고 한들, 모놀리식보다 성능상 좋지가 않으면 MSA로 구축할 필요성이 없을 것인데, 제가 우려하는 성능상의 심각한 문제 / 병목현상을 예방하기 위한 설계를 어떻게 해야하는지 너무 궁금합니다. 추가적으로는 Speing web이나 Spring Data Jpa가 MSA에거 어느 점에 필요하게 됭까요? 성능 관점에서 도무지 필요성을 느끼지 못하고있습니다.질문이 너무 두서가 없는데... 질문 내용이 강사님께 잘 전달되었길 바랍니다..!
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
io.debezium.connector.mysql.MySqlConnector 질문
snapshot mode에 궁금한 점이 있습니다.MySqlConnector 중간에 에러가 발생하면 커넥터 기동이 멈추는데, (snapshot.mode = initial 일 때)delete했다가 다시 create를 진행하면 중복된 snapshot 데이터를 또 토픽에 적재하는지 궁금합니다.중복 저장된다면, 모두 삭제한 뒤 (토픽/히스토리토픽/커넥터) 다시 재생성해서 진행을 해야할까요?
-
미해결Kafka & Spark 활용한 Realtime Datalake
Kafka Cluster 서버 구축 시 Docker 사용
안녕하세요! 강의 정말 잘 듣고 있습니다! 수업에서 Kafka 클러스터를 구축할 때 EC2 인스턴스 4대를 사용하셨는데요. 혹시 도커 리눅스 컨테이너 4개를 띄워 학습 환경을 구성해도 Kafka 클러스터 실습이 가능할까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
어떤 것이 업데이트 된 건가요?
강의를 한 번 수강했던 수강생입니다.반년전 듣고 실습을 안해서 까먹어서 다시 들어볼려고 하는데 어떤 게 업데이트 된 건지 알 수 있을까요? 기존에 커리큘럼별 강의 제목은 같은데 업데이트 된 건가요? 아니면 새로 찍으신 강의가 별도로 올라와있는건가요?
-
미해결Kafka & Spark 활용한 Realtime Datalake
데이터레이크 구성요소 안나옵니다.
저도 데이터레이크 구성요소 영상 안나옵니다.소리는 나옵니다.위에도 있던데 어떻게 해결되었나요?다른영상은 나옵니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
spring_cloud_gateway_requests_seconds_count를 Execute시 다른 요청을 하지 않았음에도 오류 요청의 숫자가 계속 증가합니다.
spring_cloud_gateway_requests_seconds_count{httpMethod="GET", httpStatusCode="401", instance="localhost:8000", job="apigateway-service", outcome="CLIENT_ERROR", routeId="user-service", routeUri="lb://USER-SERVICE", status="UNAUTHORIZED"}22spring_cloud_gateway_requests_seconds_count{httpMethod="GET", httpStatusCode="404", instance="localhost:8000", job="apigateway-service", outcome="CLIENT_ERROR", routeId="order-service", routeUri="lb://ORDER-SERVICE", status="NOT_FOUND"}회원가입과 로그인만 하더라도 이러한 것들의 숫자가 올라가 총 요청 수 중 성공한 숫자가 매우 적습니다. chat gpt에서는 자동으로 health-check를 해서 그렇다라고는 하는데 정확히 어떤 것이 문제인지 잘 모르겠습니다.
-
미해결Kafka & Spark 활용한 Realtime Datalake
codedeploy 배포 실패
안녕하세요! 강사님강의 잘 듣고 있습니다.github actions 실행 부분에서 codedeploy부분이 실패했는데요... github actions에서 성공이 떴고 버킷 이름도 잘 바꿨으며kafka-server에 code-deploy가 있는 것도 확인했습니다. 혹시 뭔가 확인해봐야할 게 있을까요?
-
미해결[데브원영] 아파치 카프카 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) 마지막으로.. 강의가 너무 좋아서 다음강의가 기대가 되는데요, 혹시 비슷한 사이즈에 비슷한 볼륨일까요?또 이미 강의를 제작중이실 것 같은데, 캐싱과 관련된 부분이라고는 알고 있지만 조금 더 상세한 커리큘럼이나 개강일자가 궁금합니다 ㅎㅎ좋은 강의 감사합니다