CS 지식 173

Redis Sentinel 도커 배포하기

대기열 만들기를 진행한게 벌써 10일 전이네요... Redis Sentinel 정말 골치아픈 녀석이었습니다.  이번 포스팅에선 Redis Sentinel을 도커로 배포하면서 삽질했던 부분들을 정리하고자 글을 쓰게 되었습니다.  한번 시작해보도록 하겠습니다.   Redis SentinelRedis Sentinel은 Redis에서 제공해주는 HA (High Availability) 전략 중 하나입니다. Sentinel이라는 Redis 서버를 모니터링 하는 Redis Client를 두고 지속적으로 모니터링 하면서 Redis의 상태를 확인하고 장애에 대응하는 기능들을 제공합니다.  Redis Sentinel에 대해서는 이번 포스팅에선 자세히 다루지 않도록 하겠습니다. 배포하는데 집중해보려고합니다. 자세한 내용은..

Redis for Client Side Caching (실습)

전 포스팅에 이어 바로 실습으로 들어가보겠습니다. 전 내용이 궁금하시면 아래의 링크를 참고해주세요! https://coding-review.tistory.com/524 Redis for Client Side Caching (이론)이번 포스팅은 Redis 6부터 제공해주는 신기능 (무려 4년전 기술인 따끈따끈한 신기술입니다.) Redis for Client Side Caching에 대해서 공부해봤습니다.  Client Side Caching사실 이 내용을 공부하게 된 계기coding-review.tistory.com @Configuration@EnableRedisHttpSession@EnableRedisRepositories@Slf4jpublic class RedisConfig { @Value("${..

Redis for Client Side Caching (이론)

이번 포스팅은 Redis 6부터 제공해주는 신기능 (무려 4년전 기술인 따끈따끈한 신기술입니다.) Redis for Client Side Caching에 대해서 공부해봤습니다.  Client Side Caching사실 이 내용을 공부하게 된 계기가 Client Side Caching을 공부하려고 했다가 영어로 구글링한 탓일까요... 제일 상단에 뜬 Redis 공식문서를 보고 공부하게 되었습니다.  원래 우리가 흔히 말하는 Client Side Caching은 HTTP header인 Cache-Control과 ETag를 말합니다. 즉, 브라우저에 캐싱하는 것을 Client Side Caching이라고 하는 것입니다.  이번 포스팅은 그 내용은 아니기때문에 다루지는 않겠습니다. 브라우저에서 캐싱하는 것은 어..

데이터베이스 Failure Mode

요즘 이 사이트를 보면서 공부하고있는데 정말 좋은 것 같습니다.  https://roadmap.sh/backend Backend Developer Roadmap: What is Backend Development?Learn what backend development is, what backend developers do and how to become one using our community-driven roadmap.roadmap.sh 제가 공부했던 내용도 있고 처음 보는 내용도 있는데 처음 본 내용 중에 요즘 공부하고있는 데이터베이스와 관련된 내용으로 골라서 공부해봤습니다.  데이터베이스 Failure Mode저도 처음엔 Failure Mode..? 이게 뭐지? 하고 공부했었는데요. 별건 아니더라..

RDBMS의 레플리케이션 전략

이번 포스팅은 PostgreSQL을 공부하다가 나온 Streaming Replication이 흥미로워서 이참에 다른 RDBMS의 레플리케이션 전략에 대해서 공부해보고 정리해보려고합니다.  이 전략들을 공부하기 전엔 단순히 "RDBMS가 레플리케이션이라는 고가용성 전략이 있고 이걸 이용하면 데이터베이스 서버를 여러대 두면서 부하를 분산시킬 수 있다." 정도만 알고 있었습니다.  이번 기회에 RDBMS의 다양한 전략들을 보면서 조금 더 깊이있는 공부를 한 것 같아서 조금 뿌듯합니다. 한번 정리해보도록 하겠습니다.  Replication이란?레플리케이션 (혹자는 리플리케이션이라고도 읽는 것 같습니다) 은 클러스터링에 비해 안정적으로 가용성을 높이면서 데이터베이스 한대로는 감당할 수 없었던 부하까지 분산시킬 수..

RDBMS의 떠오르는 초신성 PostgreSQL

