Redis cluster spec
·
공부
Redis cluster(이하, 레디스 클러스터)는 세 가지 중요 목표를 가지고 설계되었다. 분산 환경에서 자동 데이터 파티셔닝, 장애 허용성 그리고 고가용성이다. 레디스 클러스터는 데이터를 효율적으로 분배하고 마스터 노드가 장애가 발생한 경우 레플리카 노드가 가장 최신의 데이터 상태를 기반으로 새로운 마스터 노드로 승격되어 서비스를 지속적으로 운영될 수 있도록 보장한다.
교육 AI
·
공부
어릴 적 나는 공부에 관심이 없었다. 지금 생각하면 너무 아둔한 생각이지만, 초등학교 당시의 나는 "한국어 할 수 있고, 거스름 돈 계산 정도만 할 줄 알면 되는 거 아니야? 공부를 잘할 필요가 있어?" 같은 생각을 했던 것 같다. 또 고집이 쎄 학원을 다니고, 학교를 다녀도 꼭 해야 하는 것만 했다. 수업 시간에 수업 듣고, 공책 제출을 못하면 맞으니, 맞기 싫어서 공책 정리를 했다. 당연히 그렇게 했던 공부는 머리에 남지도 않고 시험을 못 쳐 빡지(틀린 문제를 반복해서 적는)만 줄줄이 썼던 기억이 난다. 당시에 내가 이런 생각을 했던 이유는 내가 되고 싶었던 무언가가 없었기 때문이라고 생각한다. 내가 공부에 대해서 관심이 생기고, 노력하려고 했던 건 개발자란 명확한 꿈을 가지게 된 것 같다. 중학교 ..
스프링에서 빈 등록 과정 분석해보기
·
공부
SringApplication context = this.createApplicationContext(); context.setApplicationStartup(this.applicationStartup); this.prepareContext(bootstrapContext, context, environment, listeners, applicationArguments, printedBanner); this.refreshContext(context); this.afterRefresh(context, applicationArguments); 우리가 사용하는 SpringApplication이 실행되면 application context를 생성하고, 초기화 작업이 수행된다. 여기서 빈이 등록되는 부분은 thi..
🍎 레디스 톺아보기 - pub/sub
·
공부
레디스의 pub/sub은 순서가 보장되는 at-most-once(최대 한 번) 성격을 가진 pub/sub 메시징 구현으로, 구독자(subscriber)는 하나 이상의 채널을 구독하고 메시지를 전달받을 수 있다. 이때 채널을 구독한 RESP2 클라이언트는 SUBSCRIBE, UNSUBSCRIBE를 제외한 명령어를 수행하면 안 된다. (RESP3은 구독 중이라도 명령어를 수행할 수 있다.) 앞서 언급했듯 레디스의 pub/sub은 메시지 전달 시 누락될 가능성이 있다(at-most-once) 따라서 메시지 전송에 있어 조건이 있다면 레디스의 stream을 활용하는 것이 좋다. 레디스의 pub/sub은 데이터베이스와 상관없이 채널명으로 분류된다. 즉 DB 0에 게시해도 DB 10의 구독자는 메시지를 수신받을 수..
🍎 레디스 톺아보기 - 데이터 타입 이해하기
·
공부
왜 레디스를 공부하게 되었는가? 내가 개발 공부를 하면서 가장 처음 Redis(이하 레디스)를 접한 계기는 로그인 기능 개발을 하면서다. 대부분 인증 세션을 레디스에 저장해서 사용하거나, pub/sub을 이용해 실시간 채팅을 구현 등을 경험했다. 이전 회사에서도 인증을 담당하면서 비교적 레디스와 관련된 일을 경험했지만, 당시 레디스를 적극적으로 활용하기 어려웠다. 이유는 일단 서비스 내에서 레디스를 이용할 요구사항이 없었고, 레디스 서버를 인증 세션을 저장하는 용도로 사용하고 있어서 만약 해당 레디스가 특정 기능으로 인해 죽는다면, 서비스 전체에 장애가 발생할 수 있어서 비교적 쉽게 접근하기 어려웠다. 그런데 최근 레디스를 활용할 일이 생겼는데 보면 볼수록 활용성이 높고, 매력적이라 공부하게 되었다. 레..
JWT 인가 처리, 이거 모르면 제발 Spring security 쓰지 마세요.
·
공부
라고 굉장히 도발적인 제목을 작성해봤다. 사실 몰라도 사용해도 괜찮다. 내가 뭐라고 이러쿵저렁쿵하겠나. 하지만 대부분의 블로그가 획일화된 방법을 제안해 나는 조금 다른 방법을 제안해보고자 한다. JWT 인가 구현 처음은 인가에 대해서 생각해보자. 다른 글처럼 JWT를 설명하는 것은 너무 지루하고 재미없기에 이 글을 읽자. 내가 본 글 중 JWT에 대해서 가장 간단하고 명확하게 정리해서 초보자도 바로 이해할 수 있을 정도로 잘 정리해두었다. 인가 구현에 있어서 가장 첫 번째는 Filter를 추가하는 것이다. Filter는 우리가 Http 요청 시, 해당 요청에 대한 인가 및 인증 처리를 해주고 만약 권한 이상의 요청 시 걸러주는 역할을 하게 된다. // 아래에서 필요한 클래스는 알아보고 마지막에 완성된 코..