본문 바로가기

안드로이드65

[CS] 가비지 컬렉션 (Garbase Collection, GC) 가비지 컬렉션 (Garbase Collection, GC)메모리 관리 방법JVM(자바 가상 머신)의 Heap 영역에서 동적으로 할당됐던 메모리 중 필요 없게 된 메모리 객체(garbage)를 모아 주기적으로 제거하는 프로세스프로그램을 개발하다 보면 유효하지 않은 메모리인 Garbage 가 발생하게 되는데, *메모리 누수를 방지하기 위해서 이러한 불필요한 메모리를 제거해야 한다.C / C++ 언어에서는 가비지 컬렉션이 없어 free() 라는 함수를 통해 직접 메모리를 해제해주어야 한다.Java 나 Kotlin 을 이용하면 가비지 컬렉션가 주기적으로 검사하여 메모리를 청소해 준다.하지만 자동으로 처리해 준다 해도 메모리가 언제 해제되는지 정확하게 알 수 없어 제어하기 힘들고, 가비지 컬렉션이 동작하는 동안에.. 2024. 8. 27.
[CS] 가상 메모리 (Virtual Memory) 메모리 (Memory)프로그램과 프로그램 수행에 필요한 데이터 및 코드를 저장하는 장치메모리는 크게 내부 기억장치인 주기억장치(DRAM, CPU 안에 있는 레지스터와 캐시)와 외부 기억장치인 보조 기억장치(SSH, HDD)로 분류된다. 가상 메모리 등장 배경1. 초창기 컴퓨터에서는 사용 가능한 RAM 의 용량이 가장 큰 실행 애플리케이션의 주소 공간보다 커야 했다. 그렇지 않을 경우 "메모리 부족" 오류로 인해 해당 애플리케이션을 실행할 수 없었다.즉, 컴퓨터에 실제로 장착된 물리 메모리(RAM)의 최대 크기는 CPU 에 의해 제한되기 때문에 *운영체제는 물리 메모리보다 큰 *프로세스를 실행시킬 수 없었다.운영체제 : 컴퓨터 시스템의 핵심 소프트웨어로, 컴퓨터 하드웨어와 응용 프로그램 간의 상호작용을 관.. 2024. 8. 23.
[Image] 래스터(JPG, PNG, BMP, WebP), 벡터(SVG) 이미지 대부분의 이미지 파일들은 래스터 파일과 벡터 파일이라는 두 가지의 일반적인 카테고리로 분류할 수 있다. 픽셀(pixel) [Android] px(pixel), dp(dip), sp픽셀(pixel, px)화소라고도 하며, 디지털 이미지를 나타내는 데 사용되는 최소 단위이다.해상도와도 관련이 있는데, 동일한 이미지라 하더라도 픽셀의 수가 많은 것이 해상도가 더 높다.오른쪽 그dev-baik.tistory.com 래스터(Raster) 이미지픽셀이라고 불리는 점들이 그리드(격자무늬) 형태로 모여 만들어진 이미지하나의 픽셀이 한 가지 색상을 표현하며, 일정한 수의 색상 픽셀로 구성되어 있기 때문에 파일 크기를 변경하면 *해상도가 저하된다.해상도 : 화면이나 인쇄에서 이미지의 정밀도를 나타내는 지표로, 이미지를 표.. 2024. 8. 19.
[Android] Activity Activity 는 애플리케이션의 화면을 구성하는 컴포넌트로 하나의 Activity는 하나의 화면을 나타내며, Activity 에서 출력한 내용이 안드로이드 디바이스의 화면에 나타낸다.사용자는 액티비티가 생성한 UI 를 통해 애플리케이션과 상호 작용할 수 있다.각 액티비티는 독립적이어서 앱이 사용자와 상호작용하기 위한 진입점 역할을 하기도 한다.액티비티는 하나 이상의 뷰(View)나 뷰 그룹(View Group)을 가지고 있어야 하며, 이를 통해 UI를 표현한다.Activity LifecycleActivity 클래스는 수명 주기 상태가 변경되었음을 Activity 에 알리는 주요한 메서드들을 제공한다.핵심 콜백 메소드로는 onCreate(), onStart(), onResume(), onPause(), .. 2024. 8. 9.
[Android] App Manifest AndroidManifest.xml모든 앱 프로젝트는 프로젝트 소스 세트의 루트에 AndroidManifest.xml 파일(정확히 이 이름이어야 함)이 있어야 한다.Android 빌드 도구, Android 운영체제 및 Google Play 에 앱에 관한 필수 정보를 설명한다.매니페스트 파일은 다른 여러 가지도 설명하지만 특히 다음과 같은 내용을 선언해야 한다.각 구성 요소는 Kotlin 또는 Java 클래스의 이름과 같은 기본 속성을 정의해야 한다. 또한, 각 구성 요소가 처리할 수 있는 기기 구성의 종류를 명시하고, 구성 요소가 어떻게 시작되는지를 설명하는 인텐트 필터와 같은 기능을 선언할 수도 있다.앱이 시스템이나 다른 앱의 보호된 부분에 접근하기 위해 필요한 권한을 명시해야 한다. 또한, 다른 앱이.. 2024. 8. 8.
[Git] Git, GitHub, Branch, 명령어 Git*분산 *버전 관리 시스템(Version Control System, VCS)분산 (모델) : 프로젝트에 참여하는 모든 클라이언트가 전체 저장소에 대한 개별적인 로컬 저장소를 갖고 작업하는 방식*클라이언트-서버 모델과 다르게 각 클라이언트는 로컬 저장소에서 파일의 모든 버전을 가지고 있으며, 다른 클라이언트의 변경 사항을 가져와 자신의 로컬 저장소에 병합한다.클라이언트-서버 모델 : 하나의 중앙 서버로 여러 클라이언트들이 각자 필요한 것만 가져와서 작업을 하고 다시 중앙 서버로 보내서 통합하는 방식버전 관리 : 여러 파일을 하나의 버전으로 묶어 관리하는 것소스 코드 등의 변경 사항을 추적하고, 여러 명의 개발자가 동시에 작업을 할 수 있도록 지원하며, 이전 버전의 코드를 쉽게 복원하고 관리할 수 있.. 2024. 8. 7.
[Android] Gradle Gradle의 동작원리 이해하기안드로이드 개발을 한다면 이 코끼리를 지겹게 보게 됩니다. 다만 이 코끼리에 대해서 자세히 공부해보고 알아본적이 없어서 이번 게시글을 통해 Gradle의 원리를 이해해보고자 합니다. Gradle이란everyday-develop-myself.tistory.comGroovy 언어를 기반으로 한 오픈소스 빌드 도구빌드 도구 : 애플리케이션 생성을 자동화 하기 위한 프로그램으로 안드로이드에서는 .apk 파일을 만드는 과정을 자동화한다모든 종류의 소프트웨어를 빌드할 수 있는 오픈소스 빌드 자동화툴빌드 : 컴파일을 비롯한 다양한 작업을 통해 최종적으로 배포 가능한 소프트웨어를 생성하는 과정다양한 작업 : 소스 코드를 컴파일하고, 라이브러리를 추가하고, 리소스 파일을 처리하고, 테스트를.. 2024. 8. 6.