Valkey 커스텀 명령어 응답 가공하기: echo2_ prefix 붙이기
·
CS STUDY
지난 과제에서는 Valkey에 ECHOPIXXLIX라는 커스텀 명령어를 추가했다.동작은 기존 ECHO 명령어처럼.사용자가 abc를 입력하면 그대로 "abc"를 돌려주는 단순한 명령어였다.이번 과제에서는 여기서 한 단계 더 나아가, 입력값 앞에 echo2_라는 prefix를 붙여 응답하도록 수정해보자. 겉으로 보면 단순히 문자열 앞에 echo2_만 붙이는 작업처럼 보인다.하지만 Valkey 내부에서는 기존 입력값을 그대로 반환하는 것과, 새로운 문자열을 만들어 반환하는 것이 꽤 다르게 처리된다. 이번 글에서는 코드 흐름을 세세하게 따라가기보다는, 왜 새 문자열을 만들어야 했는지, Valkey는 문자열을 어떻게 다루는지, 응답을 만들 때 메모리 소유권은 어떻게 처리되는지를 중심으로 정리해보려고 한다.1. 기..
Redis/Valkey는 Command를 어떻게 실행할까? - Valkey 커스텀 명령어를 만들어보자
·
CS STUDY
🔴 들어가며OSSCA Valkey 4주차에서는 Valkey에 직접 command를 추가해보는 실습을 진행했다.처음에는 단순히 함수 하나를 추가하면 되는 과제처럼 보였다. 하지만 실제로 따라가 보니 Valkey 내부에서 command가 어떻게 정의되고, 서버 시작 시 어떻게 등록되며, client 요청이 어떤 흐름을 거쳐 실제 C 함수까지 도달하는지 이해할 수 있는 실습이었다. 이번 글에서는 수업에서 다룬 Valkey command 등록 및 실행 흐름과, 내가 ECHOPIXXLIX command를 추가하고 PR을 보낸 과정을 정리한다.🔴 Valkey command는 어디에 정의될까?Valkey에서 command를 추가하려면 단순히 C 함수 하나만 작성하면 되는 것이 아니다.command의 이름, 설명,..
Redis, Valkey는 왜 빠를까? - 자료구조, 메모리 최적화, RESP 프로토콜 실습
·
CS STUDY
OSSCA 2026 - Valkey 수업 내용을 바탕으로 정리한 글입니다. 누가 redis가 뭔가요? 라고 물어보면 in-memory에 데이터를 저장하는 빠른 key-value store라고 대답했다. 실제로 Valkey를 사용하는 가장 큰 이유도 DB나 disk보다 memory 접근이 훨씬 빠르기 때문이다. 하지만 Valkey의 성능은 단순히 “memory라서 빠르다”로만 설명되지 않는다. 내부적으로는 Hash Table, Skip List, Listpack, QuickList 같은 자료구조가 상황에 맞게 사용되고, command 실행 구조와 network I/O 처리 방식도 성능에 큰 영향을 준다. 또한 client와 server는 RESP라는 protocol을 통해 명령과 응답을 주고받는다. 이번 ..
Git-X-Ray : 깃 구조 살펴보기
·
CS STUDY
1. 실습 개요이번 실습에서는 Git 저장소를 직접 생성하고, 파일을 추가한 뒤 두 번의 commit을 수행하면서 .git 내부, 특히 .git/objects 디렉터리에 어떤 object가 생성되는지 관찰하였다.또한 Git object 파일을 Python의 zlib.decompress()로 직접 열어 보고, commit / tree / blob object가 각각 어떤 정보를 담고 있는지도 확인하였다.2. 진행한 작업이번 실습은 PowerShell 환경에서 진행하였다.실습 순서는 다음과 같다.2-1. 저장소 생성 및 파일 추가git initecho "ossca" > a.txtgit add a.txtgit commit -m "첫번째 커밋"2-2. 파일 수정 후 두 번째 커밋"ossca study" | Ou..
[데이터베이스 시스템 7판 10장] 빅데이터 정리 | HDFS, MapReduce, Spark, 스트림 처리까지
·
CS STUDY/DB
1. 왜 빅데이터가 등장했을까빅데이터는 단순히 “데이터가 많다”는 뜻이 아니다. 웹, SNS, IoT, 로그 시스템의 성장으로 데이터 양이 너무 커지고 너무 빠르게 들어와서 기존 방식만으로 처리하기 어려워졌다는 점이다.그래서 한 대의 강한 서버보다, 여러 서버를 묶어 병렬로 저장하고 처리하는 방식이 중요해졌다. 클러스터를 구성하는 개별 서버를 보통 node라고 부른다.2. 빅데이터의 3V빅데이터를 설명할 때 가장 자주 나오는 개념이 3V다. 요소 의미 예시 Volume데이터 규모가 매우 큼TB, PB 단위 로그/센서 데이터Velocity데이터가..
[데이터베이스 시스템 7판 7장] 관계형 데이터베이스 정규화 정리 | 함수 종속, BCNF, 3NF, 4NF까지 한 번에 이해하기
·
CS STUDY/DB
보호되어 있는 글입니다.
[데이터베이스 시스템 7판 6장] E-R 모델 정리 | ERD 기본 개념부터 관계형 스키마 변환까지 한 번에 이해하기
·
CS STUDY/DB
1. 데이터베이스 설계는 어떻게 진행될까데이터베이스 설계는 그냥 테이블부터 만드는 작업이 아니다. 보통 다음 순서로 진행된다.1) 요구사항 분석사용자가 어떤 데이터를 필요로 하는지 정리하는 단계다.예:학생 정보가 필요한가수강 정보가 필요한가교수와 지도 관계를 관리해야 하는가이 단계의 결과물은 요구사항 명세서다.2) 개념적 설계요구사항을 바탕으로 데이터를 개념적으로 표현한다.이때 사용하는 대표적인 도구가 E-R 모델(Entity-Relationship Model) 이다.결과물은 보통 E-R 다이어그램(ERD) 이다.3) 논리적 설계E-R 다이어그램을 실제 DB에서 사용할 수 있는 관계형 스키마로 바꾸는 단계다.개체 → 테이블속성 → 컬럼관계 → 외래키 or 별도 릴레이션같은 식으로 변환한다.4) 물리적 설..
[데이터베이스 시스템 7판 5장] JDBC, 트리거, 재귀 질의, 윈도우 함수까지 | 데이터베이스 고급 SQL 한 번에 정리
·
CS STUDY/DB
1. 왜 범용 프로그래밍 언어로 DB에 접근할까SQL은 데이터베이스를 다루는 데 아주 강력한 언어지만,현실에서는 SQL만으로 모든 작업을 처리할 수는 없다.왜냐면 실제 서비스에서는 이런 작업도 필요하기 때문이다.사용자 입력 받기버튼 클릭 처리보고서 출력GUI 화면에 결과 보여주기조건에 따라 SQL을 동적으로 바꾸기외부 시스템과 통신하기즉, SQL은 데이터를 다루는 언어이고Java, Python, C 같은 범용 프로그래밍 언어는 프로그램 전체 흐름을 제어하는 언어다.그래서 실제 개발에서는 보통프로그램 언어가 전체 로직을 담당하고SQL이 데이터 조회/수정 담당이렇게 역할을 나눠서 쓴다.2. SQL 접근 방식: 동적 SQL vs 내장 SQLDB에 접근하는 방식은 크게 두 가지로 볼 수 있다.1) 동적 SQL프..