21.마이그레이션

Edit
넥사크로플랫폼에서는 넥사크로 스튜디오에 포함된 마이그레이션 기능을 사용해 14 버전의 프로젝트를 17 버전의 프로젝트로 변환할 수 있습니다.

마이그레이션 기능은 환경(구조, 파일, 문법 등)을 자동 변환해주는 마이그레이션 마법사와 두 버전의 프로젝트를 비교, 분석할 수 있는 몇 가지 도구를 제공하여 사용자가 성공적으로 마이그레이션을 수행할 수 있도록 도와줍니다.

이번 장에서는 넥사크로 스튜디오를 통해서 제공되는 넥사크로플랫폼의 마이그레이션 기능과 사용법에 대해 살펴봅니다.

넥사크로 스튜디오의 마이그레이션 기능은 사용자의 마이그레이션 수행을 보조하는 도구일 뿐 완벽한 마이그레이션을 보장하지 못합니다. 실제로 프로젝트를 완벽하게 마이그레이션하려면 사용자가 직접 변환 결과를 확인하고 자동 변환에 실패한 파일에 대한 오류 해결 과정을 수행해야 합니다.

21.1진행 절차

마이그레이션의 진행은 크게 프로젝트 오픈, 마이그레이션 마법사, 오류 해결, 마이그레이션 종료의 네 과정으로 나눌 수 있습니다.

21.1.1프로젝트 오픈

넥사크로 스튜디오에서 14 버전 넥사크로플랫폼 프로젝트를 오픈할 때는 마이그레이션의 수행 여부에 따라 최초로 프로젝트를 오픈하는 경우와 마이그레이션을 이미 수행했던 경우에 프로젝트를 오픈하는 경우의 두 가지로 진행이 나뉩니다.

마이그레이션을 최초로 수행하는 경우

넥사크로 스튜디오에서 마이그레이션을 수행하지 않은 14 버전의 프로젝트를 오픈했을 경우에는 다음과 같이 마이그레이션을 수행할지 묻습니다.

마이그레이션을 수행하려면 [Yes] 버튼을 선택합니다.

그림 21-101_open_project_01

항목

설명

Yes

마이그레이션을 수행합니다.

No

창이 닫히고 프로젝트를 오픈하지 않습니다.

마이그레이션을 최초로 수행하는 경우에는 여기서 마이그레이션 마법사 단계로 넘어가십시오.

마이그레이션을 기존에 수행했던 경우

이전에 한번이라도 마이그레이션을 수행한 프로젝트를 오픈했을 경우에는 다음과 같이 마이그레이션 정보가 있음을 알리며 프로젝트를 어떤 모드로 오픈할지 묻습니다.

그림 21-201_open_project_01_01_4프로젝트를_열었을때_뜨는_창

항목

설명

Open

기존에 마이그레이션을 수행했던 프로젝트를 오픈합니다.

Migration

새롭게 마이그레이션을 수행합니다.

Cancel

프로젝트 오픈을 취소합니다.

21.1.2마이그레이션 마법사

프로젝트 오픈 과정에서 마이그레이션을 선택하면 다음과 같이 마이그레이션 마법사가 실행됩니다. 마이그레이션 마법사는 17 프로젝트로 동작하기 위해 필요한 환경을 자동으로 만들어 주는 도구인데 원래는 사용자가 해야 할 일, 예를 들면, 디렉토리 구조, 환경 정보, 파일, 버전 정보, 문법 등의 다양한 정보를 자동으로 변환해주는 기능을 합니다.

마이그레이션 마법사를 실행하려면 먼저 다음과 같이 적절한 경로를 지정해야 합니다. 그런 후 Migrate 버튼을 클릭하면 변환 작업을 시작합니다.

그림 21-301_project_open_02_migration_wizard


항목

설명

1

Target Path

마이그레이션 대상 경로(넥사크로플랫폼 14 프로젝트)입니다.

2

Output Path

마이그레이션 결과 경로(마이그레이션된 넥사크로플랫폼 17 프로젝트)입니다. 기본 경로는 Option의 Working Folder 입니다.

3

Migrate

마이그레이션을 수행합니다.

4

Cancel

마이그레이션을 취소합니다.

만일 Output Path에 같은 이름의 프로젝트가 존재하면 다음과 같은 경고창이 뜨며 프로젝트를 덮어쓸지 결정할 수 있습니다.

