본문 바로가기

생각/넋두리

여러 사용자의 화면의 data에 sync가 맞아야 한다면?

여러 유저가 접속하였고 하나의 자원에 동시에 접근합니다.

그리고 이 여러 유저들은 그 자원 상황을 공유하게되는데 이는 업데이트가 가능한 자원이라

여러 유저중 한명이 그 자원에 업데이트를 해버리면 나머지 유저들은 업데이트된 값을 봐야겠죠?


이는 운영체제나 프로그래밍 언어를 배울 때에 처음 접하는 동기화 문제가 우선되어야 합니다.

그럼 공유라는 문제를 해결할 수 있습니다.


다음 문제는 모든 사용자가 같은 화면을 봐야 하는 문제인데 이는 push + observer pattern으로 해결할 수 있습니다.


하지만 고민되는 것은 시간입니다.

누군가가 update를 실행하였을 때에 정상적인 흐름으로 프로세스가 진행되었다면

이때 옵저버가 나머지 사용자에게 push를 날려야 하는데

그 사이에 누군가가 update를 시도한다면???

때마침 아쉽게도 그 update 대상인 공유 자원이 더이상의 update를 허용하지 않는다면???


이런 경우인거죠.

A팀에서 가지고 있는 예산에 대하여 기안을 올려 지출을 하려는데

B팀에서 그 예산에 대해 또 기안을 올려 지출하려는 순간입니다.

공유자원인 예산은 A팀으로 인하여 얼마남지 않아 B팀의 지출을 허용할 수 없는거죠.

이건 잘못된 것이 아니라 올바른 프로세스이지만 사용자 입장에선 예외의 상황입니다.


기술적인 문제는 위처럼 해결할 수 있을듯한데 아래의 경우는 합의가 필요한 문제가 있지 않나 싶네요.


그게 아니라 기술적으로 방법이 잘못되었다면 어떻게 고쳐야할까요??

오늘 경영지원쪽에서 근무하는 친구에게 어떤 이슈를 듣고 생각해본 문제였습니다. ㅎㅎ