나는 원래 Android 개발자가 목표였다.
왜냐하면, 구글에 입사하고 싶었기 때문엥,,ㅎ
그런데 어쩌다가 백엔드 Spring Boot 개발자가 되었다.
근데 이번 프로젝트에서는 내가 원하는 기능을 구현하기 위해서는 Android를 직접 개발해야한다.
그래서 백엔드 Spring Boot 개발자의 Android를 이해하는 과정을 적어보겠다.
안드로이드 앱 프로젝트 구조 이해하기
다음은 안드로이드의 기본 구조이다.
-
AndroidManifest.xml:
- 앱의 구성을 정의하는 XML 파일. 액티비티, 서비스, 퍼미션 및 앱 설정과 관련된 정보가 포함됨.
- 앱의 구성 요소를 확인하고, 어떤 액티비티가 앱의 진입점인지 확인할 수 있음.
-
java/ 또는 kotlin/ 디렉토리:
- 앱의 Java 또는 Kotlin 소스 코드가 들어 있는 디렉토리. 이 디렉토리에는 액티비티, 서비스, 데이터 모델 및 유틸리티 클래스 등이 포함됨.
- 주요 기능을 하는 파일들. 주로
MainActivity와 같은 앱 진입점이 될 수 있는 파일이 있다.
-
res/ 디렉토리:
- 리소스 파일을 포함하는 디렉토리임.
- res/layout: 액티비티 및 레이아웃 파일이 포함됨.
- res/drawable: 이미지 및 그래픽 리소스가 있음.
- res/values: 문자열, 색상, 스타일 등의 값이 정의된 XML 파일이 있음.
- 레이아웃 파일을 확인하여 UI의 구성 요소를 파악함. 레이아웃 파일에는 XML로 작성된 UI 구성이 포함되어 있음.
-
Gradle 스크립트:
build.gradle 파일은 프로젝트 및 모듈 수준에서 라이브러리 의존성, 빌드 설정 및 다양한 빌드 옵션을 구성함.
나는 프로젝트를 진행하며, 개발을 공부하면서 우선 이 프로그램이 어떻게 돌아가는지 이해하는게 가장 도움이 되었다. 이것또한 굉장히 복잡해보일 수 있지만, 천천히 익숙해질 수 있도록 열심히 공부해야겠다.
액티비티, 서비스, 데이터 모델 및 유틸리티 클래스가 뭐야?
액티비티, 서비스, 데이터 모델 및 유틸리티 클래스는 안드로이드 앱에서 사용되는 주요 구성 요소 및 클래스 유형이다.
-
액티비티 (Activity):
- 안드로이드 앱에서 사용자 인터페이스를 제공하는 주요 구성 요소 중 하나. 사용자와 상호 작용하여 화면에 정보를 표시하고 기능을 제공함. 주로 사용자 화면의 단일 페이지 또는 화면을 나타냄. 대부분의 앱은 하나 이상의 액티비티를 포함하며, 주요 기능을 담당함. 일반적으로, 앱의 진입점이 되는 화면이기도 함.
-
서비스 (Service):
- 백그라운드에서 실행되는 작업을 수행하는 구성 요소입니다. 주로 오랜 시간 동안 실행되며 사용자 인터페이스를 제공하지 않습니다. 주로 네트워크 호출, 파일 다운로드, 데이터 처리 및 백그라운드 작업을 담당합니다. 예를 들어, 음악 재생, 위치 업데이트 등을 처리할 때 사용됩니다.
-
데이터 모델 (Data Model):
- 앱에서 사용되는 데이터를 나타내고 조작하는 데 사용되는 클래스입니다. 데이터 모델 클래스는 앱 내부에서 데이터를 구조화하고 유지하는 역할을 담당합니다. 이는 데이터베이스와 통신하거나 API로부터 데이터를 가져와서 사용자에게 표시하는 등의 역할을 수행합니다.
-
유틸리티 클래스 (Utility Class):
- 일반적으로 반복적이거나 공통적인 작업을 수행하는 데 사용되는 보조 클래스입니다. 이러한 클래스는 특정 기능을 수행하기 위해 작성되며, 특정 앱 전체에 걸쳐 재사용될 수 있는 메서드나 함수를 제공합니다. 예를 들어, 날짜 형식 변환, 네트워크 통신, 데이터 변환 등의 기능을 수행하는 메서드를 포함할 수 있습니다.
이러한 클래스들은 안드로이드 앱을 구성하고 기능을 분리하는 데 사용됩니다. 각 클래스는 특정 역할과 책임을 갖고 있으며, 앱을 모듈화하고 유지보수하기 쉽게 만드는 데 중요한 역할을 합니다.