inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

실무에서 Primary Key 생성 전략 질문 있습니다.

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

Primary Key 생성 전략에서 많은 것들을 알기 쉽게 설명해주셔서 감사합니다 🙂 제가 개인적으로 생각하는 가장 베스트 방법 2가지만 설명 드리도록 하겠습니다. Primary Key 값을 Snowflake 알고리즘으로 해결 장점 인덱스 탐색에 있어서 정렬된 순서로 차례대로 저장 하다보니 범위 검색에 있어서 장점이 될 수 있다. 단점 Secondary Index 생성시 각각 Leaf Node 에 PK 값 (포인터) 를 가지고 있다보니 아무래도 생성된 Snowflake 알고리즘 값은 길이가 길어서 인덱스 저장용량이 증가 될 수 있다. PK 생성 전략을 Auto_Increment 로 하고 샤딩키(article_id) 값을 Snowflake 알고리즘으로 설정 해서 저장 한다. (단 client 에게는 PK 값 대신 article_id 으로 노출 한다.) 장점 Secondary Index 생성시 각각 Leaf Node 에 PK 값 (포인터) 값이 용량이 작아 인덱스 저장 용량 부담이 없다. 인덱스 탐색에 있어서 정렬된 순서로 차례대로 저장 하다보니 범위 검색에 있어서 장점이 될 수 있다. 단점 client 으로 부터 요청시 샤딩키(article_id) 값으로 데이터 조회를 해야 하기 떄문에 Secondary Index -> Clustered_Index 까지 두번 인덱스 트리를 탐색 해야 하는 단점이 있다. 일단 이렇게 각각의 장단점을 설명 드렸습니다. 여기서 제가 궁금한것은 실무에서 데이터베이스 테이블 설계시 이 두가지 방법 중 하나를 선택 하는데 있어서 각각 어떤 경우에 적합한지 판단 내리기가 힘든 부분이 있습니다. 각각 케이스 마다 장단점을 알고 있지만 아무래도 자세하게 수치화 된 지표 가 없어 선택하는데 있어서 어려움이 있는데요. 선생님 경우는 실무에서 이 두가지 중 선택시 어떤 경우에 적절하게 판단 하시는지 노하우를 알려주시면 정말 감사 하겠습니다 🙂

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
리나 댓글 2 좋아요 0 조회수 370

멀티 모듈 방식 질문입니다.

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

안녕하세요 강의 잘 듣고 있습니다. 현재 게시글 조회수 부분 보고있는데요 헷갈리는게 있습니다. 멀티 모듈 방식 이라 aricle과 view 모듈이 나눠져 있는데요 현재는 게시글 조회 api와 게시글 조회수 증가 api가 나뉘어져 있는거같은데요 프론트에서 게시글 조회 시 이 2개의 api를 사용하는 걸까요? 게시글 조회 api에서 게시글 조회 -> redis 조회수 1 증가 이렇게 하나의 api가 아니라 실무에서도 api를 나누는 방식으로 진행하는걸까요?

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
qheogus55 댓글 2 좋아요 2 조회수 343

강의자료 파워포인트 기준 361~362 페이지를 보면

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

이렇게 나타나고 있는데요. path > '00a0z' 아닌가요??

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
리나 댓글 1 좋아요 1 조회수 133

ArticleRepository의 네이티브 쿼리부분 질문드립니다...

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

안녕하세요~~ 강의 너무 잘 듣고 있는 1인입니다. 다름이 아니라 네이티브 쿼리 작성 부분에서 에러가 나는데 이게 이곳저곳 찾아봐도 해결이 안돼서요ㅠㅠ 자꾸 아래 부분에서 에러가 납니다... 참고로 툴은 vscode로 spring extension받아서 사용중입니다... LIMIT :limit OFFSET :offset " @Query( value = "SELECT article.article_id, article.title, article.content, article.board_id, article.writer_id, " + "article.created_at, article.modified_at " + "FROM ( " + " SELECT article_id " + " FROM article " + " WHERE board_id = :boardId " + " ORDER BY article_id DESC " + " LIMIT :limit OFFSET :offset " + ") t " + "LEFT JOIN article ON t.article_id = article.article_id", nativeQuery = true ) List<Article> findAll( @Param("boardId") Long boardId, @Param("offset") Long offset, @Param("limit") Long limit );

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
janggoni 댓글 3 좋아요 0 조회수 353

