[REDIS] 레디스 정리 & 활용 사례 정리
·
DevOps/DBMS
Redis (Remote Dictionary Server)Redis는 인메모리(In-Memory) 기반의 Key-Value 저장소이다. 즉, 데이터를 디스크(DB)가 아닌 메모리(RAM)에 저장해서 엄청나게 빠른 속도로 읽고 쓸 수 있다. 🔑 Redis의 Key-Value 구조Key-Value란?Redis는 Key-Value 데이터베이스이다. 즉, 데이터를 키(Key)와 값(Value) 쌍으로 저장한다. Key(키) : 고유 식별자. 데이터를 조회할 때 사용Value(값) : 실제 데이터. 문자열, 숫자, JSON, 리스트 등 다양Key-Value 저장 방식Redis는 해시 테이블(Hash Table) 구조를 사용하여 키를 통해 값에 직접 접근 가능하다. 그리고 디스크가 아닌 RAM에 저장되므로 조회..
LCS(Longest Common Subsequence)
·
DevOps/알고리즘
📌 LCS(Longest Common Subsequence)1. 정의두 문자열(또는 수열)이 주어졌을 때, 공통으로 나타나는 부분 수열(subsequence) 중 가장 긴 것을 찾는 것이다.부분 수열은 순서를 유지하지만 연속일 필요는 없다.X = "ACAYKP"Y = "CAPCAK" 이렇게 두 문자열이 주어졌을 때 가능한 공통 부문 수열은 "ACAK", "CAPK", "CAK" ... 등이 있는데 이중 최장 부분 수열은 "ACAK", "CAPK" 가 되며 길이는 4가된다.이 알고리즘은 DP로 풀어 갈 수 있다. 현재 문자열위치가 같으면 이전 값을 보고 최대값을 구할 수 있기 때문이다.2. 점화식(DP 관계식)문자열 X[1...m], Y[1...n] 에대해서if X[i] == Y[j] : dp[i]..
JWT 탈취 방법 / 방어 방법
·
DevOps/Web
https://gelatinous-grease-a0b.notion.site/JWT-27e863698d2780839fd0c7c2d09bc5ac?source=copy_link JWT 탈취 방법/방어 방법 | NotionJWT 탈취가 가능한 상황gelatinous-grease-a0b.notion.sitehttps://gelatinous-grease-a0b.notion.site/JWT-27e863698d2780f08fb2c9a94c52a14c?source=copy_link JWT 탈취 방어 방법 | NotionHTTPS 사용 (전송 암호화)gelatinous-grease-a0b.notion.site 노션에 정리 후 블로그 다시 정리 예정!
투포인터(Two Pointers) 알고리즘
·
DevOps/알고리즘
투포인터(Two Pointers) 알고리즘두 개의 포인터를 활용하여 배열이나 문자열에서 특정 조건을 만족하는 구간 / 조합을 효율적으로 찾는 알고리즘 투포인터의 개념배열 또는 리스트에서 두 개의 인덱스(포인터)를 사용하여 문제 해결포인터를 좌/우, 앞/뒤 등으로 이동시키면서 조건을 체크시간 복잡도 : 대부분 O(N) ~ O(N logN) 수준으로 최적화 가능언제 사용할까?연속 구간 합 / 부분합 문제정렬된 배열에서 합이 특정 값이 되는 쌍 찾기최대/최소 길이 구간 문제슬라이딩 윈도우 문제와 유사한 패턴구조int left = 0;int right = 0;while(right left : 시작 위치right : 끝 위치배열/리스트가 정렬되어 있으면 더 효율적예제 1: 합이 M인 연속 부분 배열 찾기문제 : ..
EC2 + ECR + Docker + Docker Compose + Github Action으로 배포하기(S3, RDS, Elastic Cache를 곁들인..)
·
DevOps/CICD
1️⃣ 첫번째 배포!!Docker File 작성# Build 스테이지FROM gradle:8.10.2-jdk17 AS builder# 작업 디렉토리 설정WORKDIR /apps# 빌더 이미지에서 애플리케이션 빌드COPY . /apps#RUN gradle clean build --no-daemon --parallelRUN gradle clean build -x test --no-daemon --parallel# 실행 스테이지# OpenJDK 17 slim 기반 이미지 사용FROM openjdk:17-jdk-slim# 이미지에 레이블 추가LABEL type="application"# 작업 디렉토리 설정WORKDIR /apps# 애플리케이션 jar 파일을 컨테이너로 복사COPY --from=builder /a..
nGrinder 환경 세팅 & 성능 테스트 준비
·
DevOps/Web
🧩 nGrinder란?nGrinder는 네이버에서 개발한 오픈소스 기반의 부하 테스트 도구이다.JMeter보다 스크립트 기반 확장성이 높고, 실제 서비스 시나리오에 맞춰 TPS, 응답시간 등을 측정하기 적합📦1. nGrinder 설치 (Local 테스트용)🔧요구 사항Java 8~11 설치Git, IntelliJ 또는 VS Code (선택)Gradle or Maven (Groovy 프로젝트 설정용)📁 설치 파일 다운로드공식 GitHub: https://github.com/naver/ngrinder GitHub - naver/ngrinder: enterprise level performance testing solutionenterprise level performance testing solutio..