파일 교체를 위해 DeleteFile 후에 MoveFile을 하는 기존 코드가 있어서
이번에 MoveFileEx로 바꿨습니다. MoveFileEx의 경우 플래그를 지정하여,
기존 MoveFile에 비해 다양한 동작을 할 수 가 있는데요.(MSDN 참고)

그중 MOVEFILE_REPLACE_EXISTING 플래그를 이용하여
DeleteFile을 하지 않고 파일을 오버라이팅 하는 기능을 사용하였습니다.

기존에 어떤 문제인지(안티 바이러스로 의심하고 있습니다.) 파일 권한 때문에
DeleteFile과 MoveFile을 해서 파일을 교체하는데 실패가 빈번히 발생하고 있어서 수정을 해봤는데요.

MoveFileEx로 교체 후에는 특이하게 사용자의 OS가 Vista일 경우에 에러 5를 내뱉으며 실패를 하게 되었습니다.
(MoveFileEx는 윈도우 2000 이상부터 사용할 수 있습니다.)

에러코드 5번은 Access denied로 파일에 권한이 없어 실패한 경우 입니다.
이것도 테스트 결과 기존에 있던 파일에 권한은 상관이 없고 새로 교체하려는 파일에 권한이 없을 경우에 발생하는 에러입니다.
(신기하게 기존에 있던 파일에 접근 권한이 없더라도 새로운 파일로 교체가 되더군요.)

사용자들의 OS 분포도를 비교했을 때 확실히 윈XP와 윈7에서 실패율은 떨어졌지만
Vista의 실패가 급증해서 결국 기존과 비슷하거나 상황이 더 악화되어버린 것이죠.

그래서 왜 Vista에서 MoveFileEx가 실패하는지에 대해 여러곳으로 검색을 해봤는데요.
결론은 Vista에서 돌아가고 있는 Window Search(SearchIndexer.exe)라는 서비스 때문이였습니다.

Vista의 경우 빠른 파일 검색을 위해 Window Search라는 서비스가 돌아가고 있는데요.
Window Search가 인덱싱을 위해 파일에 어떤 짓을 하는지 모르겠지만
서비스를 정지시켜놓고 MoveFileEx를 테스트 할 경우 실패를 하지 않고, 서비스가 돌아갈 때는 에러 5로 실패를 하더군요.

아래는 구글링을 통해 찾은 정보 입니다.
http://stackoverflow.com/questions/153257/random-movefileex-failures-on-vista-access-denied-looks-like-caused-by-search-i

윈도우XP와 윈도우7에도 Window Search 서비스는 존재하는데요.
윈도우 XP는 나중에 업데이트를 통해 추가 된 기능입니다.
즉, Vista를 통해 Window Search 기능의 문제가 될만한 점을 파악하여
MS에서 나중에 들어간 윈XP와 윈7에는 수정을 한게 아닌가 싶습니다.

윈도우XP와 윈도우7에서는 Window Search 서비스의 시작 유무에 상관 없이 잘 되고있거든요.

그리고 위 URL 주소에 해결책으로 파일 속성을 FILE_ATTRIBUTE_TEMPORARYFILE_ATTRIBUTE_NOT_CONTENT_INDEXED로 설정하면 Vista에서 MoveFileEx의 설치 실패율이 떨어진다고 되어있는데요.
테스트 결과 FILE_ATTRIBUTE_TEMPORARY는 확실히 설치 실패율이 떨어지지만
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED는 별다른 영향을 미치지 않은 것으로 나타났습니다.

FILE_ATTRIBUTE_TEMPORARY 속성은 인터넷 임시 파일 처럼 곧 삭제될 또는 삭제 되어도 아무 상관 없다는 의미를 가지고 있습니다.
클라이언트가 일반적으로 사용하는 파일에 적용하기에는 무리가 따르는 속성인데요.

결국 Vista에서 MoveFileEx를 사용할 수 없다는 결론을 내렸습니다.
(물론 사용자의 OS가 Vista이고 Window Search 서비스가 돌아가는지 판단하여 코드를 짤 수도 있겠지만,
이를 위해 클라이언트에 부하를 주느니 Vista 유저일 경우는 전부 DeleteFile과 MoveFile을 이용하는게 나을 것 같습니다.)

매일 남은 점심시간부터 오후 1시 30분 정도까지
팀이 함께 게임을 시작했습니다.

우리의 게임과 타 게임의 특성과 장점들을 파악하자는 취지에서 시작을 했는데요.
맨 처음에는 던파를 했었습니다. 던파는 윈도우7에서 돌아가지를 않아서 -_-

이번에는 버블파이터를 해보았습니다.

저연령층도 쉽게 FPS에 접할 수 있도록 만들어진 물총 싸움 게임입니다.
특이한 점은 여타 FPS처럼 총으로 상대를 가격해서 죽이는게 아닙니다.

저연령층에 맞게 상대방을 죽이는게 아니라 물총으로 상대를 버블(물방울)에 가두고
버블에 갇힌 상대방을 가까이 가서 직접 팡(타격)해주어야지만 점수가 인정이 됩니다.
같은 팀이 버블에 갇힌 팀원에 터치를 하면 물방울에서 풀릴 수 있습니다.

