-
[코틀린] 05.Kotlin/Native - 노트패트++로 개발환경 만들기 (2/3)안드로이드/코틀린 2020. 2. 14. 16:48
'노트패드++로 개발환경 만들기' 순서는 아래와 같으며 지난 회에서 '3.노트패드++ 환경 설정'까지 진행했다.
2020/02/13 - [안드로이드/코틀린+안드로이드 스튜디오] - [코틀린] 04.Kotlin/Native - 노트패드++로 개발환경 만들기 (1/3)
이번 회에서는 'NppExec 플러그인 설치 및 환경 설정'을 진행하겠다.
- 노트패드++ 설치하기 (약 4MB)
- (선택) 네이버 D2Coding 폰트 설치하기
- 노트패드++ 환경 설정
- NppExec 플러그인 설치 및 환경 설정
- 코틀린용 ‘구문 강조’ 기능 설정
- 테스트 - 숫자야구 게임 컴파일/실행
개발환경 만들기 – 4. NppExec 플러그인 설치 및 환경 설정
NppExec(Notepad-plus-plus Execute?)는 노트패드++에서 코틀린 소스를 컴파일/실행시키기 위한 플러그인이다.
이전 블로그에서 '명령 프롬프트' 창에서 코틀린을 컴파일하고 실행하기 위해 사용한 명령어를 NppExec에 스크립트로 작성해 놓고 'F6'키와 엔터키를 치거나 'Ctrl+F6'키로 실행시키면 동일한 동작을 하게 된다.
사실 플러그인 설치나 환경 설정은 어려움이 없으나 비영어권 개발자의 비애(?)인 코드 페이지에 대한 이해를 추가하겠다.
1) 노트패드++에서 '메뉴 > 플러그인 > 플러그인 관리...'를 클릭한다.
2) '플러그인 관리' 창이 나타나면 찾기에서 'nppexec'를 입력하고 '다음'을 클릭한다. 하단 리스트에 'NppExec'가 나타나면 체크하고 '설치'를 클릭한다.
3) 'NppExec' 설치가 끝나면 '노트패드++을 재시작'하는 창이 나타난다. '예'를 클릭한다.
4) 노트패드++이 재시작되면 '메뉴 > 플러그인'에 'NppExec'가 추가 된 것을 확인할 수 있다. '메뉴 > 플러그인 > NppExec > Execute...'를 클릭한다.
5) 'Execute...' 창이 나타나면 아래 명령어를 차례대로 입력한 후, 'Save...' 버튼을 클릭한다.
cd "$(CURRENT_DIRECTORY)"
cmd /c del $(NAME_PART).exe
kotlinc-native.bat "$(FULL_CURRENT_PATH)" -o "$(CURRENT_DIRECTORY)\$(NAME_PART)"
cmd /c $(NAME_PART).exe
각 명령어의 의미는 아래와 같다.
-
cd "$(CURRENT_DIRECTORY)" : 현재 노트패드++에서 열린 파일이 위치한 폴더로 이동
-
cmd /c del $(NAME_PART).exe : 명령 프롬프트의 명령 해석기(cmd.exe)를 이용해 소스 파일과 동일한 이름의 컴파일된 파일을 삭제
-
kotlinc-native.bat "$(FULL_CURRENT_PATH)" -o "$(CURRENT_DIRECTORY)\$(NAME_PART)" : 코틀린 소스 컴파일 명령어.
-
cmd /c $(NAME_PART).exe : 컴파일된 코틀린 파일 실행 명령어
6) 스크립트 이름을 입력하고(여기에서는 'Kotlin-Compile'로 함) 'Save' 버튼을 클릭한다.
7) 'Kotlin-Compile'스크립트 생성을 확인한 후 'Cancel' 버튼을 클릭한다..
우리는 이전 블로그에서 코틀린 소스를 저장하는 폴더를 'D:\kotlin_test'로 만들었다.
(폴더 위치를 잘 기억하자.)
NppExec의 스크립트가 정상적으로 동작하는지 테스트해 보자.
8) 노트패드++에서 새 파일을 만든다.
윈도우 메모장처럼 '메뉴 > 파일 > 새파일'이나 'Ctrl+N'을 누른다.
새로운 탭이 나타났다. 기존 파일을 닫고 새 파일을 만드는 윈도우 메모장에 비해 편하다. 그리고, 노트패드++ 에서 작업하다가 저장하지 않고 노트패드++ 프로그램을 닫아도 이전 작업 화면이 나타난다. 하지만, 저장하는 습관은 필수이다. 9) 코틀린에서 가장 기본이 되는 코드를 입력한다.
이번에는 출력 문자를 ‘한글’로 입력한다. (이유는 뒤편에서 설명하겠다.)
10) 입력이 끝나면 '메뉴>파일>저장'이나 'Ctrl+S'로 파일을 저장한다. 이때 위치는 'D:\kotlin_test' 폴더에 'test2.kt'라는 파일명으로 저장 하였다.
(학습, 업무 등 비슷한 용도의 파일은 한 곳에 저장하는 습관을 기르자. 나중에 백업할 때 편하다.)
11) '메뉴 > 플러그인 > NppExec > Execute'를 실행하고, <temporary script>리스트에서 조금 전 만든 'Kotlin-Compile'을 선택한 후 'OK' 버튼을 누른다.
(이후 'F6'키를 누르고 엔터키를 치거나 'Ctrl+F6'키를 누르면 바로 실행된다.)
12) 하단에 Console 창이 열리며 컴파일을 진행한다.
우리가 입력한 "안녕하세요, 코틀린/네이티브!!"라는 문구가 출력되지만, 안타깝게도 한글 문자열이 깨져 나온다.
컴퓨터가 영어권 국가에서 탄생한 관계로 비영어권 국가의 개발자들은 자국의 언어를 프로그램에 사용하기 위해 문자 인코딩(character encoding)과 코드 페이지(code page)에 관심을 가져야 한다.
문자 인코딩은 문자 코드를 컴퓨터 안에서 비트(0, 1)로 저장하는 방식을 의미한다.
문자 인코딩을 위해 문자와 비트를 매핑한 표를 코드 페이지라 한다.
예를 들어, 영화 '엑시트(2019년)'에서 유명해진 모스 부호(Morse code)를 보면,
영문자 'S'는 '⋅ ⋅ ⋅'로, 영문자 'O'는 'ㅡㅡㅡ'로 코드 페이지를 만들어,
구조신호인 'SOS'를 '⋅ ⋅ ⋅ ㅡㅡㅡ ⋅ ⋅ ⋅'로 문자 인코딩을 거친 후 보낸다.
(한글 모스 부호로 해독하면 'ㅕㅍㅕ'가 된다. 글자 깨짐이 일어난 것이다.)
컴퓨터에서는 한글 코드를 Unicode, UTF-8, EUC-KR, CP949 등 다양한 방식으로 코드 페이지와 문자 인코딩으로 사용하고 있다.
-
Unicode : 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하기 위한 표준 문자 처리 방식
-
UTF-8 : 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나
-
EUC-KR : 확장 유닉스 코드(Extend UNIX Code). 한글 완성형 문자 인코딩 방식.
-
CP949 (코드 페이지 949) : 마이크로소프트사가 도입한 코드 페이지. EUC-KR의 확장판.
다시 NppExec로 돌아와서, 한글 문자열이 깨지는 이유는 코틀린의 한글 문자열은 'UTF-8'로 출력되지만, NppExec 기본 콘솔 출력은 'OEM (DOS)' 방식으로 한글을 출력하기 때문이다.
NppExec의 콘솔 출력 인코딩 방법을 변경해 보자.
13) '메뉴 > 플러그인 > NppExec > Console Output...'를 실행한다.
14) 'Console Output/Input encoding' 창이 열리면 'UTF-8'을 선택한 후 'OK' 버튼을 누른다.
15-1) NppExec 콘솔 창의 폰트가 너무 작다. 콘솔창의 폰트 크기를 조정해 보자.
(개인 취향에 따라 그냥 넘어가도 된다.)
'메뉴 > 플러그인 > NppExec > Change Console Font...'를 선택한다.
15-2) '글꼴' 창이 나타나면 자신이 취향에 맞는 설정을 한 후 '확인'을 클릭한다..
(이 블로그에서는 D2Coding 폰트, 스타일은 보통, 크기는 14pt를 선택했다.)
16) 다시 'Ctrl+F6'키를 눌러 NppExec를 실행한다. 콘솔 창에 한글 깨짐 없이 출력되는 것을 확인할 수 있다.
완벽하게 설정된 것 같지만...아니다.
17) 코틀린 소스에 오류 코드를 넣어 다시 컴파일해 보자.
문자열을 출력하는 명령어 옆에 ‘1’을 추가하여 에러 소스로 만들었다. (‘1’ 입력 후 꼭 저장하는 습관을...)
18) 다시 컴파일하면 에러 위치(첫 번째 화살표)와 함께 글자가 깨져 나온다(두 번째 화살표).
이는 한글로 "'test2.exe'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다."라는 윈도우 'cmd.exe'의 한글 메시지가 깨진 것이다.
한글이 깨져서 나오는 이유는 NppExec 콘솔 창을 'UTF-8'로 설정했지만, 윈도우 'cmd.exe'는 에러 메시지를 'OEM(DOS)'로 NppExec에게 주기 때문이다.
설정을 통해 바로 잡아보자.
(위 메시지가 신경 쓰이지 않으면 필요 없는 작업이다.)
이 방법은 윈도우 10 버전부터 추가된 기능으로 기본 인코딩 설정을 UTF-8로 설정하는 것이다.
주의!!! 메시지는 영문으로 나온다.
주의!!! 여기에서 사용하는 설정은 컴퓨터를 한 번 재시작한다.다른 작업 창은 미리 저장하자.
주의!!! 일부 구 버전 시스템(예, SQL Server 2016)은 오류가 발생하는 것 같다. 오류가 발생하면 원래대로 돌아가자.
19) 윈도우 10의 시작 메뉴에서 '설정' 아이콘을 클릭한다.
' 20) 설정 화면이 나타나면 '시간 및 언어'를 클릭한다..
21) '시간 및 언어' 창에서 좌측 메뉴에서 '언어'를 선택한 후, 오른쪽 화면을 스크롤하여 '관리 언어 설정'을 클릭한다.
22) '국가 또는 지역' 창이 나타나면 '시스템 로캘 변경'을 클릭한 후, '지역 설정' 창이 나타나면 'Beta: 세계 언어 지원을 위해 Unicode UTF-8 사용'을 체크하고, '확인'을 클릭한다.
'시스템 로캘이 변경되었습니다. 변경 사항을 적용하려면 Windows를 다시 시작해야 합니다.'에서 '다시 시작' 버튼을 클릭한다. (윈도우를 재시작하면 언어 설정 변경으로 인해 시간이 좀 걸린다. 기다리자...)
23) 오류가 있는 코틀린 소스(test2.kt)를 다시 컴파일(Ctrl+F6) 하면 윈도우 'cmd.exe'의 메시지가 영문으로 나오는 것을 확인할 수 있다.
이렇게 '노트패드++로 개발환경 만들기'에서 NppExec 설치 및 환경 설정까지 해 보았다.
다음 블로그에서는 개발환경의 하이라이트인 '노트패드++로 구문강조(Syntax Highlighting) 만들기'를 해 보겠다.
'안드로이드 > 코틀린' 카테고리의 다른 글
[코틀린] 04.Kotlin/Native - 노트패드++로 개발환경 만들기 (1/3) (0) 2020.02.13 [코틀린] 03.Kotlin/Native - 첫 컴파일과 숫자야구 게임 (0) 2019.12.02 [코틀린] 02.Kotlin/Native - 설치하기 (0) 2019.11.28 [코틀린] 01.소개와 맛보기 (0) 2019.11.28