요즘 여러 회사들의 장애대응 회고를 보면서 드는 생각은 '요즘 PostgreSQL많이쓰네...' 였습니다. 어떤 회사들은 AWS RDS를 PostgreSQL로 한 회사도 있더라구요.  그걸 보면서 어떤 점이 다른 RDBMS를 대체할만큼 매력적이었을까 의문이 들어서 PostgreSQL에 대해서 간단한 개요수준으로 공부해봤습니다.  이번 포스팅에선 PostgreSQL이 다른 RDBMS와 차별점을 가지는 점에 대해서 포스팅을 할 생각입니다.  PostgreSQL이 기존 RDBMS와 뭐가 다를까?제가 아는 PostgreSQL은 Postgres라는 프로젝트에서 시작해 QUEL ('큐엘'이라고 발음하는 것 같습니다) 이라는 언어를 지원한다는 의미에서 PostgreSQL이 되었다고 알고 있습니다.  때문에 발음이 포..

@Transactional과 PostgreSQL은 어울리지 않는다.

제목이 꽤나 자극적이지만 아무리 생각해도 이거만큼 좋은 제목은 떠오르지 않았습니다. 제가 오늘 포스팅을 하게된 계기가 되는 포스팅도 저자분이 "@Transactional의 해로움" 이라고 할 정도이니 말 다한 것이죠. 우선 원래의 글을 올려드릴테니 자세한 내용은 아래의 링크를 참고해주세요! https://channel.io/ko/blog/bad-transactional?fbclid=IwZXh0bgNhZW0CMTEAAR0Atxir0WzSFcBMLmVjDXNLrUoiUl_qX93JPUPoo6EIRqP3irVoc22JEM4_aem_Gt65sDAFShcRmzIYKpla4w @Transactional의 해로움들어가며: 23.12.31 Database outage 새해를 하루 앞둔 12월 31일 자정을 얼마 지나지..

리눅스 alias로 파일, 폴더 휴지통으로 이동시키기

리눅스에선 rm 명령어를 이용해서 파일이나 폴더를 삭제합니다.  rm -f deploy.sh파일 삭제rm -rf deploy폴더 삭제 근데 문제는 이제 진짜 컴퓨터에서 완전히 삭제된다는 것입니다.  개인적으로 너무 위험해보여서 윈도우처럼 휴지통으로 이동하는 기능이 있으면 좋겠다싶었습니다.  찾아보니까 alias라고 별칭을 만들어주는 기능이 있어서 그 기능을 이용해서 그 기능을 한번 적용해서 안전장치를 하나 둬보겠습니다.   Alias리눅스에선 자신이 많이 사용하는 명령어를 alias로 만들 수 있습니다. alias를 사용하는 방법은 두가지 방법이 있습니다.  현재 사용자만 alias 등록모든 사용자의 alias 등록먼저 현재 사용자의 alias를 등록해보겠습니다.  현재 사용자 alias 등록현재 사용자..

리눅스 파일, 폴더 권한 부여

리눅스에는 파일 혹은 폴더에 권한을 부여하고 관리할 수 있습니다. 정확히는 유닉스라고 해야겠네요.  이번 포스팅에선 파일 혹은 폴더에 권한을 부여하고 관리하는 방법에 대해서 공부한 내용을 정리해보도록 하겠습니다.  파일, 폴더 권한 부여파일, 폴더에 권한을 부여하는 방법에는 두가지 방법이 있습니다. 777과 같이 숫자로 부여하는 방법과 u+x와같이 문자로 부여하는 방법입니다.  먼저 숫자로 부여하는 방법에 대해서 알아보도록 하겠습니다.   기본적으로 파일이나 폴더를 만들면 상태는 rwxr-xr-x입니다. 폴더를 소유한 ec2-user와 폴더를 소유한 그룹인 ec2-user는 이 파일에 대한 권한을 나눠받습니다.  소유자인 ec2-user는 읽고, 쓰고, 실행할 권한이 있고, 그룹인 ec2-user는 읽고..

리눅스 커널

리눅스를 공부하다보니 리눅스 커널이라는 것을 공부하면 좋다고 하더군요. 원래 이론공부는 나중에 하는 편이지만 이론공부도 좋아하기 때문에 한번 공부해봤습니다.  리눅스 커널우선, 커널이 뭔지 개념을 잡고 넘어가면 좋을 것 같습니다. 커널은 컴퓨터에 장착되어 있는 하드웨어 제품들 (하드디스크, 메모리, CPU, 키보드, 마우스, 모니터 등등...) 을 소프트웨어로 추상화하여 OS가 사용할 수 있도록 하는 것입니다.  즉, 쉽게 말해 커널은 OS가 하드웨어 디바이스를 제어하기위한 중계자 역할을 한다는 것입니다.  우리는 그 중에서 리눅스 커널에 대해서 알아볼 것입니다. 윈도우도 커널이 있습니다! 하지만 우리는 윈도우로 개발할 것은 아니기 때문에 리눅스로 한번 알아봤습니다.  리눅스 커널에는 크게 다섯가지 관리..