Selet All 쿼리에서 반복적으로 Clustered Index 탐색 하는지 궁금 합니다.

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

select * from article where board_id = 1 order by article_id desc limit 30 offset 1499970; 해당 SQL 문을 실행하면 선생님이 설명 해주신 것 처럼 먼저 Secondary Index 에서 offset 0 부터 탐색이 일어나는데요. Secondary Index 에서 offset 0 조회 한 다음 Clustered Index 에서 데이터를 찾는다고 해주셨습니다. 이러한 과정을 offset 1499999 까지 반복 과정이 발생 하는데 왜 Secondary Index 에서 탐색 후 Clustered Index 에 데이터를 찾는 과정이 필요한지 궁금 합니다. 그러니깐 Secondary Index 에서만 일단 1499999 번 탐색한 다음에 Clustered Index 을 통해 그 외 데이터 (select *) 을 가져오면 되는것이 아닌가요? 제가 아직 인덱스에 대한 지식이 부족해 이런 질문을 한건데요ㅠ 다시 정리해서 질문 드리자면 왜 Secondary Index 을 통해 offset 순번 1499999 까지 도착 하지 않았는데 불필요하게 Clustered Index 까지 탐색하는가 입니다!

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
리나 댓글 2 좋아요 1 조회수 427

게시글 CRUD API 구현 10:39에서 에러 발생

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

현재 ArticleApplication.java를 실행하면 다음과 같은 에러가 발생하고 있습니다. 동작에는 문제가 없어서 후에 나오는 ArticleApiTest를 작성하고 실행을 해보니, 비밀번호와 아이디가 일치하지 않는다는 에러가 나오고 있습니다. 하지만 저는 docker exec -it kuke-board-mysql bash mysql -u root -p root(비밀번호)로 구성되어 있으며 application.yml 또한 아래 처럼 구성되어 있습니다. server: port: 9000 spring: application: name: kuke-board-article-service datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://locahost:3306/article username: root password: root jpa: database-platform: org.hibernate.dialect.MySQLDialect open-in-view: false show-sql: true hibernate: ddl-auto: none 그래서 gpt에게 물어본 결과 mysql plugin 문제일 수 있다고 해서 아래와 같이 변경까지 해봤습니다. 하지만 그럼에도 에러는 해결되지 않고 계속해서 이런 에러가 나와 질문드립니다.

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
송재근 댓글 3 좋아요 0 조회수 372

value 에 gson.toJson 사용 관련

해결됨

[실습] 대기업 근무하며 경험한 Redis를 야무지게 사용하기

value 에 대해서 모두 gson.toJson 을 통해 직렬화를 해서 저장하고 있는데요. 이건 value 가 json 이 들어간다고 가정하고 이렇게 작성하신걸까요? 일반적인 경우에는 json 이 아닌 경우도 있을것 같아서 여쭤봅니다.

  • spring
  • redis
  • redisinsights
  • cache
writer0713 댓글 1 좋아요 1 조회수 143

하둡, 주키퍼 등 설치 중 데이터베이스

미해결

15일간의 빅데이터 파일럿 프로젝트

이 화면이 나오지 않고 지나갑니다. 데이터베이스 따로 설정해야하나요??

  • 빅데이터
  • hadoop
  • kafka
  • zookeeper
  • redis
  • flume
  • impala
  • 데이터-엔지니어링
김유경 댓글 2 좋아요 0 조회수 84

k6의 결과 해석

미해결

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

안녕하세요. 강의에서 k6를 실행하기 위해 30명의 가상유저가 10초동안 요청을 무한히 보내도록 설정하셨습니다. 그 결과 http_reqs 값이 1.66/s 가 나왔습니다. 이 값은 시스템의 대역폭 max값으로 이해해도 되나요? 30명, 10초 설정값이 아니더라도 100명, 10초 설정값으로 진행해도 1.66/s 에 근사한 값이 나와야하는지 궁금합니다. (시스템이 처리할 수 있는 능력 의 Maximum은 항상 일정해야하지 않을까 라는 생각에 질문드립니다.)

  • redis
  • nosql
  • query-tuning
  • performance-tuning
창신동 장첸 댓글 2 좋아요 0 조회수 296

출시 예정 강의 질문

해결됨