그림 21-401_project_open_03_overwrite_warning

마이그레이션 자동 변환이 시작되면 그 과정은 다음과 같이 로그 메시지를 통해 확인할 수 있습니다.

그림 21-502_migration_04_migration_finish

마이그레이션 자동 변환중에 작업을 중단하고 싶으면 [Stop] 버튼을 클릭하고 다시 진행하려면 [Remigrate] 버튼을 클릭합니다.

마이그레이션 자동 변환이 모두 완료되면 finished라는 메시지와 함께 성공, 실패 항목의 수가 표시되고 [Finish] 버튼이 활성화됩니다. [Finish] 버튼을 클릭하면 마이그레이션 마법사가 종료되며 프로젝트가 마이그레이션 모드로 오픈됩니다. [Cancel] 버튼을 클릭하면 창이 닫히며 아무 동작도 수행하지 않습니다. 마법사에 의해 자동 변환된 17 프로젝트와 변환 이력은 그대로 존재하며 다음에 프로젝트를 오픈할 때 현재 진행 상황에 이어 계속할지 결정할 수 있습니다.

여기까지 진행을 성공적으로 수행했다면 앞서 지정한 Output Path의 경로에 17 버전 프로젝트가 새로 생성됩니다. 17 버전 프로젝트 디렉토리 밑에는 프로젝트 관련 파일들 뿐 아니라 자동 변환 작업의 결과를 기록한 로그 파일이 migrate 디렉토리 밑에 생성되는데 이는 다음 단계인 오류 해결 작업시 꼭 필요하므로 임의로 변경하거나 삭제하지 않습니다.

21.1.3오류 해결

마이그레이션 마법사를 이용한 자동 변환 작업이 완료되면 프로젝트를 마이그레이션 모드로 오픈할 수 있습니다. 마이그레이션 모드에서는 사용자가 직접 변환 이력을 추적하며 자동 변환에 실패한 항목이나 수정이 필요한 항목에 대한 확인 및 오류를 해결하는 작업을 진행합니다. 이 과정은 넥사크로플랫폼 기본 스펙에서 제공하지 않는 기능이나 사용자가 작성한 코드에 대한 처리를 위한 과정이므로 반드시 필요합니다.

마이그레이션 모드에 관한 설명은 마이그레이션 모드 메뉴를 참조하시기 바랍니다.

오류 해결 작업은 다음의 순서로 진행합니다.

  1. 변환 이력 확인: 변환 이력을 통해 어떤 파일의 어떤 부분에서 오류가 발생했는지 원본에서 어떻게 바뀌었는지 추적합니다.

  2. 변환 오류 수정: 오류를 분석하고 해결합니다. 기존 코드를 수정하거나 상황에 따라서는 기능을 새로 구현합니다.

변환 이력 확인

자동 변환에 실패하거나 오류가 있는 항목은 Migration Log에서 확인이 가능합니다.

그림 21-6migration_log_pane

Migration Log는 변경 이력을 [파일 정보 > 변경 내용 > 라인 정보] 구조를 갖는 트리 형태로 제공합니다. 각 항목의 아이콘에는 로그 메시지 종류와 상태에 따라 네 종류의 표식이 붙어 상태를 판별하기 용이합니다. 네 종류 표식은 다음의 의미를 갖습니다.

이미지

로그 종류

설명

Error Log

자동 변환이 실패했거나 오류가 있는 경우입니다. 프로젝트 수행에 문제가 되므로 필히 해결해야 할 항목입니다.

Warning Log

자동 변환 룰에 의해 정상적으로 처리되지 못했거나 임의로 삭제, 변경된 항목입니다. 프로젝트 오픈 및 실행에 문제는 없으나 사용자가 원하는 기능을 수행하지 못할 수 있으므로 확인하는 것이 좋습니다.

Information Log

정상적으로 자동 변환되었거나 파일이 새로 생성된 항목으로 변경 사항에 대한 정보를 갖습니다.

변환 오류 수정

변환 오류 수정 과정에서는 마법사를 이용한 자동 변환에 실패한 오류 항목들을 어떻게 처리할지 판단하고 해결합니다. 일부 오류들은 간단한 수정만으로도 해결할 수 있지만 상황에 따라서는 다른 기능으로 대체하거나 아예 새로운 17 버전 파일을 생성하여 구현해야 할 수도 있습니다.

