본문 바로가기

분류 전체보기136

Redis의 String이 빠른 이유 Redis String 데이터 구조의 구현체에 대해서 알아보는 글입니다. C에서 문자열을 구현해야 하면, 보통은 표준 C 라이브러리로 libc를 이용할 것 이다. Redis를 만든 살바토르 산필리포는 Redis의 String을 구현하며 libc를 사용하지 않고 직접 문자열 라이브러리를 만들었다. SDS(Simple Dynamic Strings)라는 라이브러리다. 이 글에서는 libc를 사용하지 않고 왜 문자열 라이브러리를 다시 만들게 되었는지, sds가 가지는 장점과 구현체가 어떻게 구성되어있는지 알아본다. SDS (Simple Dynamic Strings) https://github.com/antirez/sds Redis에서 문자열을 관리하는 라이브러리 Redis는 Binary Safe한 특징이 있다... 2023. 6. 10.
Rails ActiveRecord에서 after_*_commit이 의도대로 동작하지 않나요? Ruby on Rails의 ActiveRecord는 레코드가 생성, 변경, 제거되었을 때 동작하거나 데이터베이스에 커밋이 일어난 이후에 동작할 수 있는 콜백을 지원한다. 콜백으로 레코드의 라이프 사이클을 편하게 관리할 수 있어 백그라운드 작업을 처리할 때 많이 사용한다. 그런데 after_*_commit 을 여러개 정의하다보면 때로는 개발자의 의도와 다르게 특정 콜백이 동작하지 않는 것을 볼 수 있다. 특정 콜백이 동작하지 않음을 마주했다면 아마도 정의한 콜백이 override되었기 때문이라고 짐작된다. 이 글에서는 after_*_commit을 여러개 정의했을 때 특정 콜백이 동작하지 않은 이유를 설명하고 대안을 함께 소개하고자 한다. 우선은 after_*_commit 에 대해 다루기 전에, 주요 메소드.. 2022. 5. 22.
Redis 7.0.0 부터 CLI 내에서 명령어의 세부 설명을 확인할 수 있습니다 Redis 7.0.0이 한국 표준시로 2022년 4월 27일 오후 10시에 릴리즈 되었습니다. 새로운 키에 대한 키스페이스 이벤트가 추가되었고, Lua script 관련 보안 이슈, 성능 개선에 대한 작업이 이루어졌습니다. 그리고 명령어의 상세 설명을 확인할 수 있는 COMMAND DOCS가 추가되었습니다 이번 글에선 COMMAND DOCS 명령어에 대해서 보려고 합니다. 이전 버전까지는 redis의 명령어에 대해 찾아보려면 https://redis.io/commands/ 에서 검색해야 하였습니다. COMMAND 에 서브 명령어로서 DOCS가 추가되면서 이젠 웹 브라우저로의 전환 없이 CLI 상에서 전체 명령어의 설명 및 개별 명령어의 설명을 바로 확인할 수 있습니다. https://github.com/.. 2022. 4. 28.
git merge conflict가 발생하면 어떻게 하고 계시나요? git merge 과정에서 conflict이 발생할 때 새로 커밋을 추가하여 해결하고 계시진 않나요? 이 글에선 상황 별 사례를 통해 git merge 명령의 옵션을 통한 보다 깔끔한 버전 히스토리를 남기는 방법에 대해서 다룹니다 Git 버전 관리를 하며 여러 브랜치를 관리하다보면 merge 명령을 통해 브랜치의 내용을 내가 보고 있는 브랜치로 병합해야 하는 경우가 생긴다. 그러나 다른 사람이 나와 같은 코드를 수정하고 해당 브랜치를 merge하고자 할 때, 버전 히스토리가 다르거나 이외의 이유로 충돌이 발생하는 경우가 생기곤 한다. 이번 글에서는 git merge를 할 때 merge의 옵션을 이용해 conflict가 발생했을 때 간단하게 커밋 메세지를 남기는 방법에 대해서 다뤄본다. 우선 git con.. 2021. 11. 21.
반응형