레디스의 PSYNC에 대해 알게 되었고, 이를 정리하기 위해 글을 작성하게 되었습니다. 1. PSYNC PSYNC(Partial Resynchronization)는 레디스 2.8부터 도입된 복제 명령어로, 마스터와 레플리카 간의 동기화 효율을 높이기 위해 사용됩니다. When replicas connect to masters, t...
레디스 복제 동기화: PSYNC
PSYNC가 실패하면 정말 SYNC로 동기화를 할까?
Redis에서 PSYNC가 실패했을 때, SYNC로 동기화가 진행되는지 궁금증이 들었고, 이를 실습하는 과정에서 알게 된 내용을 정리하기 위해 글을 작성하게 되었습니다. PSYNC에 대한 개념은 해당 포스팅을 참조해주세요. 📝 1. 실습 준비 전체 실습은 Docker Compose를 사용해 6개의 Redis 노드를 구성하고, P...
Git에도 Lock이 있다?
글을 작성하게 된 계기 Git을 사용하던 중, HEAD에 Lock이 걸렸고, 커밋과 브랜치 이동이 되지 않았습니다. 집에 와서 이를 학습하던 중 알게 된 내용을 정리하기 위해 글을 작성하게 되었습니다. 1. 문제 상황 회사에서 커밋을 하던 중, 시간이 너무 오래 걸려 Ctrl + C로 해당 작업을 중지 했습니다. 이후 다시 커밋을 하니...
Gradle의 Incubating?
글을 작성하게 된 계기 Gradle을 사용하면서 Incubating 이라는 단어를 알게 되었고, 이를 정리하기 위해 글을 작성하게 되었습니다. 1. Incubating build.gradle.kts를 수정하던 중, 다음과 같은 경고를 마주치게 되었습니다. configurations { compileOnly { e...
CBC 모드에서도 IV 값이 고정되면 동일한 암호문이 생성될 수 있다
글을 작성하게 된 계기 회사에서 AES 알고리즘을 사용하던 중, CBC 모드도 IV 값에 따라 동일한 값이 나올 수 있다는 사실을 알게 되었고, 이를 정리하기 위해 글을 작성하게 되었습니다. 1. 왜 고정된 IV 값을 사용하려 했을까? 회사에서 클라이언트 개발자에게 AES 알고리즘의 CBC 모드 에서 고정 IV 값을 사용해달라는 요청 ...
운영 환경에서 수동 실행이 주는 유연함
글을 작성하게 된 계기 스케줄러/배치에서 실행 주기가 길 경우, 해당 Job이 실패했을 때, 잘 처리할 수 있는 방법을 고민하게 되었고, 이를 정리하기 위해 글을 작성하게 되었습니다. 이 부분은 정답이 없다고 생각하는데요, 저렇게 설계할 수도 있구나 정도로 생각해주시면 좋을 것 같습니다. 1. 자동/수동 실행 1:1 대응 스케줄러나 배...
기술도 중요하지만 비즈니스는 더 중요하다
글을 작성하게 된 계기 최근 회사에서 일하며 기술과 비즈니스 사이에서 고민이 많았습니다. 그 과정에서 느낀 점을 정리해 보고 싶어 글을 작성하게 되었습니다. 1. 기술은 수단이지 목적이 아니다 실무를 경험하며 가장 크게 느낀 점은, 기술도 중요하지만 비즈니스는 더 중요하다 는 점입니다. 취업 전에는 새로운 기술을 빠르게 익히고 적용하는...
serialVersionUID의 변경 조건은 어떻게 될까?
글을 작성하게 된 계기 serialVersionUID의 변경 조건을 알게 됐고, 이를 정리하기 위해 글을 작성하게 되었습니다. 1. serialVersionUID의 변경 조건 자바 직렬화에서 사용하는 serialVersionUID는 직렬화된 객체와 해당 객체를 복원할 클래스 간 버전 호환성을 검사할 때 사용됩니다. 이 값은 클래스 이름...
쿼츠를 사용해야 하는 이유, 다른 스케줄링 시스템과의 비교
글을 작성하게 된 계기 다른 스케줄링 시스템도 많은데 왜 쿼츠를 사용해야만 하는지 에 대해 고민하게 됐고, 이를 정리하기 위해 글을 작성하게 되었습니다. 1. 다른 스케줄링 시스템과 비교 스케줄링 시스템은 사용하는 환경, 목적, 복잡도에 따라 다양한 종류가 존재합니다. 이 중에서 쿼츠 선택해야 하는 상황을 판단하려면, 다른 주요 스케줄...
Kotest 테스트 케이스 개별 실행 팁
글을 작성하게 된 계기 Kotest를 Intellij에서 각 테스트를 개별로 실행하지 못하는 문제 를 해결하고 싶었고, 이 과정에서 Kotest 플러그인을 알게 됐습니다. 이를 정리하기 위해 글을 작성하게 되었습니다. 1. Kotest 실행하기 Kotest는 기본적으로 Intellij에서 클래스, 케이스 별로 실행이 되지 않습니다. ...