안드로이드 스튜디오 언어 - andeuloideu seutyudio eon-eo

안드로이드 스튜디오 언어 - andeuloideu seutyudio eon-eo

코틀린이란?

코틀린은 ‘젯브레인스(JetBrains)’라는 회사에서 만든 안드로이드 개발을 위한 프로그래밍 언어로,

2011년에 공개한 오픈소스 프로그래밍 언어입니다.

코틀린은 기존에 안드로이드 어플리케이션 개발에 활용되는 자바(Java) 언어를 보완하고 대체하기 위해 탄생했습니다.

때문에 기존에 자바 언어로 동작하던 환경에서 코틀린 언어도 100% 호환되는 것이 특징입니다.

이는 기존에 자바로 개발하던 프로그램은 모두 코틀린으로도 개발할 수 있다는 의미입니다.

그리고 2017년 열린 구글 I/O라는 컨퍼런스에서 코틀린은 공식 지원 언어로 추가하였습니다.

이는 구글이 코틀린을 공식 지원 언어로 채택하면서, 코틀린 플러그인을 안드로이드 스튜디오(Android Studio)

3.0에서 바로 다운로드하여 이용할 수 있게 되었다는 의미입니다.

이외에도 안드로이드 공식 문서의 예제 코드도 코틀린으로 제공되는 것을 확인할 수 있습니다.

2019년, 구글은 코틀린을 안드로이드 1st 언어로 선정하였습니다.

공식적으로 안드로이드 개발을 위한 메인 언어로 코틀린을 지정한 것입니다.

코틀린의 장점

문법이 간결하며 사용성이 좋다.

1995년에 세상에 나온 자바에 비해 코틀린은 그 역사가 굉장히 짧은 편입니다.

성능이나 안정성 측면에서는 역사가 긴 자바의 장점이 독보적이지만, 코틀린은 기존 언어가 지닌 단점이나 한계를

보완하여 탄생했기 때문에 개발자 입장에서는 훨씬 사용성이 좋다고 할 수 있습니다.

코틀린은 문법이 간결하여 복잡한 구문 없이 비교적 직관적으로 코드를 작성할 수 있습니다.

또한 표현력이 좋아 입문자 입장에서는 자바보다는 훨씬 빠르게 안드로이드 개발을 시작할 수 있다는 것이 장점입니다.

쉬운 유지관리

현재 시중에서 이용할 수 있는 대부분의 통합개발환경(IDE)은 코틀린을 지원하고 있으며,

따라서 개발자들이 새로운 IDE를 배워야 할 필요가 없기 때문에 생산성을 최적화하는 데 있어서

아주 많은 도움이 됩니다.

팀 효율성 향상

직관적이면서도 간결한 문법 덕분에, 코틀린은 팀의 효율성을 크게 향상시킬 수 있는 컴팩트하면서도

깔끔한 프로그래밍 언어입니다.

좀 더 쉽게 말하자면, 개발자들은 자바에 비해서 코틀린으로 더 많은 일들을 할 수 있으며,

더 적은 양의 코딩만으로도 안드로이드 애플리케이션을 구축해서 배포할 수 있다는 겁니다.

Null Safe 언어이다.

자바로 개발을 하면서 가장 많이 마주치는 문제는 바로 NPE(NullPointException)입니다.

코틀린은 Nullable과 Non-nullable 이라는 개념을 가지고 있어, null이 발생하지 않도록 만들어 줍니다.

그래서 자바 라이브러리와 함께 사용하지 않는 한, 코틀린으로만 개발할 때는 NPE와 같은 예외 문제가

발생하지 않는다는 것이 장점입니다.

기존 라이브러리와의 상호운용성이 좋다.

코틀린은 기존의 자바를 보완하고 대체하기 위해 탄생했기 때문에, 자바와 100% 호환됩니다.

한 프로젝트 안에 자바 파일과 코틀린 파일이 함께 들어 있더라도 작동에 전혀 문제가 없다는 뜻입니다.

자바 기반의 라이브러리도 모두 문제 없이 사용할 수 있습니다.

또한 자바로 만들어진 프로젝트도 처음부터 코틀린으로 다시 개발할 필요 없이, 이후 생성되는 파일만 전부

코틀린으로 작성해도 전체 프로젝트가 정상적으로 작동하여 효율적으로 개발할 수 있습니다.

코틀린의 단점

속도가 느리다.
안드로이드 어플리케이션을 위한 빌드를 생성한다면, 여전히 자바의 성능이 더 좋습니다.

컴파일 시, 자바로 변환하고 나서 바이트 코드로 변환하기 때문에 컴파일 속도가 상대적으로 느린 편입니다.

학습 리소스의 제한
코틀린이 안드로이드 1st 언어로 지정되었다고 해도,

1995년에 나온 자바에 비해서는 역사가 매우 짧기 때문에 코틀린의 생태계 또한 작을 수밖에 없습니다.

