1111 그리니의 미생

Lilac00xx·2024년 11월 11일

그리니의미생

목록 보기
1/8

오늘은 고래 첫날이다!

어쩌다보니 빼빼로데이에 와서, 사진첨부가 안되네 ㅠ 빼빼로를 받게 되었다.
3개라늬

와서 여차저차 안내를 듣고 나서, erp 레포를 확인 하려는데 의존성 설치가 잘 안되어서 난리가 났다.

이를 해결하는 방법으로 완님께서 도와주셨고, 핵심은

'다운 그레이드'

pnpm과 node의 버전이 맞지 않아 생기는 어려움이었고 꽤 오랜 시간 후 해결이 되었다.

이후엔 기존의 코드와 확인을 해놓고나서, 5시부터 개발자 직무회의에 참여했다.

오늘의 주제는 '분산락'으로

이게 뭐냐면,

분산락

분산락은 여러 노드가 동시에 자원에 접근하려고 할 때, 이를 조율하여 데이터의 일관성을 유지하는 데 필수적이다.

분산락의 필요성

동시성 제어: 분산 시스템에서는 여러 클라이언트가 동시에 같은 자원에 접근할 수 있다. 이때 자원의 일관성을 보장하기 위해 분산락이 필요하다.

데이터 무결성 유지: 분산락은 데이터의 무결성을 유지하며, 동시에 발생할 수 있는 충돌을 방지

분산락의 구현 방법

Redis: Redis의 SETNX(Set if Not Exists) 명령어를 사용하여 간단한 분산락을 구현할 수 있다. 이를 통해 키가 이미 존재하는지 확인하고, 존재하지 않으면 설정함으로써 락을 획득하는것.

분산락의 문제점과 해결책

데드락(Deadlock): 두 개 이상의 프로세스가 서로의 자원을 기다리며 무한 대기 상태에 빠질 수 있다. 이를 방지하기 위해 타임아웃을 설정하거나, 락을 순서대로 획득하는 전략을 사용할 수 있다.

네트워크 분할(Network Partition): 네트워크 장애로 인해 노드 간의 통신이 불가능할 때, 락의 일관성을 유지하기 어려울 수 있다. 이를 해결하기 위해 강력한 일관성 모델을 사용해야 한다.

분산락의 성능 및 확장성

성능 최적화: 락의 경합을 줄이고, 락 획득과 해제의 오버헤드를 최소화하기 위한 최적화 기법이 필요하다.

확장성: 시스템이 확장될 때, 락의 관리가 복잡해질 수 있다. 분산락의 성능을 유지하면서 확장성을 보장하는 전략이 필요하다.


추가로 알게 되어 재미있었다!

이제 내일은 아마 집중해서 erp 코드 전반적으로 볼것 같다. + 노션까지

profile
Challenge & Change

0개의 댓글