띠오니 개발자 성장일지
article thumbnail
반응형

Android Studio CodeLab Basics in Kotlin 과정의 내용 중 일부를 정리한 것입니다. 😁

 


하드코딩된 문자열(HardCoded String)

 

[그림1] Android Studio Codelab Basics in Kotlin

내가 학교를 졸업하고, 안드로이드 개발을 처음 접했을 때는 TextView를 사용할 때 android:text="Happy Birthday" 이런 식으로 썼다. 귀찮기도 하고, 사실 그때만 해도 문자열을 따로 빼서 쓴다는 생각을 못?했다.

저런 식으로 문자열 입력을 필요로 하는 앱 코드에, 직접 작성된 문자열을 하드코딩된 문자열이라고 한다.

 

하드코딩 문자열의 단점

  • 앱을 다른 언어로 번역하기가 어렵다.
  • 앱의 다른 곳에서 같은 문자열을 재사용하기 어렵다.

 

문자열을 재사용 해봤자 얼마나 사용하겠나 싶었는데, 생각보다 같은 문자열을 쓰는 곳이 많았다. 

앱의 전반적인 컨셉 단어나 문장 등이 많이 사용되기도 했고, 단위 같은 길이가 비교적 짧은 문자열도 중복되어 사용했다.

 

해결방법

리소스 파일로 문자열을 추출함으로서 해결할 수 있다.
코드에서 문자열을 하드코딩 하는 대신, 문자열을 파일에 넣고 이름을 지정해 문자열을 사용할 때마다 이름을 사용한다. 

이름을 불러 사용하면, 문자열을 변경하거나 다른 언어로 번역해도 동일하게 유지된다. 

[그림2]

[그림1]의 경고 삼각형을 누르면 [그림2]처럼 Suggested Fix로 자동으로 문자열을 리소스파일로 추출할 수 있다.

Resource name : 문자열이 앞으로 호출될 이름, 소문자로 이루어지고 여러 단어는 밑줄기호로 구분되어야 한다. 

Resource Value : 실제 문자열 자체

이렇게 수정하면, Layout Editor의 Attribute-Text를 보면 @string/happy_birthday_text 이런식으로 설정되어있을 것이다.

strings.xml(app > res > values > strings.xml) 열면 happy_birthday_text 라는 문자열 리소스가 만들어져있다. 

 

 

 

이런식으로 만들면 앱에서 사용되는 문자열 목록을 strings.xml 파일에서 확인할 수 있다. (앱 이름도 문자열 리소스!)


문자열 리소스 장점

  • 문자열을 모두 한곳에 배치하면 앱의 모든 텍스트를 더 쉽게 번역할 수 있다.
  • 앱의 다른 부분에서 문자열을 더 쉽게 재사용 할 수 있다. 
반응형
profile

띠오니 개발자 성장일지

@띠오니

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!