여러 유저가 접속하였고 하나의 자원에 동시에 접근합니다.
그리고 이 여러 유저들은 그 자원 상황을 공유하게되는데 이는 업데이트가 가능한 자원이라
여러 유저중 한명이 그 자원에 업데이트를 해버리면 나머지 유저들은 업데이트된 값을 봐야겠죠?
이는 운영체제나 프로그래밍 언어를 배울 때에 처음 접하는 동기화 문제가 우선되어야 합니다.
그럼 공유라는 문제를 해결할 수 있습니다.
다음 문제는 모든 사용자가 같은 화면을 봐야 하는 문제인데 이는 push + observer pattern으로 해결할 수 있습니다.
하지만 고민되는 것은 시간입니다.
누군가가 update를 실행하였을 때에 정상적인 흐름으로 프로세스가 진행되었다면
이때 옵저버가 나머지 사용자에게 push를 날려야 하는데
그 사이에 누군가가 update를 시도한다면???
때마침 아쉽게도 그 update 대상인 공유 자원이 더이상의 update를 허용하지 않는다면???
이런 경우인거죠.
A팀에서 가지고 있는 예산에 대하여 기안을 올려 지출을 하려는데
B팀에서 그 예산에 대해 또 기안을 올려 지출하려는 순간입니다.
공유자원인 예산은 A팀으로 인하여 얼마남지 않아 B팀의 지출을 허용할 수 없는거죠.
이건 잘못된 것이 아니라 올바른 프로세스이지만 사용자 입장에선 예외의 상황입니다.
기술적인 문제는 위처럼 해결할 수 있을듯한데 아래의 경우는 합의가 필요한 문제가 있지 않나 싶네요.
그게 아니라 기술적으로 방법이 잘못되었다면 어떻게 고쳐야할까요??
오늘 경영지원쪽에서 근무하는 친구에게 어떤 이슈를 듣고 생각해본 문제였습니다. ㅎㅎ
'생각 > 넋두리' 카테고리의 다른 글
프로그램은 아무나 짤 수 있다. (0) | 2013.01.08 |
---|---|
관습에 의한 코딩과 레거시코드. 그리고 나. (0) | 2012.11.06 |
그냥 돌아가는 코드 (0) | 2012.09.21 |
브라우저의 세션, 쿠키 공유.... (0) | 2012.06.15 |
아아 기초기초기초...javascript는 객체지향언어.[no!!!!] (0) | 2011.10.07 |