묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
게시글 목록 최적화 전략 구현 - 테스트 에서 오류가 발생합니다
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 거의 막바지에 이르러서 테스트 부분을 들으려 하고 있습니다테스트 부분에서 강의 코드와 같이 맞춰 보아도 에러가 발생하여 어떤 에러인지 감이 잘 잡히지 않아 질문드립니다.최하단에 에러 로그를 첨부합니다. 저장소의 완성 코드 파라미터대로 하면 성공하지만, 강의대로 하면 에러가 납니다이것은 저장소의 완성본 코드이고 @Test void readAllTest() { ArticleReadPageResponse response1 = articleReadRestClient.get() .uri("/v1/articles?boardId=%s&page=%s&pageSize=%s".formatted(1L, 3000L, 5)) .retrieve() .body(ArticleReadPageResponse.class); System.out.println("response1.getArticleCount() = " + response1.getArticleCount()); for (ArticleReadResponse article : response1.getArticles()) { System.out.println("article.getArticleId() = " + article.getArticleId()); } ArticleReadPageResponse response2 = articleRestClient.get() .uri("/v1/articles?boardId=%s&page=%s&pageSize=%s".formatted(1L, 3000L, 5)) .retrieve() .body(ArticleReadPageResponse.class); System.out.println("response2.getArticleCount() = " + response2.getArticleCount()); for (ArticleReadResponse article : response2.getArticles()) { System.out.println("article.getArticleId() = " + article.getArticleId()); } 이것은 에러가 발생하는 강의의 코드입니다.@Test void readAllTest(){ ArticleReadPageResponse response1 = articleReadRestClient.get() .uri("/v1/articles?boardId=%s&page=%s&pageSize=%s".formatted(1L, 1L, 5)) .retrieve() .body(ArticleReadPageResponse.class); System.out.println("response1 = " + response1); for (ArticleReadResponse article : response1.getArticles()) { System.out.println("article.getArticleId() = " + article.getArticleId()); } ArticleReadPageResponse response2 = articleRestClient.get() .uri("/v1/articles?boardId=%s&page=%s&pageSize=%s".formatted(1L, 1L, 5)) .retrieve() .body(ArticleReadPageResponse.class); System.out.println("response2 = " + response2); for (ArticleReadResponse article : response2.getArticles()) { System.out.println("article.getArticleId() = " + article.getArticleId()); } } 이것은 에러 로그입니다(본문 제한으로 부득이하게 이미지로 첨부합니다)
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 화면이 나오지 않고 소리만 납니다.
섹션1의 'Cloud Native Architecture', 'Cloud Native Application' 강의에서 영상이 나오지 않는데 원래 그런건가요? 아래처럼 까맣게 아무것도 안나오고 소리만 납니다.
-
미해결카프카 완벽 가이드 - ksqlDB
Table의 상태(Stateful) 관리 질문
안녕하세요.Table의 상태(Stateful) 관리 강의에서Table을 생성하고 동일 key 값으로 insert를 하고 나면 Push 쿼리로 재조회 하였을 때 동일 key값의 최신으로 가져온다고 하셨는데요.버전이 동일하지 않아서 그런건지 도커 환경이여서 그런건지는 모르겠지만, 동일 키값으로 insert를 하고 Push 쿼리로 조회하여도 모두 조회되는 현상은 어떤 이유일까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
ArticlePageResponse 클래스 질문
안녕하세요 강의 듣다가 문득 궁금한점이 생겨서 질문드립니다. ArticlePageResponse 클래스에 List<ArticleResponse> articles; 를 구성으로 하여 클래스를 생성해주셨는데ArtlcieResponse를 상속하여 만들어진 ArticlePageResponse를 활용하여도 상관 없을까요?? 자바, 스프링을 동시에 공부하고 있다보니.. 주니어의 허접한 질문에 답변해주시면 감사드리겠습니다..
-
미해결실습으로 배우는 선착순 이벤트 시스템
프로젝트 진행할때 모듈로 추가하는 이유가 궁금합니다!
프로젝트 처음 진행할때 보면, spring init에서 프로젝트를 만든 후 src파일을 삭제하고 대신 new Module로 api라는 디렉토리를 만들어서 진행하는데요.... 혹시 이렇게 하는 이유가 있나요??? 이런 방식은 처음봐서 질문 드립니다 !
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
카프카 컨슈머 구현 질문
카프카 스프링을 구현하실 때, @KafkaListener를 따로 안 사용하시는 이유가 있으신가요?https://inf.run/cuNfG
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
Comment 최상위 entity에서 parentCommentId를 자기 자신의 id를 두는 이유가 궁금합니다.
안녕하세요!강의 늘 잘 듣고 있습니다, 감사합니다.다름이 아니고, Comment 테이블 관련한 질문인데요.일전에 비슷한 경우를 보았는데, parentCommentId를 null로 둔걸 본 것 같습니다.(용량절약을 위한 목적이였다고 들었습니다)혹시 최상위 자신의 commentId로 parentComentId를 지정한 부분에 대해 궁금해서 글 올리게 되었습니다.감사합니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
Redis 활용하기 문제점 해결하기 부분이 이해가 잘 안됩니다...
위 도표를 보여주시면서 설명을 해주실때,10시 정각에 스레드 1이 쿠폰 발급 로직을 시작10시 2분에 완료가 된다면,스레드 2는 스레드 1의 작업이 모두 종료될때까지 기다렸다림.스레드 2는 10시 2분에 작업을 시작 이렇게 설명해주셨는데, 이게 잘 이해가 안됩니다... 제 생각에는 아래와 같이 10시에 동시에 처리되는 흐름이 되어야 할 것 같은데요... 즉, 스레드2는 쿠폰 생성 로직이 끝날 때까지 기다리지 않고,스레드 1이 쿠폰 발급 로직을 수행 중이라도 스레드 2는 곧바로 Redis 값을 받고 독립적으로 로직을 수행할 수 있을 것 같은데 아닌가요?? 레디스 자체는 싱슬스레드이니 레디스를 찌를때는 무조건 하나씩만 들어가겠지만 스레드 1은 레디스에 찌르고 값을 받아온 후 본인의 비즈니스 로직 수행할때 스레드2가 레디스 서버에 찌를 수는 없는건가요? 제가 이렇게 이해한 부분이 잘못된 것인지, 아니면 제가 강의 설명을 오해한 것인지 혼란스러워 질문을 드리게 되었습니다.
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
DDL문 정리되어 있는 파일 있을까요?
DDL문 정리되어 있는 파일 있을까요?복붙하면 편할 것 같아서요
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
java, kotlin
안녕하세요 좋은 강의 감사합니다.말씀주신 카프카의 중요 개념적인 것들 (컨슈머, 프로듀서 등등) 이 자바에 국한된 것이라고 하셨었잖아요.예를 들어 js 같은 것들은 third party 로 구분되기에 카프카의 모든 것들이 포함안될 수도 있다구요~!그렇다면 당연히 kotlin 도 java 랑 동일하다고 보면 되겠죠? 감사합니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
강의 인덱스 접근 관련 문의드립니다.
안녕하세요! 강사님 늘 강의 잘 듣고 있습니다.다름이 아니고 아래 사항에 대해 궁금한 부분이 있는데요. (아래 강의 20:16 시점입니다)https://inf.run/1668esecondary index -> clustered index로 limit 개수만큼 접근해주신다고 설명해주셨는데요 !where board_id = 1만 조건이 있어서 이미 어떤 row인지 세컨더리 인덱스에서 판단이 가능할 것 같은데, 클러스터 인덱스로 접근하게 되는 이유가 어떻게 되는걸까요?만약 where board_id = 1 AND writer_id = 1이 있다면 writer도 검증이 필요하기 때문에, 클러스터 인덱스 까지 가는 부분은 이해되기는 합니다만 board_id만 조건이 걸린 상태에서 클러스터 인덱스도 간다는 부분을 보고 이해가 잘 안되어서 문의드립니다 .. !
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
24시간 이내의 최신글 API 설계 관련 질문
쿠케님 안녕하세요!그간 안녕하셨는지요. 몇 주 놀다가 다시 반성하고 각성 모드로 강의 시청 하고 있습니다. Redis에 24시간 이내의 최신글을 저장하는거 까지는 이해했습니다!그렇다면 레디스에 저장한 최신글은 프론트에서 어떻게 활용할수 있는 걸까요?제가 생각한 아래 흐름이 맞는지 검토 부탁드립니다! 서버게시판 종류마다 24시간 이내의 최신글을 레디스에 저장게시판 종류와 데이터 개수를 request로 받는 최신글 API를 별도로 만듬 프론트사이트의 메인 페이지 일부 화면에 특정 게시판의 최신글을 뿌려주는 요구사항이 존재서버의 최신글 API를 호출하여 각 게시판 종류마다 최신글을 뿌려줌 감사합니다~!
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
테이블 설계관련 문의
안녕하세요.예전부터 목록 조회 관련 궁금한게 있었는데 어떻게 설계하는게 좋은지 몰라서 문의드립니다.강의의 예제처럼 하나의 테이블에 대해서 게시글 목록을 보여주는 기능들은 어떻게 해야하는지 잘 이해가 됩니다. 근데 보통 개발을 하다 보면 리스트를 보여주는 경우가 많잖아요.그런 ux들을 보면 3~4개 이상의 테이블을 join하고, 여러 테이블에 대한 필터링도 하고, 여러 테이블의 여러 컬럼에 대해서도 정렬까지 하고, 페이지네이션까지 해야 하는 경우가 많았던 것 같습니다.거기에 N:M구조를 join하는 경우가 있다면... 이런 기능들을 구현하려면 아무리 머리를 굴려도 full scan이 발생할 수 밖에 없을 거 같은데요.필터링이나 정렬이 각각 다른 테이블 기준으로 선택이 된다면 속도가 나올 수 없어 보입니다. 대책을 생각해보면그냥 원래 느리니까 db 성능을 믿고 그냥 join해서 보여줄수도 있고, 아니면 전체를 join 한 새로운 테이블을 만들기도 하는건지 궁금하네요. 근데 만약 새로운 테이블을 만들었더라도 N:M구조가 있었다면 또 1:N 구조가 여전히 남아있을테니 또 성능이 좋지 않을것이기에 생각이 많아지네요.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
@KafkaListener에 대해서
안녕하세요 강의 잘보고 있습니다.알아보니까 @KafkaListener가 비동기로 실행되는 줄 알았는데 동기로 실행이 되네요강의를 보면서 느낀점이 카프카로부터 구독할 때 비동기로 실행되어야 하지 않나싶은데 어떤지 알려주시면 감사합니다
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
와 이리 게시판이 조용하노
이 강의 느낌 왔습니다.찍먹이 아닌 부먹하겠습니다.평일 저녁, 주말이 심심하지 않겠다 ㅎㅎ(벚꽃 어디갔노)강의 찍어주셔서 감사합니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
Transactional Outbox 모듈 적용에서 빈이 실습과 다릅니다
안녕하세요다름이 아니라 application.yaml에서 설정값 모두 맞추고, gralde 빌드도 되었습니다그런데 ArticleApplication 실행하는 부분부터 강의와 다르게 정상실행이 되고, ArticleService에서 OutboxEventPublisher 빈을 못 찾고 있습니다outbox-message-relay 패키지 내 설정값 혹은 어노테이션 살펴봐도 감이 잘 오지 않습니다지식공유자님의 코드와 샅샅이 차이점을 찾으려 했으나, 차이는 메세지릴레이 부분 뿐이었습니다 위 빈 문제를 해결하기 위해서 어느 부분을 확인하면 될 지 여쭤보려 합니다
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
MSA 개발 배포 방식에 대한 선택과 방향성
안녕하세요! 강의를 마친 후, 여러 가지 궁금한 점이 생겼습니다.지금까지 로컬,및 도커에서 사용한 config-service, apigateway-service, discovery-service(유레카 서버) 의 역할이 Kubernetes 환경에서 대체될 수 있다는 것을 배웠습니다. 구체적으로는:유레카 대체: 각 Pod의 DNS 이름을 사용하여 서비스 간 통신API Gateway 대체: Ingress 리소스를 사용하여 외부 요청을 라우팅(강의엔 없음) Config 서버 대체: RabbitMQ를 통한 busrefresh로 설정 정보를 업데이트하는 대신, Kubernetes의 ConfigMap을 사용하여 설정을 동적으로 업데이트이렇게 Kubernetes에서 많은 기능을 간편하게 처리할 수 있다는 점에 대해 배우면서, 이전의 복잡한 서비스 구조가 생각보다 간단하게 대체될 수 있다는 점에서 약간 허무한 느낌도 듭니다.강의를 마친 후의 궁금증은, 실제 MSA 개발 시에 Kubernetes, Docker, AWS를 사용하는 다양한 배포 방식 중 어떤 선택을 해야 할지에 대한 부분입니다.EC2에 Docker 사용하여 배포EC2에 Kubernetes 사용하여 배포AWS의 EKS, ECS, API Gateway를 사용하는 방법 등 여러가지 방법이 있을텐데요 이와 같은 다양한 옵션 중에서 어떤 방식을 선택 해야하는지 공부의 방향성을 제시해주시면 감사하겠습니다.좋은 강의 감사합니다!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
마지막강의 k8s catalog 404 오류
serivce 오타네여
-
해결됨은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
기기 관련 질문입니다!
mac 어떤 스펙의 기기를 쓰고 계신지 궁금합니다!
-
해결됨커머스 서비스로 배우는 NestJS 실전 개발 (w. Prisma, Docker, Redis, Kafka)
섹션4 -> 5 넘어가는시점 강의 영상이 중간에 빠진건아니신지..?
섹션 5에 불필요한 코드정리에 대해서 영상도입부에 했다고하셨는데 그부분에 대한 영상은 빠져있는거같습니다