본문으로 건너뛰기
코드룸CODE ROOMTENMO ↗

기술 블로그

웹과 앱을 만들며 남긴 기록 447편입니다.

Redis 주요 명령어 정리

Redis Hash, List, Set, Sorted Set을 활용해 더욱 정교한 데이터 구조 관리가 가능합니다. 1. Hash 명령어 (HGET, HSET, HGETALL) Hash는 하나의 키 아래에 필드-값(Field-Value)쌍을 여러 개 관리할 수 있는 자료...

프로그래머스 수열과 구간 쿼리 4 Lv.0

function solution(arr, queries) { let answer = []; answer = arr; for(let i = 0; i < queries.length; i++){ let s = queries[i][0]; let e = queries[i][1]...

Redis 주요 데이터 구조 이해

Redis는 다양한 데이터 구조를 제공함으로써 단순한 키-값 저장을 넘어 여러 형태로 데이터를 관리하고 효율적인 연산을 지원합니다. 실제로 특정 게시물을 단순히 캐싱하여 조회 속도를 향상시키는 상황에서는 가장 기본적인 String 타입만으로 충분한 경우가 많습니다. S...

프로그래머스 qr code Lv.0

function solution(q, r, code) { let answer = ''; for (let i = 0; i < code.length; i++) { if (i % q === r) { answer += code[i]; } } return answer; } co...

Redis CLI를 통한 접속과 기본 명령어 실행

Redis가 로컬에서 정상적으로 설치되고 서버가 동작하고 있다면, redis-cli 명령어를 통해 redis서버에 접속하고 기본적인 명령어를 실행할 수 있습니다. Redis CLI 접속 방법 redis-cli 명령어 실행 후 나타나는 127.0.0.1:6379 프로프트...

프로그래머스 조건에 맞게 수열 변환하기 2 Lv.0

function solution(arr) { let answer = 0; while(true) { const nextArr = arr.map((value) => { if(value >= 50 && value % 2 === 0) { return value / 2; } e...

환경별 Redis 설치 방법(Linux, Ubuntu, macOS, Docker)

로컬 환경에 Redis 설치하기 Redis를 로컬 개발 환경에서 설치하여 테스트하거나 개발을 진행하는 경우, 운영 체제나 개발 환경에 따라 달라집니다. Linux(Ubuntu) 환경 1. 패키지 저장소 업데이트 sudo apt-get update 2. Redis 패키지...

프로그래머스 리스트 자르기 Lv.0

function solution(n, slicer, num_list) { let answer = []; const [a, b, c] = slicer; switch(n) { case 1: answer = num_list.slice(0, b + 1); break; case...

Redis의 대표적인 활용 사례

캐싱 (Caching) 페이지/콘텐츠 캐싱: 웹페이지나 API 응답 결과를 Redis에 캐싱해 서버 부하를 줄이고 응답 속도를 개선한다. 데이터베이스 쿼리 결과 캐싱: SQL 질의 결과를 Redis에 임시 저장한 뒤, 동일한 요청이 들어올 때 Redis에서 바로 결과를...

Redis란 무엇인가? In-Memory 데이터 스토어에 대해서

Redis는 초고속으로 데이터를 읽고 쓸 수 있도록 메모리 상에 저장하는 In-Memory 데이터 스토어 이자 Key-Value 데이터 구조 서버입니다 . 단순한 캐시를 넘어 다양한 자료구조를 지원하며, 퍼포먼스와 유연성을 바탕으로 실시간 애플리케이션 및 대규모 서비스...

[JWT 인증 라이브러리] npm jose 설치 및 가이드

JOSE (JavaScript Object Signing and Encryption)는 JSON 기반으로 구조화된 웹 토큰(JWT)을 생성하고 검증하는 데 사용되는 라이브러리입니다. jose 패키지는 보안 API를 제공하여, JWT 발급 및 검증, 암호화, 디지털 서명...

MongoDB 데이터 모델링 가이드

MongoDB는 비관계형(NoSQL) 데이터베이스로, 데이터를 JSON과 유사한 BSON(Binary JSON) 문서 형태로 저장합니다. 이 구조는 데이터의 중첩과 비정규화를 가능하게 하여 관계형 데이터베이스와 다른 방식으로 데이터를 모델링하게 됩니다. MongoDB ...

void와 int의 반환 차이

// 이런식으로 작성했을 때, void와 int의 차이 void updateContract(HashMap<String, ?> param); int updateContractPrice(HashMap<String, ?> param); void 와 int 반환 타입의 주요 ...

프로그래머스 조건 문자열 Lv.0

코드 설명 switch 문: math 변수의 값에 따라 다른 case 문을 실행합니다. case 문: 각 경우( ">=", "<=", ">!", "<!" )에 대해 삼항 연산자( 조건 ? 참일 때 값 : 거짓일 때 값 )를 사용하여 n 과 m 을 비교하고 결과를 반환합...

RabbitMQ와 Kafka 무엇을 선택해야할까?

RabbitMQ와 Kafka 모두 메시징 시스템 또는 메시지 브로커로 자주 언급되지만, 그 설계 철학과 사용 목적, 내부 구현 구조에서 차이가 있습니다. RabbitMQ는 전통적인 메시지 큐(Message Queue) 모델에 가깝고, Kafka는 로그 기반 스트리밍 플...

쿠버네티스와 RabbitMQ차이

쿠버네티스(Kubernetes)는 애플리케이션 컨테이너 배포, 스케일링, 관리 등의 오케스트레이션을 담당하는 플랫폼입니다. (쉽게 스케일 아웃하거나 장애가 발생했을 때 자동 복구하는 등 인프라 측면에서의 안정성과 관리 편의성을 높일 수 있습니다.) RabbitMQ는 애...

npm i clsx에 대해서 알아보자

React 기반 프로젝트를 진행하다 보면, HTML 요소에 다양한 조건에 따라 클래스를 부여해야 하는 상황이 발생합니다. 이때, className 문자열을 직접 이어붙이거나 삼항 연산자를 복잡하게 사용하는 대신, 직관적인 방법이 필요할 수 있습니다. 이 문제를 쉽게 해...

npm i lodash 알아보고 시작하자

깔끔하고 효율적인 코드를 작성하고자 할 때, lodash 라이브러리를 사용하면 편리합니다. npm i lodash 를 사용하면 다양한 유틸리티 함수들을 쉽게 프로젝트에 통합하고 코드의 가독성과 유지보수성을 높일 수 있습니다. 배열, 객체, 문자열 처리부터 고급 함수형 ...

[Spring Boot] Apache Kafka에 대해서 알아보자

쉽게 이해하자면, 여러 부서가 존재하는 회사에서 각 부서는 정보가 필요할 때 요청 부서로 찾아 갈 게 아니라, 중앙 우편실을 방문해 필요한 문서를 가져와 처리하는 것입니다. 반대로 타 부서에서 필요한 정보가 있을 때 중앙 우편실에 정보를 맡겨두면 타 부서도 중앙 우편실...

[Spring Boot] 비동기 처리와 메시징이란

애플리케이션 규모가 커지고 서비스 요청량이 증가함에 따라 동기적 요청/응답 방식은 시스템 부하, 응답 지연, 처리량 한계 등의 문제를 야기할 수 있습니다. 이때 비동기 처리(Asynchronous Processing) 와 메시징(Messaging) 아키텍처는 이러한 한...