1. EventBus란? 기존의 Intent와 Serializable의 사용으로 화면전환시 데이터를 같이 심어 전송하는 방법 대신 화면전환을 하지 않고 데이터만 전송하여 여러 다른 엑티비티 혹은 프레그먼트, 변수에 데이터를 뿌려주는 방식으로 실시간 데이터 수발신을 만듬 2. 의존성 추가 implementation 'org.greenrobot:eventbus:3.2.0' 3. 데이터 캐리어 선언 일반적으로 데이터를 담아놓는 그릇으로 생각하면됨, 보통 MainActivity에서 데이터를 수발신 업데이트함 public class MessageEvent { public final String message; public MessageEvent(String message) { this.message = messa..
분류 전체보기
1. Static 변수 static 변수의 값은 함수가 종료되더라도 프로그램이 종료되지 않는 이상 메모리상에 남아있다 보통 우리가 작성하는 일반 지역변수는 스택(Stack)영역에 저장된다. 이 스택 영역의 변수들은 함수 호출시에 메모리에 할당되며 함수 종료시에 메모리에서 사라진다. 하지만 static 변수는 데이터(Data)영역에 저장된다. (+ 전역변수 또한 데이터영역에 저장된다.) 2. Static 메서드 class C1{ static int static_variable = 1; int instance_variable = 2; static void static_static(){ System.out.println(static_variable); } static void static_instance(){..
1. Multi Process 하나의 프로그램을 여러개의 Process로 나누어 처리하는 방식 장점 : 하나의 Process가 잘못되어도 다른 Process가 처리하기 때문에 문제가 발생되지 않는다 단점 : Context Switching 비용이 발생한다 2. Multi Thread 프로그램을 여러개의 Thread로 구성하고 작업을 처리한다 장점 : 시스템 자원 소모 감소, 처리비용 감소(실행속도향상), 쓰레드간 자원 공유(stack을 제외한 영역) 단점 : 디버깅이 어렵다, 동기화 이슈발생, 하나의 쓰레드의 오류로 전체 프로세스 오류 3. Thread Safe 멀티 스레드 프로그래밍에서 일반적으로 어떤 함수나 변수, 혹은 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없음을..
1. 프로세스란?(Process) 운영체제로 부터 자원을 할당받은 작업의 단위 실행된 프로그램을 의미한다. Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역 2. 스레드란?(Thread) 할당 받은 자원을 이용하는 실행의 단위 프로세스 내에서 실행되는 여러 흐름의 단위 프로세스 내에서 스레드 단위로 나뉘며 그 안에서의 작업은 스택으로 관리된다 각각의 스레드는 별도의 스택을 가지고 있지만 힙영역은 공유할 수 있다. 3. 스택이란?(Stack) 메모리 영억으로 지역변수, 매개변수, 리턴 값등의 임시 데이터 저장 공간 후입선출 구조 → 스택, 큐, 리스트 차이 리스트 : 어느 곳에서나 가능 스택 : 후입선출 큐 : 선입선출 Reference https://roi-data.com..