본문 바로가기

안드로이드/etc.14

[CS] 캐시 (Cache) 캐시 (Cache)자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장소저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다.아래와 같은 경우에 사용을 고려하면 좋다.접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우 (서버의 균일한 API 데이터)반복적으로 동일한 결과를 돌려주는 경우 (이미지나 썸네일 등)캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다.반복적으로 데이터를 불러오는 경우에, 지속적으로 DB 혹은 서버에 요청하는 것이 아니라 Memory 에 데이터를 저장하였다가 불러다 쓰는 것을 의미한다.캐시를 효과적으로 사용하면 시스템의 응답 시간을 줄이고, 서버의 부하를 줄일 수 있다. 이는 사용자 경험을 향상시키고, 시스템의.. 2024. 9. 4.
[CS] JVM 메모리 영역 (Method, Heap, Stack Area) 메서드 영역 (Method Area, Static Area)JVM 이 시작될 때 생성되는 공간으로 바이트 코드(.class)를 처음 메모리 공간에 올릴 때 초기화되는 대상을 저장하기 위한 메모리 공간JVM 이 동작하고 클래스가 로드될 때 적재되서 프로그램이 종료될 때까지 저장된다.모든 쓰레드가 공유하는 영역이라 다음과 같이 초기화 코드 정보들이 저장되게 된다.Field Info : 멤버 변수의 이름, 데이터 타입, 접근 제어자의 정보Method Info : 메소드 이름, return 타입, 함수 매개변수, 접근 제어자의 정보Type Info : Class 인지 Interface 인지 여부 저장, Type 의 속성, 이름 Super Class 의 이름 힙 영역 (Heap Area)메서드 영역와 함께 모든 .. 2024. 8. 30.
[CS] CPU, 주기억장치(ROM, RAM(SRAM, DRAM), 보조기억장치(HDD, SDD) 중앙 처리 장치 (Central Processing Unit, CPU)컴퓨터의 중앙에서 모든 데이터의 처리를 담당하는 장치, 컴퓨터의 두뇌컴퓨터의 속도는 CPU 의 성능이 가장 큰 영향을 미친다. 컴퓨터는 사용자의 명령을 입력받으면, CPU 가 이 명령을 해석하고, 처리(연산) 해서 출력 장치에서 결과를 출력하도록 한다.이렇게 하나의 부품에 해독, 연산, 제어 등 여러 가지 기능이 집약되어 있기 때문에 CPU 를 "마이크로프로세서"라고 부르기도 한다.프로그램의 명령을 수행하여 다양한 *입력 장치로부터 데이터를 받아서 *기억장치와 연계하여 처리한 후 *출력 장치로 보내는 모든 과정을 제어하고 연산하는 장치입력 장치 : 컴퓨터 등 시스템의 외부에서 데이터와 명령을 시스템으로 입력하는 장치로, 문자, 소리, .. 2024. 8. 28.
[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.
[Git] Git, GitHub, Branch, 명령어 Git*분산 *버전 관리 시스템(Version Control System, VCS)분산 (모델) : 프로젝트에 참여하는 모든 클라이언트가 전체 저장소에 대한 개별적인 로컬 저장소를 갖고 작업하는 방식*클라이언트-서버 모델과 다르게 각 클라이언트는 로컬 저장소에서 파일의 모든 버전을 가지고 있으며, 다른 클라이언트의 변경 사항을 가져와 자신의 로컬 저장소에 병합한다.클라이언트-서버 모델 : 하나의 중앙 서버로 여러 클라이언트들이 각자 필요한 것만 가져와서 작업을 하고 다시 중앙 서버로 보내서 통합하는 방식버전 관리 : 여러 파일을 하나의 버전으로 묶어 관리하는 것소스 코드 등의 변경 사항을 추적하고, 여러 명의 개발자가 동시에 작업을 할 수 있도록 지원하며, 이전 버전의 코드를 쉽게 복원하고 관리할 수 있.. 2024. 8. 7.