코틀린으로 전환하는 안드로이드 개발자들의 수가 매일 증가하고 있기는 하지만,

코틀린을 학습하고 마스터하기 위해 시중에서 이용할 수 있는 리소스의 수는 여전히 한계가 있습니다.

코틀린으로 전환하는 안드로이드 개발자들의 수가 매일 증가하고 있기는 하지만,

코틀린을 학습하고 마스터하기 위해 시중에서 이용할 수 있는 리소스의 수는 여전히 한계가 있습니다. 

자바 기존 라이브러리의 활용이 어려울 수 있다.
자바로 개발한 프로젝트를 코틀린으로 이어서 작성하더라도, 자바 문법에 익숙하지 않다면 자바 기반의 기존

라이브러리를 완전히 이해하지 못하고 사용할 수 있습니다.

아직까지는 코틀린 기반의 전용 라이브러리보다는 자바 기반이 훨씬 많기 때문에, 코틀린으로 안드로이드

개발을 시작하더라도 프로젝트 개발이 심화될수록 자바에 대한 이해가 필수적으로 요구될 수 있겠죠.

Android Studio/Android Studio

2020. 7. 1.

대한민국의 거의 모든 사람들의 스마트폰에는 얼굴책과 인별그램이 설치되어 있다. 국내에서 핸드폰을 사서 사용해 온 거의 모든 사람들이, 이 앱을 다운받으면 자동적으로 앱은 한국어로 설정되어 사용자에게 서비스를 제공한다. 

그런데, 가만히 생각해보면, 얼굴책과 인별그램은 전세계의 수많은 국가에서 사용되고 있는 어플리케이션임에도 불구하고, 사용자의 모국어에 맞춰 서비스 화면을 제공한다. 즉, 미국인이 이들 앱을 다운받으면 영어로, 한국인이 다운받으면 한국어로 화면에 글씨가 출력된다는 것이다. 분명 이들 앱을 설치할 때, 언어 설정을 따로 지정하는 절차가 없음에도 말이다. 

사실, 국내에서만 점유율이 높은 카카오톡의 경우에도 이러한 현상이 발견되기는 한다. 다음은 필자가 실제 사용하는 핸드폰에서 나타나는 카카오톡의 버전 정보를 캡쳐한 사진이다.

안드로이드 스튜디오 언어 - andeuloideu seutyudio eon-eo
사진에 나오는 언어는 독일어다.

왜?? 필자는 독일인도 아닌데, 독일어로 버전 정보가 표시될까? 분명 필자는 한국에서 태어나 외국이라고는 단 2달만 나가본 것이 전부임에도 왜 독일어로 서비스가 제공되는 것일까? 원인은 필자의 스마트폰 언어 설정과 연관이 있다. 현재 필자가 사용하는 스마트폰의 언어 설정이 독일어로 되어 있기 때문에, 해외에서 거의 사용될 일이 없는 카카오톡마저도 필자에게 독일어로 서비스를 제공한다. 이 글을 읽고 계신 분들도, 각자의 핸드폰 언어 설정을 변경한 뒤, 앱의 이곳 저곳을 들어가보자. 대부분 글로벌한 앱(국내에서 주로 사용되는 사x인, 잡x리아 등등은 당연히 이 기능을 지원하지 않는다)들은 언어 설정에 따라 해당 언어로 서비스를 제공할 것이다. 

그럼, 어떻게 하면 스마트폰의 언어 설정을 따라 화면에 해당 언어를 출력할 수 있을까? 사실, 매우 간단하다. 언어를 새로 배워야 한다는 점을 제외하면 말이다. 지난 포스팅에서 만든 Hello, World 프로젝트에 이어, 살펴보도록 하자.

1. String Value 설정 파일 둘러보기

지난 포스팅에서 Hello World를 출력하기 위해, "Hello World" 문자열을 리소스화 해주는 작업을 진행했었다. 해당 작업을 통해, 우리의 Android가 해당 문자열을 이상없이 인식하고 화면에 출력하는 것을 확인할 수 있었다.

안드로이드 스튜디오 언어 - andeuloideu seutyudio eon-eo
좌측 아래의 컴포넌트 트리 창에, Hello World 문자열에 어떠한 경고 문구도 표시되지 않는다.

그럼, 이렇게 리소스화 된 문자열 정보는 어디에 저장되는 것일까? 분명 리소스화된 하나의 Data기 때문에, 프로젝트 폴더 내의 어딘가에 이와 관련된 파일이 존재할 것이다. 

좌측 상단의 프로젝트 창에서, Android를 선택하면, 우리가 현재 작업중인 프로젝트와 관련된 파일 및 폴더 구조가 쭈욱 나타난다. 여기서 res 폴더 > layout 폴더는 우리가 만들려는 앱의 디자인을 결정하는 activity_main.xml 파일이 존재하는 폴더라는 것을 지난 포스팅에서 확인했다. res 폴더 밑에는 layout 폴더 외에도 value 폴더가 존재하는 것을 확인할 수 있는데, 이 폴더 내에는 layout 외에도 color와 string과 관련된 정보가 포함되어 있는 파일도 존재한다.

