캐시(Cache)란?캐시(Cache)란, 원본 저장소보다 빠르게 가져올 수 있는 임시 데이터 저장소를 의미합니다.참고로 캐시(Cache)라는 단어는 Redis에서만 쓰이는 용어는 아니고 전반적인 개발 분야에서 통용돼서 쓰입니다.캐싱(Caching)이란?캐싱(Caching)이란 캐시(Cache, 임시 데이터 저장소)에 접근해서 데이터를 빠르게 가져오는 방식을 의미합니다.현업에서는 아래와 같이 얘기하는 편입니다.“이 API는 응답 속도가 너무 느린데? 이 응답 데이터는 캐싱(Cahing) 해두고 쓰는 게 어때?’이 말을 풀어서 설명하자면 ‘API 응답 결과를 원본 저장소보다 빠르게 가져올 수 있는 임시 데이터 저장소에 저장해두고, 빠르게 조회할 수 있게 만드는 게 어때?’라는 의미입니다. 데이터를 캐싱할 때..
Redis 설치설치의 자세한 과정은 스킵하고 관련 글만 첨부하도록 하겠습니다.MacOS에서 Redis 설치하기Install Redis on macOSUse Homebrew to install and start Redis on macOShttps://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-mac-os/Windows에서 Redis 설치하기[Redis] 윈도우10 환경에서 레디스 설치하기[REDIS] 📚 Window10 환경에 Redis 설치 & 설정Redis에 접속Redis에 접속할 수 있는 프로그램이 redis-cli이다.redis-cli로 Redis에 명령을 내릴 수도 있다.$ redis-cli ..
Redis란?Redis는 Remote Dictionary Server의 약자로, 키-값(Key-Value) 구조로 데이터를 저장하는 비관계형 데이터베이스(NoSQL)입니다.쉽게 바꿔서 이해하자면쉽게 말해, 엄청 빠르게 동작하는 메모리 기반의 키-값 데이터 저장소라고 이해하시면 됩니다.예를 들어, 우리가 변수에 값을 저장하듯이user_name = "달수"Redis는 내부적으로 다음과 같은 식으로 데이터를 저장합니다.SET user_name "달수"이처럼 키 = 값 형태로 데이터를 저장하고, 매우 빠르게 꺼내 쓸 수 있습니다. NoSQL이란?NoSQL은 전통적인 관계형 데이터베이스(RDBMS, 예: MySQL)와 다르게, 고정된 스키마 없이 다양한 형태의 데이터를 유연하게 저장할 수 있는 데이터베이스입니다...
백엔드 개발을 시작하면서 가장 많이 겪는 문제들이 있다. "로컬에서는 잘 되던 코드가 서버에서는 안 돼요", "팀원이 만든 코드와 합쳤더니 에러가 나요", "매번 수동으로 배포하는 게 너무 번거로워요"...이런 문제들의 공통점은 무엇일까? 바로 개발과 배포 과정이 수동적이고 환경이 일관되지 않다는 점이다. CI/CD와 Docker는 이러한 문제들을 해결해주는 현대 개발의 필수 도구이다.Docker는 추후에 다뤄보는걸로 하고, 이 글에서는 단순 CRUD API 개발에서 시작해서, 왜 이런 기술들이 필요한지, 그리고 실제로 어떻게 적용하는지를 Spring Boot 예시와 함께 살펴볼 예정이다.CI/CD는 지속적 통합(Continuous Integration)과 지속적 배포(Continuous Deployme..
JWT 인증 시스템 : 이론부터 Spring Security 구현까지🚀 들어가며: 왜 JWT가 필요할까?현대 웹 애플리케이션은 점점 복잡해지고 있다. 하나의 서버에서 모든 걸 처리하던 시대는 지났고, 이제는 여러 서버, 마이크로서비스, 모바일 앱까지 고려해야 한다. 이런 환경에서 기존의 세션 기반 인증은 한계를 드러낸다.세션 방식의 한계점들Scale-Out의 딜레마서버를 여러 대로 늘려야 하는 상황을 생각해보자. 사용자가 1번 서버에서 로그인했는데, 다음 요청이 2번 서버로 간다면? 2번 서버는 사용자의 세션 정보를 모르기 때문에 다시 로그인하라고 할 것이다.사용자 A → 1번 서버 로그인 ✅ ↓ (로드밸런싱)사용자 A → 2번 서버 요청 ❌ (세션 정보 없음)세션 서버의 새로운 문제이를..
Spring Security의 모든 것을 차근차근 정리한 글입니다. 복잡해 보이지만 하나씩 차근차근 정리하였습니다. 1. Spring Security란 무엇인가?Spring Security의 정체Spring Security는 Spring과는 별개의 독립적인 프로젝트다. 즉, Spring Framework가 제공하는 보안 전용 프레임워크라고 볼 수 있다.주요 특징들장점:인증, 권한 부여, 일반적인 공격(CSRF)에 대한 보호 기능을 제공한다더 이상 세션에만 의존하지 않고 자체적인 보안 방식을 제공한다Filter 기반으로 동작하므로 모든 Servlet Application에서 동작 가능하다 → 컨테이너에 무관하게 적용 가능하다@Secured 애노테이션으로 관심사 분리가 가능하다DB 저장 방식과 인증 방법이 ..