💡 안드로이드 4대 컴포넌트 중 하나인 액티비티에 대하여 상세하게 학습하였습니다 ! Activity?액티비티는 안드로이드 애플리케이션에서 사용자 인터페이스를 담당하는 구성 요소입니다.애플리케이션의 하나의 화면을 나타내며, 사용자가 상호작용할 수 있는 UI를 제공합니다.일반적으로는 화면을 채우는 UI 창이지만, 필요에 따라서 다른 창 위에 작게 띄울 수 있습니다.액티비티의 특징UI 화면XML 레이아웃 파일을 통해 UI 요소들을 정의하고, 이 요소들을 코드에서 제어합니다.애플리케이션의 진입점 (런쳐 액티비티)사용자가 첫 번째로 접하는 액티비티를 통해 애플리케이션과 상호작용을 진행하며, 이를 런쳐 액티비티라고 합니다.AndroidManifest.xml 파일에서 intent-filter의 MAIN과 LAUNC..
💡 우아한테크코스 과정을 진행하면서 배웠던 UI 테스트에 대하여 다시 한번 돌아보고 학습하는 시간을 가졌습니다 ! UI 테스트사용자와 앱 간에 인터페이스가 올바르게 작동하는지 확인하려면 UI 테스트를 진행하는 것이 좋습니다.UI 테스트를 작성하면 복잡한 UI 로직이나 기존에 개발되어 있는 인터페이스를 보장합니다.테스트 코드의 필요성테스트 코드를 작성하면 장애에 관한 신속한 피드백이 가능합니다.개발 주기에서 초기 장애를 감지하고, 더 안전한 코드 리팩터링을 제공합니다.또한 기술적 문제를 최소화하기 때문에 안정적인 개발 속도를 얻을 수 있습니다.계측 테스트(Instrumentation Test)앱의 실제 디바이스 또는 애뮬레이터에서 동작하는 테스트를 실행하는 데 사용됩니다.애뮬레이터를 켜고 앱을 빌드하여 ..
💡 안드로이드에서 List를 보여주기 위해서 사용하는 ListView에 대하여 학습하였습니다 ! ListView리스트뷰는 데이터 목록을 나열하여 화면에 표시하는 뷰 그룹의 한 종류입니다.여러 개의 아이템 중에 하나를 선택할 수 있는 Selection Widget 입니다.ListView를 효율적으로 활용하기 위해서는 convertView와 ViewHolder 패턴을 효율적으로 활용하는 것이 중요합니다.이 패턴을 통해서 리스트 아이템을 재사용하여 성능을 최적화할 수 있습니다.converViewListView에서 기존의 뷰를 재사용할 때 사용되는 파라미터입니다.adapter에서 이전 뷰가 재사용이 가능할 경우 그 뷰의 정보를 가지고 있습니다.리스트가 스크롤 될 때 새로운 아이템을 표시할 때마다 새로운 뷰를 ..
💡 안드로이드에서 자주 접하는 컨텍스트에 대하여 학습하였습니다! ContextContext의 사전적 정의는 맥락, 전후 사정을 의미하며 애플리케이션에 대해서 현재 상태를 나타내는 역할을 합니다.새로 생성된 객체가 지금 어떤 일이 일어나고 있는지 알 수 있도록하며, 액티비티와 애플리케이션에 대한 정보를 얻기 위해 사용됩니다.Android Context안드로이드 애플리케이션 환경에 대한 글로벌 정보를 가지는 인터페이스입니다.애플리케이션의 현재 상태를 가지고 있으며, 시스템 서비스에서 제공하는 API에 접근하기 위해 사용됩니다.리소스, DB, Shared PreferencesActivity, Application Context는 Android Context 클래스를 상속받아 사용됩니다.Application ..
💡 우아한테크코스 활동 중에 사용한 SQLite에 대하여 학습하였습니다 ! SQLiteSQLite는 데이터베이스 관리 시스템으로 서버가 아닌 응용 프로그램에 넣어 사용하는 가벼운 데이터베이스입니다.로컬 데이터를 관리해야 하는 다양한 애플리케이션에서 사용되며, 아래와 같은 예시에 주로 활용됩니다 !사용자 설정 정보즐겨찾기캐시 데이터사용자의 오프라인 생성 데이터안드로이드에 내장되어 있으며, 어플이 종료되거나 디바이스 전원이 꺼지더라도 삭제되지 않습니다.DBConstantSQLite 데이터베이스를 사용할 때, 데이터베이스 관련 상수들을 정의하는 역할을 하는 Constant입니다.주요 코드의 가독성을 높이고, 실수를 방지하면서 쉽게 참조할 수 있도록 하기 위해 사용합니다.아래는 우아한테크코스 활동 중에 선언한..
💡 안드로이드와 백엔드에서 코루틴 스코프를 어떻게 만들고 활용하는지 학습하였습니다.CoroutineScope 팩토리 함수CoroutineScope는 coroutineContext를 유일한 프로퍼티로 가지고 있는 인터페이스입니다.interface CoroutineScope { val coroutineContext: CoroutineContext}CoroutineScope 객체 생성CoroutineScope 인터페이스를 구현한 클래스를 만들고 내부에서 코루틴 빌더를 직접 호출할 수 있지만, 이 방법은 문제가 있습니다.cancel이나 ensureActivce 같은 메서드를 직접 호출하면 문제가 발생함갑자기 전체 스코프를 취소하면 코루틴이 더 이상 시작될 수 없음class SomeClass : Corou..