안드로이드 스튜디오 언어 - andeuloideu seutyudio eon-eo

우리가 리소스화 한 "Hello World"의 정보는 strings.xml 파일에 고스란히 저장되어 있다. 해당 파일을 더블 클릭하여 열어보자. 

안드로이드 스튜디오 언어 - andeuloideu seutyudio eon-eo

Hello World 문자열 외에도, 우리가 프로젝트 명을 만들 때 사용한 이름도 리소스화되어 있는 것이 보인다. 여기 보이는 코드를 하나씩 분석해보면 다음과 같다.

<resources>

<string name="hello_world">Hello World</string>

<resources>

1. <resource></resource>

 - 리소스화 할 목록을 담을 구역을 설정한다. 해당 구역 내에 리소스화 할 문자열 정보를 입력한다.

2. <string></string>

-  리소스화 할 문자열 정보를 담을 구역을 설정한다. 

3. name="문자열 이름"

-  리소스화 할 문자열의 이름을 지정한다. 위의 예시에서는 Hello World 문자열의 이름을 "hello_world"로 지정했다.

4. Hello World

-  리소스화 할 문자열의 기본값을 입력한다.

마우스 클릭으로 진행했던 문자열의 리소스화 과정은 이렇게 xml 언어로 번역되어 string.xml 파일에 저장된다. 그럼, 우리가 진행하려는 언어 번역과 관련된 부분은 어디에 있는 것일까? 

string.xml 파일의 우측 상단을 보면 "Open Editor"라는 것이 보인다. 이것을 클릭해보자.

안드로이드 스튜디오 언어 - andeuloideu seutyudio eon-eo

"Open Editor"를 누르면 다음과 같이 Translations Editor라는 파일이 하나 나타난다. 이 파일에서 Hello World를 핸드폰의 언어 설정에 맞게 변경할 수 있게 된다.

안드로이드 스튜디오 언어 - andeuloideu seutyudio eon-eo

2. Translations Editor 파일

이 파일의 내용을 보면, 우리가 리소스화 한 문자열이 마치 데이터베이스 출력물처럼 하나의 표에 표시된 것을 볼 수 있다. 표의 행은, 우리가 리소스화한 하나 하나의 문자열을 나타내며, 열은 왼쪽부터 "문자열 이름", "문자열이 저장된 파일의 폴더 위치", "체크 박스" 그리고 "문자열 기본값"을 나타낸다. 

안드로이드 스튜디오 언어 - andeuloideu seutyudio eon-eo

이제 우리가 해야 할 일은, 이 데이터베이스에 "한국어" 열을 추가한 뒤, 해당 열에 맞는 값을 입력해주는 것이다. 즉, 표의 열을 한 개 더 만들고 내용을 채워넣는 작업을 진행해야한다고 생각하면 된다.

한국어를 열로 설정하기 위해서는, 좌측의 지구본 표시 모양을 누른 뒤, 태극기가 있는 Korean을 선택해주면 된다. 다음과 같이 열이 한 개 새로 생성된다.

안드로이드 스튜디오 언어 - andeuloideu seutyudio eon-eo

hello_world 행에서 새로 생긴 열에 아무 내용없는 쉘 하나가 생기는데, 이곳에 한글로 "헬로 월드!!"라고 입력해보자.

안드로이드 스튜디오 언어 - andeuloideu seutyudio eon-eo

입력 후, Enter를 치면, 프로젝트 창의 values 폴더의 string.xml 밑에 파일 하나가 더 생성되는데, 이 파일은 한국어를 추가함으로써 생성된 파일이다. 이 파일도 string.xml이라는 이름으로 되어 있지만, 내용의 기본값이 Hello World가 아닌 "헬로 월드!!"로 되어 있는 등, 기존의 string.xml 파일 내용과 차이가 있음을 확인할 수 있다.

안드로이드 스튜디오 언어 - andeuloideu seutyudio eon-eo

이제, 여러분의 핸드폰이 한글로 설정되어 있다면, 실행하는 앱의 화면에 "헬로 월드"라는 문구가 출력되게 된다. 스마트폰을 연결하여 Android Studio와 연결한 뒤, 앱을 실행해보자. 다음과 같이 한글 문구가 출력되면 성공이다.

안드로이드 스튜디오 언어 - andeuloideu seutyudio eon-eo

Translations Editor에 등록한 언어 외의 다른 언어로 스마트폰을 설정하면, 기본값인 Hello World가 출력된다.  다국어 능력자이신 분들은, 새로운 언어를 추가하여 실행해보도록 하자. 

FIN.