어떻게 같은 걸 동시에 고치면
둘이 같은 순간에 같은 것을 고치면 결과가 틀어질 수 있다. 답은 한 명씩 차례로 고치는 것이에요.
둘이 같은 칸을 고치면
벽에 숫자가 적힌 노트가 한 장 붙어 있고, 지금은 10이다. 두 사람이 저마다 여기에 1을 더하려고 한다.
한 사람이 10을 보고 머릿속으로 11을 만든 뒤 노트에 11을 적는다. 다른 사람도 똑같이 한다. 그런데 둘이 거의 같은 순간에 시작하면 둘 다 처음의 10을 보고 둘 다 11을 적는다.
1을 두 번 더했으니 12가 되어야 하는데 결과는 11이다. 한 번이 사라졌어요. 같은 것을 같은 순간에 고치다 생긴 사고다.
조회수나 통장 잔액처럼 여럿이 함께 고치는 숫자에서 이런 사고가 나면 한 번의 변화가 소리 없이 사라진다.
같은 것을 같은 순간에 고치면 결과가 틀어질 수 있어요.
같은 동작, 다른 결과
똑같은 두 사람이 똑같이 1씩 더하는데, 이번에는 타이밍만 바꿔 보자.
차례로 하면 한 사람이 10을 보고 11을 쓰고 끝낸 다음, 다른 사람이 그 11을 보고 12를 쓴다. 결과는 12로 맞다.
겹쳐서 하면 한 사람이 10을 읽고 아직 쓰기 전에 다른 사람도 10을 읽어 버린다. 둘 다 11을 쓰고 결과는 11, 틀렸다.
동작은 글자 그대로 똑같았다. 언제 끼어들었느냐는 타이밍 하나가 맞고 틀림을 갈랐어요.
그래서 이런 문제는 열 번에 아홉 번은 멀쩡하다가 어쩌다 한 번 틀리기 때문에 잡아내기가 유난히 까다로워요.
같은 더하기라도 차례로 하면 맞고, 겹치면 틀린다.
결과를 가른 것은 동작이 아니라 언제 끼어들었느냐는 타이밍이에요.
직접 겹쳐 본다
두 일꾼이 같은 값에 저마다 1을 더한다. 둘이 얼마나 겹쳐서 시작하는지 직접 조절해 보자.
충분히 떨어뜨리면 한 명이 다 끝낸 뒤에 다른 한 명이 시작해서 결과가 맞다. 가깝게 붙이면 한 명이 쓰기 전에 다른 한 명이 읽어 버려 한 번이 사라진다.
슬라이더를 움직이며 어느 지점부터 결과가 틀어지는지 찾아보자. 똑같은 두 동작인데도 겹치는 순간 결과가 무너져요.
아주 짧게만 겹쳐도 한 번이 사라질 수 있으니, 타이밍이 겹치지 않기를 바라는 것은 진짜 해결책이 아니다.
겹치는 정도를 바꾸면 언제부터 결과가 틀어지는지 보인다.
둘을 떨어뜨리면 결과가 맞고, 겹칠수록 틀어질 위험이 커져요.
한 명씩 차례로 하면
그럼 어떻게 막을까? 답은 단순하다. 같은 것을 고치는 동안에는 한 명만 손대게 하는 것이다.
한 사람이 읽고 고치고 쓰는 동안 다른 사람은 기다린다. 그 한 묶음이 끝나야 다음 사람이 시작한다. 한 칸짜리 화장실에 줄을 서듯, 안에 사람이 있으면 문이 잠기고 나와야 다음 사람이 들어간다.
이렇게 하면 겹칠 일이 없으니 결과가 늘 맞아요. 대신 기다리는 시간이 생긴다. 안전을 위해 잠깐의 줄 서기를 받아들이는 셈이다.
핵심은 읽고 고치고 쓰는 세 동작을 하나로 묶어 지키는 것이다. 쓰는 순간만 막고 읽기를 열어 두면 빈틈이 다시 생겨요.
같은 것을 고치는 동안에는 한 명만, 나머지는 줄을 서서 기다린다.
같은 것을 한 명씩 차례로 고치게 하면 겹침이 사라져 결과가 안전해져요.
한 장으로 정리
기억할 것은 셋이다.
첫째, 같은 것을 같은 순간에 고치면 사고가 난다. 둘이 동시에 더하면 한 번이 사라지듯 결과가 틀어질 수 있다.
둘째, 동작이 아니라 타이밍이 문제다. 똑같은 일도 차례로 하면 맞고 겹치면 틀린다. 셋째, 한 명씩 차례로 하게 하면 안전하다. 같은 것을 고치는 동안 한 명만 손대고 나머지는 줄을 서서 기다리면 결과가 늘 맞다.
무언가를 여럿이 함께 쓰면서 일이 동시에 벌어질 때 순서는 저절로 지켜지지 않아요. 그 순서는 우리가 정해 줘야 한다.
동시에 + 함께 쓰기는 사고, 문제는 타이밍, 한 명씩이 안전.