인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

이 강의에서는 이론을 직접적으로 다루는 것이 아니라, 실습을 하는 과정을 통해 코드에서 Redis를 야무지게 사용하는 방법에 대해서 학습합니다.

초급자를 위해 준비한
[데이터베이스, Redis] 강의입니다.

이런 걸 배울 수 있어요

  • Spring을 통한 Redis 소스 작성법

  • Redis의 가장 기본적인 Set

  • Redis를 활용한 랭킹 데이터 다루기

  • Redis를 활용한 캐싱 전략 구현

캐싱을 도입해서 단위 개발을 진행해달라는 요청이 들어왔어요..! 🤔

여러분들은 이런 기능개발 요청에 대해서 캐싱을 도입해야 할 떄, 어떻게 도입을 하시나요?? 또한 어떤 툴을 사용하시나요?? 이런 새로운 요구사항이 들어오면, 다음과 같은 항목을 고려하셔야 할 겁니다.


[1] 🤔 어떤 캐싱툴을 도입해야 할까??

[2] 🤔 캐싱 전략이라고 있는데.. 그건 어떤 전략을 사용해야 할까??

[3] 🤔 기간이 여유있을까?? Learning Curves로 인해 시간이 필요한데


이렇게 새로운 기능에 대한 시스템을 도입하기 전에 해당 시스템이 어떻게 동작을 하고, 어떻게 활용을 하는지에 대해서 기본적으로 아셔야 합니다. 그래야만 제대로 사용 할 수 있고, 추후 코드 개선이나 유지 보수를 하는데에 있어서 큰 무리가 없습니다. 이 강의에서는 여러분들이 캐싱을 도입한다는 상황을 가정하고 대표적인 캐싱 툴인 Redis 에 대해서 정말 상세하게 배우게 됩니다.

Redis.. 꼭 알아야 할까요?? 🤔

네 절대적으로 학습하셔야 합니다!!

서버에서의 실무를 경험해 보신 분들이라면, database도 필수적으로 사용이 되지만 redis가 사용되지 않는 경우는 절대 존재하지 않습니다.

Redis 를 사용한 cache 도입은 플랫폼 개발에 있어서 필수적인 요소 입니다.

  • Redis를 사용안하고 상황에 따라서 다른 캐싱 툴을 도입하는 경우도 있습니다. 하지만 기본적으로 캐싱툴은 사용이 되고 있으며, 가장 많이 사용되는것이 Redis 입니다.


강의 특징 😉

1⃣ Spring, Spring Boot, Java를 활용한 API 구성하기

2⃣ redisinsights를 활용한 redis 관리

3⃣ Slave, Master Node를 운영하는 방법

4⃣ 다양한 타입에 대한 redis 활용하는 방법

5⃣ Mutex Key 및 Script를 활용한 다양한 redis 서비스 활용법

학습 내용 😉

Redis를 활용한 가장 간단한 Collection 다루기

Redis를 사용하시면서 가장 많이 사용하는 Collection을 사용하는 방법과 함수 추상화를 통해서 범용성있게 함수를 사용하는 방법을 학습하실 수 있습니다.

Sorted Set등을 활용한 실제 기능에 대한 데이터 구현

특정 기능을 구현하는데에 있어서 사용이 될 수 있는 Collection을 활용하며, 이를 통해 실제 기능을 구현하는 방법을 학습 하실 수 있습니다.

가장 기본이 되는 Caching Strategy과 Cache Hit을 위한 PER Strategy

Caching Strategy에는 정답이 없습니다. 대신 최선의 선택지가 존재합니다. 가장 기본이 되는 Strategy와 알고리즘을 활용한 Strategy를 함께 학습 하시게 됩니다.

Lua Script 사용하며 Atomic 보장해보기

하나의 기능에서 Redis를 통해 여러번 Command를 전송하는 행위는 Atmoic을 보장하기 적합하지 않습니다. Script를 통해서 Atmoic을 보장하는 쿼리를 전송하시게 됩니다.

Distributed Lock을 활용하는 실전 코드

실제 실무에서는 다양한 인스턴스를 운영합니다. 이런 상황에서 Client가 Mutex를 제어하는것은 올바르지 않습니다.

Redis를 활용하여 여러 인스턴스간에 Lock을 제어하는 방법을 학습 하실 수 있습니다.

실습 예시 😉

Master, Slave Redis Node를 직접 설정 및 운영하는 방법

Redis Pipeline을 활용한 I/O 최적화

Redis Script를 활용한 Atmoic 데이터 처리

같이보면 좋은 강의 😉

수강 전 참고 사항

실습 환경

  • MacOs M1에서 강의가 촬영되었습니다.

  • java 17 2021-09-14 LTS 버전이 사용되었습니다.

  • 모두가 익숙하신 VsCode를 IDE로 활용하였습니다.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • Redis를 왜 써야하는지, 어떻게 써야하는지 궁금하신 분

  • 백엔드 개발자를 꿈꾸시는 분

  • 누구나 아는 방법이 아닌 실무자가 사용하는 방법이 궁금하신 분

안녕하세요
Hong입니다.

1,169

수강생

69

수강평

50

답변

4.3

강의 평점

8

강의

자기 소개

집에서 빈둥대다 개발에 흥미를 느껴 개발 공부를 시작하였고 현재는 판교에서 플랫폼 서버 개발을 담당하여 진행하고 있습니다.

 

제가 공부를 했던 방법과 실무에서 접하실 수 있는 여러가지 문제점들과 해결책을 여러분들에게 제공하고 싶어 지식공유자 활동을 이어나가고 있습니다.

 

