3. 실행 취소
| 3장. 윌버와 함께하는 첫 단계 |

## 3. 실행 취소

고친 과정
고침 $Revision: 2353 $ | 2006-05-02 | j.h

김프에서 이미지에 작업한 대부분의 일은 취소할 수 있다. 가장 최근에 한 작업을 취소하려면 이미지 메뉴에서 편집 → 실행 취소 를 선택하거나 단축키 Ctrl+Z 를 사용하면 된다.

실행 취소 또한 취소될 수 있는데, 이것은 실행 취소를 한 다음에 이미지 메뉴에서 편집 → 재실행 를 선택하거나 단축키 Ctrl+Y 를 누르면 된다. 실행 취소와 재실행은 종종 특정 작업의 효과 를 확인하기 위해 사용되는데, 대체로 빠르고, 추가적인 리소스도 필요하지 않고, 실행취소 이력에 어떠한 영향도 주지 않기 때문에 여러번 반복해도 무방하다.

| 경고
하나 혹은 여러 개의 작업을 취소한 다음에 실행취소나 재실행 이외의 다른 작업을 하면 더이상 취소했던 작업들을 재실행할 수 없게 된다. 이러한 문제를 피하려면 이미지를 복사해서 복사한 이미지에 작업을 하면 된다(원본에 작업을 하면 안된다. 실행 취소 이력은 복사되지 않기 때문이다).

자주 한번에 많은 과정을 실행 취소하거나 재실행해야 한다면, 실행 취소 이력 대화상자 를 이용하면 편리하다. 이 대화상자에는 실행 취소 이력의 각 포인트마다 개략적 미리보기가 있어 단지 클릭만 함으로써 해당 과정으로 실행 취소하거나 재실행할 수 있다.

실행취소는 이미지 기본 요소로 이루어지는데, "실행 취소 이력" 은 이미지의 구성 요소 중 하나이다. 김프는 각 이미지의 실행 취소 이력을 위해 메모리의 일부를 할당하고 있다. 기본 설정 대화상자의 환경 페이지를 통해 이에 대한 설정을 변경할 수 있다. 해당 페이지를 보면 중요한 두 가지 변수가 있는데, 하나는 이미지의 메모리 사용량에 관계없이 최소 실행 취소 횟수이고, 나머지는 실행 취소에 할당되는 최대 실행 취소 메모리이다. 이 메모리량을 초과하면 오래된 실행 취소 이력부터 삭제된다.

| 참고
실행 취소 이력이 이미지의 한 구성요소이긴 하지만, 김프 고유 포맷인 XCF 포맷으로 저장하더라도 실행 취소 이력은 저장되지 않는다. 저장한 이미지를 다시 열면 실행 취소 이력은 비어있게 될 것이다.

김프에서는 실행 취소가 꽤 근사하게 구현되어 있다. 대부분의 작업들은 아주 작은 실행 취소 메모리를 필요로 할 뿐이기 때문에(레이어의 보기 전환처럼), 꽤 많은 과정들을 저장해둘 수 있다. 앞서 말한 레이어의 보기전환과 같은 몇몇 작업들은 압축되어, 단지 하나의 포인트만을 기억해둠으로써 여러번 해당 과정을 반복할 수 있다. 그에 반면 필터와 같이 꽤 많은 실행 취소 메모리를 소모하는 작업들도 있다. 그 까닭은 김프 코어는 플러그인에 의한 작업에 직접적으로 관여하지 않기 때문에, 플러그인에 의해 변화된 점에 대해 알 수 없다. 따라서 실행 취소 이력에 플러그인 적용 전과 후를 모두 기록해 두어야 하기 때문이다. 이러한 작업들은 실행 취소 이력에 겨우 몇번밖에 기록될 수 없다.

### 3.1. 실행 취소를 할 수 없는 것들

이미지를 편집하는 대부분의 작업들은 취소를 할 수 있다. 그에 반면 이미지 편집과 관련이 없는 작업들은 취소를 할 수가 없다. 예를 들어 이미지를 파일로 저장하거나 복사하거나, 이미지의 일부를 클립보드로 복사하는 경우이다. 그리고 확대해서 보기 등 이미지에 어떠한 변형이 없는 작업도 마찬가지이다. 예외적으로 퀵마스크 전환은 이미지에 변형을 가하진 않지만 실행 취소가 가능하다.

이미지에 변형을 가하지만 취소할 수 없는 작업 목록 :

이미지 닫기

  실행 취소 이력은 이미지의 구성 요소이다. 따라서 이미지가 닫히면 그 기록은 모두 사라진다. 그런 이유로 이미지를 변경한 후 저장하지 않고 닫을 경우 김프는 항상 확인을 한다(기본 설정 대화상자의 환경 페이지에서 이 기능을 중지시킬 수도 있다. 하지만 그로 인해 발생되는 문제는 스스로 책임을 져야 한다).

이미지 원래대로 만들기

  “원래대로” 라는 것은 이미지를 파일로부터 다시 읽어들이는 것을 말한다. 김프에서 이 메뉴를 실행시키면 현재 이미지를 닫고 새로 이미지를 다시 열기 때문에 실행 취소 이력은 모두 사라지게 된다. 이 역시 이미지가 변형되었다면 원래대로 만들기 전에 항상 확인을 하게 된다.

동작의 “부분들”

  어떤 도구들은 해당 도구를 사용하기 위해 복잡한 편집과정들을 요구하는 경우가 있다. 이런 경우 그 각각의 과정들에 대해서는 실행 취소를 할 수 없고 오직 전체 과정에 대한 실행 취소만 할 수 있다. 예를 들어 "똑똑한 가위" 도구는 이미지 위에 여러 지점을 찍어 폐쇄된 경로를 만들고, 그 내부를 클릭해서 선택으로 만들어야 한다. 여기서 실행 취소를 하면 바로 직전에 한 클릭이 아닌 "똑똑한 가위" 를 시작한 처음 지점으로 돌아간다. 다른 예를 들자면, 텍스트 도구를 사용할 경우, 각각의 문자나 글씨체 변환 등의 작업은 취소할 수가 없고, 실행 취소를 하면 텍스트 레이어가 사라지며 새로운 텍스트 레이어가 나타난다.

플러그인이나 스크립트에 의해 실행된 필터나 다른 작업들 역시 김프에 의해 직접 실행된 작업들처럼 실행 취소를 할 수 있는데, 단 실행 취소 기능의 사용에 문제가 없을 때만이다. 이것은 해당 플러그인이나 스크립트의 코드가 정확하지 않아서 김프의 실행 취소 기능과 충돌할 가능성이 있을 경우, 해당 작업뿐만 아니라 그 전의 작업들마저도 취소할 수 없는 일이 발생될 수 있다라는 말이다. 김프에 포함되어 배포되는 플러그인이나 스크립트를 제외한 다른 경로로 설치한 플러그인이나 스크립트의 경우에 이런 문제가 발생할 수 있다. 또한 코드가 정확하더라도 해당 플러그인이 작동되는 중간에 취소를 하는 경우, 실행 취소 이력에 문제가 생길 수도 있다. 따라서 순차적으로 진행되는 과정 중간에 종료하지 않는 것이 이러한 문제를 피하는 최선의 방법이다.

2.3. 대화상자와 도킹 |  | 4장. 문제 해결