mage

POST : 분류없음

Mock 에 대한 이야기(코드 없음)

프로그램을 테스트할 때 실제 객체를 사용하는 것 보다 mock 객체를 이용하는게 좋다고들 알고 있을것이다. 지금부터 하려는 것은 이 mock이라는 것에 대한 이미지를 생성하는데에 또는 mock을 좀더 친근감있게 접근하기 위한 예제를 하나 듣게되어 기록용으로 적어두려 한다.

미 대통령 전용 비행기의 이름이 에어포스라 한다. 뭐 정확히 뒤에 뭐 붙는거 같은데 중요하지 않으니 넘어가자. 대통령은 저런 전용비행기도 있고 좋겠다.. 여튼 대통령이 타는 저 비행기는 홍보도 하고, 이것도 하고 저것도 하고.. 여튼 여기저기 모습이 많이 공개가 된다. 그런데 대통령이 타고 있으니 저런 비행기가 나타나면 비행기 == 미 대통령 이라고 봐도 무방하지 않은가? 즉 안전문제가 있다. 그래서 테러리스트등을 속이기 위해 똑같은 모양의 모형비행기가 또 있다고 한다. 여기서 모형을 Mock-up이라고 쓴다. 진짜같은 가짜. 이것이 바로 mock이다.

실제 테스팅에 사용되는 mock객체와 머릿속으로 대충 비교해보면, 저런 의미와 비슷하지 않은가? 테러리스트들은 안에 대통령이 타고 있는지 모르지만, 에어포스만 보이면 로켓을 날리면 된다. A객체는 B객체가 진짜 그놈인지 잘 모르겠지만-_- 메서드를 부르면 된다. 물론 mock객체는 그 메서드에 반응하겠지. 다른점은 mock-up된 에어포스가 박살나면 테러리스트들은 대통령이 죽었다라는 뉴스(return값)대신 '니들 이제 뒤졌음 ㅋㅋ'등의 다른 뉴스를 듣게 될것이다.(여러가지 사정으로 대통령이 죽었다는 뉴스가 흘러나올수도 있지만, 그렇지 않다고 치자) 하지만, 객체의 경우에는 대통령 객체라 할지라도, 충분히 속을만한 정상적인 리턴값을 받게 될 것이다.

나도 이걸 보고 mock객체에 대한 부담감을 좀더 줄일 수 있었다.-_-) 이상 새로운 용어에 부담감/거부감을 느끼는 분들을 위한 예제였다.
top

posted at

2009/04/30 15:35


POST : 분류없음

비관적 잠금(Pessimistic Locking)과 낙관적 잠금(Optimistic Locking)

낙관적인 잠금은 레코드를 업데이트 할때에 버전을 보고, 충돌나면 그 에러를 처리하고, 충돌나지 않으면 그냥 업데이트 한다.
비관적인 잠금은 레코드를 갱신하는 동시에 해당 컬럼을 잠그고, 트랜잭션이 커밋되면 잠금을 푼다.

나는 이 ’비관적인’과 ‘낙관적인’이라는 단어가 참 마음에 안든다. 하지만 원서에는 그렇게 써있고, 아무리 뜻을 찾아봐도 그 이상의 뜻은 나타나지 않아서 아예 ‘왜 저렇게 썼나’라는 이유를 알아보았다. 이유는 간단했다. 동작 방식에서 잠그는 주체의 성격을 나타낸것이다. ’에이, 뭐 일단 해보고 안되면 말지’ 라는 생각을 가지면서 트랜잭션을 수행하는 녀석은 낙관적인 녀석이다. ’내가 이 일을 하는 동안 분명히 충돌날꺼야. 나쁜일이 일어나고 말꺼라고!’ 라고 생각하는 녀석은 비관적인 녀석이다. 그래서 이러한 이름을 붙인 것이다-_-);

......까지 쓰고 찾아보니까 굉장히 널리 쓰이는 단어였다. 나만 몰랐네 ㅎㅎ
top

posted at

2009/03/11 23:39


CONTENTS

mage
BLOG main image
우물 안 개구리
RSS 2.0Tattertools
공지
아카이브
최근 글 최근 댓글 최근 트랙백
카테고리 태그 구름사이트 링크