이점이 굉장히 까다롭더군요. 물총으로 싸운다는건 결국 원거리 대결인데요.
원거리 대결에서 이겨도 직접 다가가서 팡을 하지 않는 이상 의미가 없게 됩니다.
결국 원거리에서 타격을 하고 직접 상대방 위치까지 다가가야 한다는 것입니다.
적진에 뛰어들라는거죠! 필히 근방에 다른 적들이 포진해 있을텐데 말이죠...

게다가 저연령층을 타겟으로 했다고 상대방을 조준하는 것을 너무도 쉽게 하여
아무리 잘한다 해도 어느정도 지속적으로 타격을 받을 수 밖에 없습니다.

그러다 보니 조금 답답하더군요.
상대방을 버블에 가둬놓고도 팡을 하러 다가가다가 허다하게 죽게 됩니다.
오히려 다가가는 중에 팀원이 구해주고 두명이 함께 사격을 하여 죽게 되는거죠.

게임이란게 어느정도 익숙해 질수록 내가 잘하고 있다는 느낌을 받아야합니다.
근데 버블파이터 같은 경우에는 그점이 없어보입니다.

너무 저연령층을 의식해서 게임을 쉽게 만든게 독이 아닐까 싶습니다.
요새는 초등학생들도 어느 정도의 난이도에 게임을 쉽게 잘합니다.
게임 조작을 너무 쉽게 만들어 게임에 익숙해질수록 지루해지는 느낌이 드는 것 같습니다.

'구경하기 > 게임' 카테고리의 다른 글

버블파이터  (0) 2009.11.19

20091114_기록

2009.11.18 19:20

실 워크샾을 다녀왔습니다~
저번주에 팀 회식때 실장님께서 실 워크샾에 대한 언급을 했는데
이렇게 일주일만에 뚝딱 갈줄은 ㅎㅎ;

워크샾이 끝나고 회사에 돌아오면서부터 하루가 이상하게 꼬이기 시작했습니다.
발단은 고가도로를 올라가는 길에 차 한대가 고장나서 멈춰있는데서 부터 시작 되었습니다.
고가도로로 올라가는 길은 1차선으로 좁게 빙 돌게 되어있습니다.
이런 길에 차 한대가 가로막고 있으니 버스를 타고 있는 저희로서는 앞으로 갈 수가 없었죠.
일반 차들은 어찌 어찌 지나간지라 버스는 앞에 차가 고장난지 모르고 진입을 한 상태구요.
뒤에는 이미 차들이 들어차서 중간에 끼어버리게 된겁니다.

근처에 역이 있다고 해서 몇몇 사람들과 내려서 걸어가기로 했습니다.
저는 순권형하고 7호선 역을 찾았죠.
내린 곳은 건대입구역 근처였습니다.

7호선 역을 찾으려고 몇몇 사람에게 물어봤습니다.
당시 제 핸드폰은 밧데리가 없어 전원이 꺼져있었고 형의 핸드폰은 지하철 노선도가 없었습니다.
근데 이게 어찌 꼬이고 꼬여서 사람들이 계속 이상하게 알려주는 겁니다 ㅠㅠㅠ
결국 그 근처를 빙 돌고 돌면서 1시간이나 걸어서 2호선 구의역에 도착 할 수 있었습니다.

우리는 7호선을 찾아서 묻고 다녔는데 어떻게 구의역으로 오게 되었는지 이해할 수가 없더군요.ㅠ
아 버스 타고 있었으면 훨씬 더 빨리 집에 갔었을 것을 이게 무슨...

그리고 전철을 타고 지하철 노선도를 보는 순간 벙찌더군요.
건대입구역이 7호선과 2호선 환승역이였더군요.
항상 2호선이라고만 생각해서 전혀 몰랐었는데!!!!

어째서!!! 아무도 가장 가까이 있던 건대입구역을 알려주지 않고!!!
아 정말 황당했습니다... 거기다가 7호선이 지나가고 있으니 근처에 다른 7호선 역들도 있었을텐데
왜 저희는 결국 2호선에 당도했는지...

정말 낚시 당하기에 연속 이였습니다. - _-

그리고 짜증나서 중간에 버스로 갈아타고 집에 오는데...
마지막으로 우산을 잃어버리더군요~ 아하하하하하 -
워크샾 가는날 비가 오길레 마침 우산도 사야하고 해서 출발하는 날 산 우산인데 말이죠

아하하하하하하하하......

'주절주절' 카테고리의 다른 글

20091114_기록  (0) 2009.11.18
20091112_기록  (0) 2009.11.17
20091111_기록  (0) 2009.11.11
20091102_기록  (0) 2009.11.11
20091025_기록  (0) 2009.10.27
20091007_기록  (0) 2009.10.09
◀ PREV | 1 | 2 | 3 | 4 | ··· | 10 | NEXT ▶

카테고리

분류 전체보기 (28)
주절주절 (15)
바라보기 (5)
구경하기 (4)
기억하기 (4)

최근에 받은 트랙백

달력

«   2019/08   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Total : 12,714
Today : 0 Yesterday : 0
Statistics Graph