21.1.4마이그레이션 프로젝트 종료

마이그레이션 프로젝트를 종료하거나 갱신하는 경우에 마이그레이션 로그를 계속 사용할지 확인합니다. [Yes] 버튼 클릭 시에는 다음번 프로젝트 실행 시 마이그레이션 로그를 유지하고 [No] 버튼 클릭 시에는 마이그레이션 로그를 삭제하고 정상 프로젝트로 실행합니다.

그림 21-7Change_Project_Mode_팝업_no_more_resolve

21.2마이그레이션 모드 메뉴

넥사크로 스튜디오에서 마이그레이션을 완료한 후 프로젝트를 마이그레이션 모드로 오픈할 수 있습니다. 마이그레이션 모드에서는 프로젝트에 포함된 파일을 관리하는 Project Explorer, 자동 변환시 발생한 오류를 관리하는 Migration Log 그리고 마이그레이션 전과 후의 파일 내용을 비교할 수 있는 DiffView를 제공합니다. 개발자는 이를 이용해 변경된 내용을 확인할 수 있고 필요에 따라 마이그레이션된 프로젝트와 파일을 직접 수정할 수 있습니다.

그림 21-803_migration_mode_01_마이그레이션모드로프로젝트오픈했을때_전체화면


항목

설명

1

Project Explorer

마이그레이션한 결과물에 대한 프로젝트 탐색기

2

Target File View

마이그레이션 수행전 원본 파일의 내용

3

Migration File View

마이그레이션 수행후 파일의 내용

4

Migration Log

각 파일별 마이그레이션한 결과 로그

21.2.1Project Explorer

프로젝트 파일을 트리 형태로 보여주는 Project Explorer와 동일한 기능을 합니다. 다만 마이그레이션 정보를 색깔이 있는 파일 이름으로 표시해 줍니다.

21.2.2Migration Log

넥사크로 스튜디오에서는 마이그레이션 수행 결과에 대한 정보를 로그로 제공하는데 어떤 내용이 변경되었는지에 대한 자세한 정보는 Migration Log 메뉴로 제공합니다.


항목

설명

1

Show/Hide Error Log

Error 로그를 보여주거나 감춥니다.

2

Show/Hide Warning Log

Warning 로그를 보여주거나 감춥니다.

3

Show/Hide Information Log

Information 로그를 보여주거나 감춥니다.

4

Input Filter Text

필터 텍스트를 입력합니다.

5

Show Difference

마이그레이션 과정에서 변경된 파일과 원본 파일을 비교합니다.

6

GoTo Source

넥사크로 스튜디오에서 선택한 파일 소스를 표시합니다.

Warning, Information Log의 경우에는 트리를 펼치면 상세한 내용을 확인할 수 있습니다.

21.2.3Migration DiffView

Migration Log에서 특정 파일 선택 후 Show Difference 기능 실행 시 DiffView라는 편집기가 열립니다.

다음은 DiffView를 사용해 파일을 오픈한 모습입니다. 왼쪽에는 원본 파일이 오른쪽에는 마이그레이션된 파일의 편집창이 위치하며 내용이 다른 부분은 구분이 쉽도록 파란색 배경으로 표시됩니다.


항목

설명

1

Open File

현재 열려있는 파일의 경로를 표시합니다.

2

Log Information

해당 파일의 전체 로그 정보(로그 종류, 업데이트된 로그 개수, 잔여 로그 개수)를 보여줍니다.

3

Original Source View

원본 파일의 내용을 보여줍니다.

변경 이력이 라인별로 표시되며 편집이 불가합니다.

4

Migration Source View

마이그레이션 파일의 내용을 보여줍니다.

변경 이력이 라인별로 표시되며 편집이 불가합니다.

5

Diff Line

Migration Log의 트리에서 로그 아이템을 선택(더블 클릭)하면 파일 내용에서의 실제 라인을 보여줍니다. 해당 라인은 선택 상태로 표시됩니다.

DiffView의 두 편집기중 마이그레이션 파일이 오픈된 오른쪽 편집기에서는 사용자가 변경 이력을 확인, 수정할 수 있습니다.

그림 21-903_migration_log_03