드림위버 8, CSS 코드가 손실되는 치명적 오류 경고.

드림위버의 ‘Files’ 패널에서 폴더명칭을 바꿀때 발생하는 치명적인 버그에 대하여 리포트 합니다. 이 버그는 제가 작년 드림위버 8버전의 베타테스트를 실시할 때에도 2회나 발견되었지만 버그를 유발하는 스텝을 정확하게 기억하지 못한 관계로 ‘간헐적 오류’ 로만 판명되었으며, 원인을 찾지 못하고 디버깅 되지 않은 상태로 제품 출시가 되었습니다. 현재는 이 치명적인 버그를 4회째 경험한 상태이고 버그를 유발하는 스텝을 정확하게 인지하였기에 다음과 같이 오류상황을 보고합니다.

오류는 ‘Rename & Update Files’ 작업 수행시 발생

‘Files’ 패널에서 폴더 명칭을 바꿀 때 해당 경로를 참조하는 CSS 파일들의 코드가 자동으로 업데이트 되도록 하고자 한다면 CSS 문서를 열어놓고 이 작업을 수행하지 마십시오.

CSS 문서를 열어둔 상태로 폴더 명칭을 변경하는 순간 해당 폴더를 참조하는 CSS 코드가 자동으로 업데이트 되면서 업데이트되어야 할 CSS 파일이 1KB의 데이터만 남겨놓고 모두 삭제되는 버그 입니다. 삭제된후 자동으로 저장 되고 이를 되돌릴 수 없으므로 매우 치명적 입니다.

CSS 데이터가 삭제되는 오류를 유발하는 스텝

  1. 로컬 사이트의 모든 CSS 파일을 연다.
  2. CSS 코드에서 이미지 경로로서 참조하고 있는 특정 폴더의 명칭(예:img 따위)을 변경한다.
  3. 이 때 ‘Update Files > Update links in the following files?’ 라고 묻는 대화상자가 나타나며 ‘Update’ 될 파일들의 목록이 대화상자에 나타난다. ‘Update’ 버튼을 눌러서 이 폴더의 경로를 참조하는 문서코드가 자동으로 업데이트 되도록 한다.
  4. 폴더의 명칭이 변경된 후 드림위버는 자동으로 이 폴더를 참조하는 경로가 포함된 HTML 및 CSS 문서의 코드를 업데이트 한다.
  5. 작업이 끝난 후, 열려있던 CSS 문서를 확인해보면 자동으로 업데이트 되어야 할 파일의 코드가 정확하게 1KB 의 분량만 남고 모두 제거된 상태로 남아서 이미 저장된 상태로 존재하며 이를 되돌리기(Ctrl+Z) 할 수 없다.
  6. 이 때 ‘로컬과 원격 동시저장’ 기능을 사용하는 사람이 이러한 사실을 모르고 문서를 모두 저장(Ctrl+Alt+Shift+S)하거나 또는, ‘로컬과 원격 동시저장’ 기능을 사용하지 않더라도 이 파일을 원격에 업로드 하게 되면 ‘로컬과 원격’ 모두 손실된 데이터로 동기화가 되므로 데이터가 사라진 CSS 문서를 복구할 수 없는 상황이 발생한다.

2007년 1월 31일, 버그의 원인을 뒤늦게 발견하다

CSS 코드에 /*한글 주석*/ 이 포함된 경우 이와 같은 문제가 발생하는 것으로 확인되었습니다.

이 사실을 모르고 버그에 일격 당하는 순간 극도로 흥분된 상태에서 ‘자살충동’ 에 휩싸일 수 있으므로 유의하십시오.

분류: 드림위버 | 2006년 10월 20일, 18:46 | 정찬명 | 댓글: 3개 |
트랙백URI - http://naradesign.net/wp/2006/10/20/80/trackback/

3개의 댓글이 있습니다.

  1. 강성국 님의 말:

    곧 패치 나올까요? -.-a

  2. 정찬명 님의 말:

    Adobe 측에서 이 사실을 알기나 할런지 모르겠습니다.ㅎㅎ. 그리고 곧 드림위버 9버전 나옵니다. 가능하면 드림위버 8에서 이 버그를 유발하는 스텝을 피해가시는 것이 좋겠습니다.

  3. 정찬명 님의 말:

    이 버그의 원인을 찾았습니다. 이 버그를 유발하게 된 직접적인 원인은 바로 CSS 코드에 포함된 /*한글 주석*/ 이었습니다. 황당하죠? Abobe 사에 버그로 리포트 되었으므로 새로운 제품에는 아마 이 문제가 해결되어 출시될 것입니다. 기쁘네요 ^^; 제가 사람 목숨 여럿 살렸다고 생각합니다.

댓글 남기기

전송된 글이 나타나지 않는다면 필터링 된 것입니다. dece24앳gmail.com 으로 메일 주세요.
(X)HTML 코드 사용이 가능하지만 소스 코드 출력을 원하시면 <꺽쇠>는 [괄호]로 변환하여 작성해 주세요.

필수 아님

필수 아님