안드로이드 개발 시 주요 특징 중 하나는, '리소스의 외부화'를 극대화한다는 점입니다. 리소스를 외부화하여, 모듈로서 사용하는 방식은 비단 안드로이드뿐만 아니라 다른 언어나 IDE 등에서 많이 사용되는 기본 원리이긴 합니다. 하지만 안드로이드에서 이러한 리소스 외부화를 강조하는 이유는 무엇일까요? 한번 차근차근 살펴보겠습니다.
일단 여기서 말하는 '외부화'가 진행되는 리소스는 정적인(static) 리소스 입니다. JAVA에서의 static과 혼동하지는 않기를 바랍니다. 여기서 말하는 정적인(static) 리소스는 누가 언제 실행하든 항상 같은 결과가 나오는 콘텐츠를 의미합니다. 대표적인 것이 바로 문자열(String)입니다.
예를 들어서 어떤 장문의 스트링 "안녕하세요, 회원가입을 하려면 .......을 입력하고 정책에 동의해 주세요."가 있다고 가정해 보겠습니다. 이를 코드에서 직접 작성하게 될 경우 코드가 길어지면서 유지보수에 악영향을 미치게 될 것입니다. 그래서, 이러한 정적인 데이터는 별도의 리소스 파일로 작성하고, 코드 레벨에서는 리소스를 불러와 사용하게 되는 것입니다. 코드는 결국 알고리즘 위주의 코드만 남으며, 안드로이드의 리소스 파일은 대부분 XML로 작성하게 됩니다(상세한 작성 방식은 추후 별도로 알아보겠습니다)
경험자들은 알겠지만, 사실상 안드로이드의 UI는 XML을 통해서 작성하게 됩니다. 이유는 무엇일까요? 자, 우리는 위에서 '정적인 리소스는 리소스화를 진행한다.'라고 말했습니다. 우리가 카카오톡을 실행하게 되면 안의 텍스트나 이모티콘 등의 콘텐츠는 실시간으로 계속 변화하지만, 이를 표시하는 기본 UI는 고정되어 있는 것을 알 수 있습니다. 그런 차원에서, 이 UI들은 정적인 리소스로 취급할 수 있으며, 이를 외부화시키기 위해 XML로 작성하게 되는 구조입니다.
물론 이는 아주 작은 예시일 뿐입니다. 실제로 UI외의 스트링, 레이아웃, 애니메이션, 메뉴 등의 다양한 요소들을 리소스로 만들어 개발을 진행하는 경우가 다수입니다.
'Programming > Android' 카테고리의 다른 글
2. 안드로이드 기본 구조의 이해 (5) - gradle(그레이들) [1/2] (0) | 2023.12.21 |
---|---|
2. 안드로이드 기본 구조의 이해 (4) - 앱 디렉토리와 파일 (0) | 2023.12.14 |
2. 안드로이드 기본 구조의 이해 (2) - 컴포넌트(component) 3 (1) | 2023.11.28 |
2. 안드로이드 기본 구조의 이해 (2) - 컴포넌트(component) 2 (0) | 2023.11.27 |
2. 안드로이드 기본 구조의 이해 (2) - 컴포넌트(component) 1 (0) | 2023.11.15 |