이 문제는 한 계정에서 다른 계정으로 돈을 옮기는 프로시저인 transfer 프로시저는

exchage 프로시저처럼 정교한 줄 세우기를 해야하는가를 따지는 문제입니다.

 

처음에는 해야하는 것인가 고민하였습니다.

하지만 왜 exchange 프로시저가 serialized-exchange 프로시저로 되어야 하는지

연습문제 3.43에서 그린 Timing Diagram을 보고 그 생각이 틀림을 알았습니다.

 

 

위 그림을 보면 exchange의 경우 각 계좌에서 balance(잔액)을 살핀 후

그 차이를 변화량으로 사용합니다.

하지만 transfer의 경우 amount를 인자로 받아들이기에

잔액 조회가 동시에 이루어져 혼란이 생기는 일은 발생하지 않습니다.

따라서 굳이 엄밀하게 하지 않아도 된다고 생각합니다.

 

 

참조

해럴드 애빌슨, 김재우 역, <컴퓨터 프로그램의 구조와 해석>, 인사이트, 2007, pp. 402

크리에이티브 커먼즈 라이선스
Creative Commons License

글에 잘못된 점, 다른 점, 부족한 점이 있다면 지적해주세요.
댓글, 트랙백, 메일 모두 고맙습니다.

트랙백 주소 :: http://nosyu.pe.kr/trackback/1602

댓글을 달아 주세요

[로그인][오픈아이디란?]