[실습] 대기업 근무하며 경험한 Redis를 야무지게 사용하기

안녕하세요. 비록 아직 강의를 수강하지는 못하였지만, 다음 출시 예정으로 생각하시는 강의에 대해 문의가 있어 이렇게 글을 남기게 되었습니다 ,, 혹시 강사님께서 카프카 관련 주제로 강의 출시 계획이 있으실지 문의 남기겠습니다. 감사합니다.

  • spring
  • redis
  • redisinsights
  • cache
요니 댓글 1 좋아요 1 조회수 151

multiSet에서 key 입력 의미

해결됨

[실습] 대기업 근무하며 경험한 Redis를 야무지게 사용하기

multiSetData에서 키 저장시 key:1, key:2가 저장이 되는데 키 입력시 test_one은 별 의미가 없지 않나요? 아니면 원래 의도가 test_one:1, test_one:2 인지 궁금합니다

  • spring
  • redis
  • redisinsights
  • cache
동동이 댓글 2 좋아요 1 조회수 163

윈도우에서 작업 질문

해결됨

[실습] 대기업 근무하며 경험한 Redis를 야무지게 사용하기

redis 설치까지는 다 끝냈습니다. 윈도우에서는 어떻게 작업하나요?

  • spring
  • redis
  • redisinsights
  • cache
동동이 댓글 2 좋아요 0 조회수 185

강의 자료 질문입니다.

해결됨

스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판

학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. os는 window를 사용하고 있고요 자료 다운로드 후 볼려고 하는데 제pc 문제 인지 파일 문제인지 읽지를 못하네요. 확인해주시면 감사하겠습니다.그리고 코드 참고를 하려 하는데 github 주소나 파일이 있을까요??

  • java
  • mysql
  • spring-boot
  • kafka
  • redis
성관 댓글 2 좋아요 0 조회수 438

프론터 여부

미해결

15일간의 빅데이터 파일럿 프로젝트

아직 수업 듣기전인데 이 프로젝트에 프론트도 포함되어 있나요? 결과물을 화면과 연계해서 보고 싶습니다

  • 빅데이터
  • hadoop
  • kafka
  • zookeeper
  • redis
  • flume
  • impala
  • 데이터-엔지니어링
김유경 댓글 1 좋아요 0 조회수 74

안녕하세요, 강사님

미해결

15일간의 빅데이터 파일럿 프로젝트

안녕하세요, 강사님 강의를 들으며 꾸준히 배우고 성장하고 싶었는데, 예상치 못한 일정들로 인해 충분히 강의를 소화하지 못한 점이 아쉬움으로 남습니다. 현재 수강 기간이 얼마 남지 않아, 남은 강의를 보다 충실히 학습할 수 있도록 수강 기간 연장을 요청드려봅니다..

  • 빅데이터
  • hadoop
  • kafka
  • zookeeper
  • redis
  • flume
  • impala
  • 데이터-엔지니어링
댓글 2 좋아요 0 조회수 101

Jackson2JsonRedisSerializer에 대한 궁금증

미해결

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

GenericJackson2JsonRedisSerializer를 사용할 때 저장되는 캐싱 데이터는 다음과 같았습니다. "[{\"@class\":\"org.example.package..\",\"id\":\"123984\",\"title\":\"title0123984\",..., 강의상에 나온 데이터 순서?? 와는 조금 다르게 package 다음에 @class 이후 데이터가 저장되는 구조가 나오는 것을 확인했습니다. 이때 캐싱된 데이터를 조회하려고 하는데 com.fasterxml.jackson.databind.exc.MismatchedInputException: Unexpected token (START_OBJECT), expected VALUE_STRING: need String, Number of Boolean value that contains type id (for subtype of java.lang.Object) 에러가 발생했습니다. 너무 궁금해서 GenericJackson2JsonRedisSerializer에 대해서 알아보고 있는데, 여전히 에러가 발생하는 이유를 잘 모르겠습니다ㅜㅜ 데이터가 캐싱되어서 저장될 때 구조가 다르게 들어가는 이유가 궁금합니다 아 물론 강의 후반부처럼 Jackson2JsonRedisSerializer를 사용했을 때는 정상적으로 동작했습니다.

  • redis
  • nosql
  • query-tuning
  • performance-tuning
YEN 댓글 1 좋아요 0 조회수 260

