Programming (468) 썸네일형 리스트형 2. 안드로이드 기본 구조의 이해 (6) - 기본 샘플 app 모듈 분석 [2/3] 앞선 내용에서 이어서 계속 살펴보도록 하겠습니다. 2. 안드로이드 기본 구조의 이해 (6) - 기본 샘플 app 모듈 분석 [1/2] 우리가 안드로이드 스튜디오에서 기본적으로 프로젝트를 하나 생성하게 되면, 해당 프로젝트에 [app]이라는 기본 모듈이 하나 생성됩니다. 아시다시피 "Hello Wolrd"를 출력하는 기본 샘플인데요, nozeroslope.tistory.com ▷ 위 내용 중, 태그 내에 작성된 속성 값 중 아래와 같은 형식으로 작성된 부분을 찾을 수 있습니다. android:icon="@mipmap/ic_launcher" android:label="@string/app_name" 위 두 개의 값은, 안드로이드 앱이 설치되었을 때 앱의 아이콘 이미지 그리고 앱의 이름을 출력하는 속성입니다... 2. 안드로이드 기본 구조의 이해 (6) - 기본 샘플 app 모듈 분석 [1/3] 우리가 안드로이드 스튜디오에서 기본적으로 프로젝트를 하나 생성하게 되면, 해당 프로젝트에 [app]이라는 기본 모듈이 하나 생성됩니다. 아시다시피 "Hello Wolrd"를 출력하는 기본 샘플인데요, 이 app 모듈(앱)을 구성하는 기본 파일 형식들에 대해서도 하나씩 기본 내용을 살펴보도록 하겠습니다. ○ AndroidManifest.xml 앞서 살펴본 gradle은 앱을 빌드할 때의 환경 설정에 가깝다고 생각하면 됩니다. 그런데 AndroidManifest.xml의 경우는 앱과 관련되는 직접적인 설정이 담겨있는 환경 파일이라고 생각하면 됩니다. 자세한 내용은 세부 사항을 살펴보면 이해가 되실 겁니다. 실제로 개발 진행 시 이 파일을 확인하거나 수정하는 일이 꽤나 빈번하니, 잘 알아두시기 바랍니다. pa.. 컬렉션 프레임워크(5) - 검색 강화 컬렉션 1 : 이진트리 구조 검색 기능을 강화한 컬렉션 프레임워크는 대표적으로 TreeSet과 TreeMap이 존재합니다. 당연히 각각 Set 컬렉션, Map 컬렉션이겠죠? 그런데 이 두 개의 컬렉션 프레임워크를 알아보기 전에 이진트리 구조(binary tree)를 이해해야 합니다. 왜냐하면 이 컬렉션들의 구조 자체가 이 이진트리를 이용해 계층적 구조(tree architecture)를 형성하기 때문입니다. ○ 이진 트리 구조 그럼 기본적으로 이 '이진트리 구조'가 무엇을 의미하는지부터 살펴보겠습니다. 이 이진트리 구조에 대한 이해가 있어야지 우리가 앞으로 살펴볼 TreeSet과 TreeMap과 같은 컬렉션이 왜 "검색 기능이 강화된 컬렉션"인지를 이해할 수 있기 때문이죠. 이진트리 구조는 여러 개의 노드(node)가 트리 모양으로.. 2. 안드로이드 기본 구조의 이해 (5) - gradle(그레이들) [2/2] 앞선 아티클에서 우리는 프로젝트 레벨의 그레이들(gradle)을 살펴보았습니다. 그러나 우리가 실제로 직접 수정하거나 확인하게 되는 부분은 모듈 단위의 그레이들이 될 것입니다. 이제 실제 모듈 레벨의 그레이들을 실제로 살펴보면서, 내용들을 살펴보겠습니다. plugins { id 'com.android.application' } android { compileSdk 31 defaultConfig { applicationId "com.example.androidlab" minSdk 21 targetSdk 31 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes.. 컬렉션 프레임워크(4) - Map 컬렉션 4 : Properties Properties는 Hashtable의 하위 클래스이기 때문에, Hashtable의 모든 특징을 그대로 가지고 있습니다. 다만, 차이점은 key와 value를 String 타입으로 제한한다는 점 입니다. ㅇ그렇기 때문에 Properties는 애플리케이션 옵션 / DB 연결 정보 / 다국어 정보가 저장된 프로퍼티 파일(~.properties) 파일을 읽을 때 사용하게 됩니다. 그럼 여기서 말하는 프로퍼티 파일이란 무엇일까요? 프로퍼티 파일은 key와 value가 = 기호로 연결된 텍스트 파일입니다. 이는 ISO 8859-1 문제셋으로 저장하게 되죠. 그런데, 한글은 해당 문자셋으로 직접 표현이 불가합니다. 그래서 한글은 유니코드로 변한하여 저장하게 되죠. 예를 들어 아래와 같이 country와 langu.. 2. 안드로이드 기본 구조의 이해 (5) - gradle(그레이들) [1/2] 안드로이드 앱 개발을 완료하거나 빌드 테스트를 진행할 때, 이를 위해서는 앱의 리소스 / 자바 코드를 컴파일하는 동시에 준비한 키로 서명을 해서 배포용 파일을 추출하게 됩니다. 이 일련의 과정은 안드로이드 빌드 도구의 일종인 gradle(그레이들)을 통해서 진행하게 됩니다. 이 gradle과 관련된 설정은 [build.gradle]에서 진행할 수 있습니다. 이 gradle 파일은 안드로이드 스튜디오 프로젝트 파일들 중 Gradle Scripts 영역에서 확인이 가능합니다. 상단의 두 개의 파일을 보면 알 수 있듯이, build.gradle 파일을 프로젝트 레벨과 모듈(앱) 레벨이 각각 존재합니다. 프로젝트와 모듈 단위로 구분되는 안드로이드 개발 체계를 이해하고 있다면 크게 어렵지 않을 내용입니다. 그럼 .. 컬렉션 프레임워크(4) - Map 컬렉션 3 : Hashtable 사실 Hashtable은 HashMap과 동일한 내부 구조를 갖습니다. 그래서 이 역시 key로 사용할 객체는 hashCode( ), equals( ) 메서드 오버라이드를 통해 동등한 객체가 될 조건을 구성해야 합니다. 그럼 Hashtable과 HashMap의 근본적인 차이는 무엇일까요? Hashtable은 동기화(synchronized) 메서드로 구성되어 있습니다. 그래서 멀티 스레드 상에서 동시에 메서드 실행이 불가능하고, 하나의 스레드가 완료된 후에야 다른 스레드를 실행할 수 있습니다. 그래서 멀티 스레드를 사용하는 환경에서 객체와 관련된 삭제, 추가 작업이 안전합니다. 이를 두고 스레드가 안전(thread safe)라고 표현합니다. Map 인터페이스의 구현 클래스인 Hashtable의 생성 방법은.. 2. 안드로이드 기본 구조의 이해 (4) - 앱 디렉토리와 파일 이번 아티클에서는 안드로이드 스튜디오에서 앱을 개발하게 될 때, 개발자가 이해해야 하는 파일, 디렉터리 구조를 살펴보도록 하겠습니다. 우선 프로젝트에서 '모듈(앱)' 레벨의 작업이 시작되었을 때 주로 확인해야 하는 폴더는 아래와 같습니다. {n}:\{폴더명}\{프로젝트명}\{모듈명}\app\src\main 안드로이드 스튜디오를 실행했을 때를 기준으로 보면, 위 폴더에 있는 파일들 중 개발자와 직접 관련이 되는 리소스 파일들은 다음과 같이 확인이 가능합니다. 주요 파일들의 이름과 용도를 살펴보자면 다음과 같습니다. · AndroidManifest.xml : 앱의 메인 환경 파일. 여기서 정의한 대로 앱이 실행되며, 이를 분석하거나 수정하면서 개발을 진행 · java/MainActivity.java : 화면.. 이전 1 ··· 23 24 25 26 27 28 29 ··· 59 다음