강의는 오로지 저만의 지식을 통해 만들어지지 않습니다. 모든 강의는 함께하시는 분들이 계십니다.

  • 카카오에서 서버 개발하고 계시는 초이

  • 토스에서 개발하고 계시는 서버 개발자

  • 유니콘 스타트업에서 개발도 하고, DB도 관리하시는 능력자

 

지식공유자 경력

[前] 샌드박스 블록체인 개발자

[前] 넥슨 자회사 백엔드 개발자

[] 판교에서 고여가는 서버 개발자

 

인터뷰 이력

더보기

커리큘럼

전체

25개 ∙ (2시간 45분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

9개

4.1

9개의 수강평

  • devHand님의 프로필 이미지
    devHand

    수강평 5

    평균 평점 5.0

    5

    60% 수강 후 작성

    코드는 되게 간단하고 처음하는 사람이 보기 좋은 강의라고 생각을 하고 더 중요한 부분은 강사님이 말씀해 주시는 다양한 사용법이라고 생각합니다. 듣지않고 코드만 본다면, 만족하지 못하는 분들도 있을꺼같아요.

    • Hong
      지식공유자

      Redis를 다루는 코드는 그렇게 어려운 부분이 없습니다. 되게 한정적으로 사용하기 떄문이고 사실상 반복적인 로직이 많이 적용이 되기 떄문입니다. 문제는 Redis를 어떻게 사용하냐고 굉장히 중요합니다. 싱글스레드라는 성질을 알고 다양한 형태를 알고 구현 할 수 있다면 실제 실무에서도 많은 도움이 된다고 생각을 합니다. 좋은 평 남겨주셔서 감사합니다.

  • gohans님의 프로필 이미지
    gohans

    수강평 12

    평균 평점 4.9

    5

    60% 수강 후 작성

    Redis를 코드상에서 이렇게 자세하게 파고든 강의는 처음이라고 생각합니다. 어느정도 익숙한 Spring, Java코드를 활용하여 제가 몰랐던 캐싱 정략과 그에 따른 이점과 단점을 말로만 하는것이 아니라 실제로 구현하는 모습이 인상깊었습니다. 개인적으로는 되게 유익했다고 생각합니다. 그럴싸하게 어려운 용어로 포장한 것이 아니라 좀 더 친숙하고 최대한 쉽게 알려주려고 노력하는 모습이 느껴지기도 한 강의였습니다. 좋은 강의 감사합니다 강사님.

    • Hong
      지식공유자

      안녕하세요 이론적인 부분에 대해서 한번 다루어보았는데, 실제 코드를 작성하는 방법에 대해서도 알려드리고 싶었습니다. 좋은 평 남겨주셔서 감사합니다.

  • Kkyle님의 프로필 이미지
    Kkyle

    수강평 6

    평균 평점 5.0

    5

    60% 수강 후 작성

    초심자도 듣기 좋은 강의이고 반복적인 코드일수도 있지만, 실제 하나하나 작성해주시면서 함께 강의를 구성해나가는 좋은 강의라고 생각합니다. 이렇게 Redis를 직접 운영하고 노드마다의 Ping 처리하는 강의는 보지 못했고 처음보는 개념이라서 굉장히 유익하였습니다. 해당 강의에서는 Spring을 사용하였지만, 사실상 개념적인 부분만 학습해도 매우 좋은 강의라고 평가 할 수 있을꺼같습니다. - 그래서 저는 실제로 제가 사용하는 언어로 따라하며 직접 구현하였습니다. 좋은 강의 공유해주셔서 감사합니다!

    • Hong
      지식공유자

      좋은 평 남겨주셔서 감사합니다. Redis는 정말 실무에서 많이 사용되는 툴 입니다. 그래서 자세히 알고 다양한 사용 방법에 대해서 숙지하시면 많은 도움이 되실꺼에요. 사실 제가 알려드리는 내용만 모두 숙지하셔도 앞으로 Redis를 작업하는데에 있어서 어려운 부분이나 모르시는 부분은 없을꺼라고 생각합니다. 실제로 제가 사용하고 있는 방식을 기반으로 강의가 촬영이 되기도 하였고요 앞으로 좋은 개발과 재미있는 개발 하시기를 바라겠습니다. 감사합니다 :)

  • 복숭아요거트님의 프로필 이미지
    복숭아요거트

    수강평 4

    평균 평점 4.0

    3

    32% 수강 후 작성

    • 신동아님의 프로필 이미지
      신동아

      수강평 10

      평균 평점 4.7

      3

      36% 수강 후 작성

      slave node를 왜 구성하는지 이런거에 대한 설명도 없어서 아쉽네요

      • Hong
        지식공유자

        안녕하세요 평 남겨주셔서 감사합니다!! slave node를 구성하는 이유에 대해서 간략하게 설명을 남겼다고 생각을 하였는데, 조금 부족한 부분이 있었나 보네요. Slave Node를 사용해야 하는 이유는, 기존 메인 노드가 사용이 불가능하는 경우에 대해서 대체용으로써 사용이 됩니다. 이러한 구조를 고가용성이라고 부르기도 하고요 쉽게 말해서 메인 노드에 대한 대체품이라고 생각해주시면 될 꺼 같습니다. 평 남겨주셔서 감사합니다!

    Hong님의 다른 강의

    지식공유자님의 다른 강의를 만나보세요!

    비슷한 강의

    같은 분야의 다른 강의를 만나보세요!

    연관 로드맵

    강의가 포함된 로드맵으로 학습해 보세요!

    ₩38,500