사용된 어노테이션에 관한 질문

해결됨

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

5:12분경 createdAt에서 @CreatedDate를 제외한 나머지 어노테이션들을 특별히 사용하신 이유가 있으실까요?

  • redis
  • nosql
  • query-tuning
  • performance-tuning
wisehero 댓글 1 좋아요 0 조회수 171

Redis 사용 방식에 대해서 질문 있습니다

미해결

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

안녕하세요 레디스를 공부하면서 궁금한게 있습니다. 제가 토이프로젝트를 하면서 상품 검색 입력시 버튼 하나씩 누를때마다(이벤트 keyup 사용) 백엔드와 통신하여 입력창 하단에 자동완성 기능창을 만들려고 하고 있습니다. 아무래도 버튼 하나씩 누를때마다 통신해야되니 빠르게 통신해야될 것 같아서 redis를 사용했습니다. 상품 등록할 때 DB와 redis에 저장하고 (redis에는 상품 이름만 저장했습니다.) 입력창 하단의 자동완성은 redis를 통해 상품 이름을 출력하고 출력된 상품이름을 선택시 DB를 통해서 상품 상세정보를 가져오는 식으로 했는데 배운대로라면 Cache Aside 전략과 다른데 이럴때는 어떻게 구성해야되나요? 아니면 SQL 튜닝만 잘해도 굳이 redis는 필요없는건지 궁금합니다. 아무래도 버튼 누를때마다 통신하다보니 SQL은 느릴까봐 싶어 조바심이 나네요ㅠㅠ 알아보니 최근검색어나 인기검색어 같은 경우도 redis로 한다고하는데 이런것들도 굳이 출력하자면 DB로만 사용하여 출력이 될텐데 이게 Cache Aside 전략과 어떤 관계가 있는지 감이 안잡힙니다 실무뛰면서 redis를 써본적이 없고 거의 db로만 해결하다보니 redis 사용예시를 잘 모르겠습니다

  • redis
  • nosql
  • query-tuning
  • performance-tuning
동동이 댓글 1 좋아요 0 조회수 183

systemctl restart redis-study 문제

미해결

레디스의 모든 것 (feat. Node.js)

[ root@localhost system]# systemctl restart redis-study Job for redis-study.service failed because a timeout was exceeded. See "systemctl status redis-study.service" and "journalctl -xeu redis-study.service" for details. systemctl restart redis-study를 실행하면 위와 같은 오류가 뜹니다. 이후 enable 도 안되어서 이 부분에서 걸려있는데, 로그를 확인해봐도 timeout때문에 실패했다는 문구만 뜹니다. 혹시 문제가 어디서 발생했을까요...? [메모리 테스트: redis-server --test-memory 2] Your memory passed this test. Please if you are still in doubt use the following two tools: 1) memtest86: http://www.memtest86.com/ 2) memtester: http://pyropus.ca/software/memtester/ [conf 파일 체크: redis-server /redis/redis-stable/redis.conf --check-config] *** FATAL CONFIG FILE ERROR (Redis 7.4.1) *** Reading the configuration file, at line 2328 >>> 'check-config' Bad directive or wrong number of arguments 이걸 확인해보면 conf파일 문제인 것 같은데, 강의에서 conf 파일을 건드리는 부분이 없었던 걸로 기억합니다.

  • node.js
  • redis
jaenam615 댓글 1 좋아요 0 조회수 238

aws elasticcache redis 툴 접속.

해결됨

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

안녕하세요. 강의 잘 들었습니다. 강의를 듣다보니 의문이 드는 점이 있어 질문드립니다. redis를 사용하다 보면 redisinsight같은 gui 툴을 통해 데이터를 확인하는데 운영관점에서 더 편한데요. aws elasticcache redis가 외부 로컬에서 접속이 안되면 aws elasticcache는 데이터 확인을 툴로 못하는건가요? 실무에서 운영을 하다보면 분명 직접 데이터를 체크를 해야하는 케이스가 발생하는데 이걸 일일이 cli 명령어 찾는다는 것은 돈을 주고 aws 사용하는 고객입장에서는 너무 불편하다고 생각들어 문의드립니다.

  • redis
  • nosql
  • query-tuning
  • performance-tuning
woeklrj 댓글 1 좋아요 0 조회수 253

인기 태그

인프런 TOP Writers

주간 인기글