전체 글(61)
-
[Android A..Z] Asynchronous 비동기란?
동기?비동기? 사실 비동기를 알기 전에 동기의 개념붙 알아야 한다. 프로그래밍에서의 동기란, 한 번에 하나의 작업만 진행하는 것을 의미한다. 프로그램이 지금부터 수행해야 할 여러 개의 작업이 있다고 치자. 동기적 작업 방식은 한 직업이 끝나기 전까지 다른 작업을 할 수 없다. 위 그림의 1번 작업이 끝나고 나서야 2번 작업을 시작할 수 있다. Ex) 점원이 1명인 카페가 있다. 이 때 손님 세 명이 아서 주문을 한다. 만약 점원이 동기적 방식으로 일한다면, 하나의 주문을 받았을 때 음료수를 만들기 시작해서, 완성 후 손님에게 전달하기 전까지는 다른 주문을 받을 수 없다. 안타깝게도 첫 주문자가 되지 못한 두명의 손님은 카운터에서 계속 기다려야한다. 그러나 점원이 비동기적으로 작업을 했다면 상황은 달라질 ..
2021.11.22 -
[Android A..Z] Clean Architecture
Clean Architecture란? 고객들에게 제공하는 어플리케이션 같은 경우에는 수많은 기능들이 있기에 복잡도가 굉장히 높다. 복잡도가 높은 어플리케이션을 개발할 때 어떻게 하면 유지 보수 하기 쉽고 고품질의 코드를 작성할 수 있을까? 어플리케이션은 새로운 기능이 추가된다거나 내부 로직이 변경되어야 하는일이 생겼을 때 유연하게 대처할 수 있도록 구조화 해야한다. 클린 아키텍처의 개념은 2012년에 Uncle Bob님이 블로그에 기재하며 세상에 나오게 되었다. 클린 아키텍처의 목표는 계층을 분리하여 관심사를 분리하는 것이다. 이게 무슨 의미가 있을까? 예를 들어 안드로이드 로컬 DB를 기존에 Realm을 사용하고 있다. Realm으로 수많은 기능을 구현하고 이미 제품까지 나와 있는 상황이다. 그런데 갑..
2021.11.21 -
[JAVA ] Static이란? 정적 변수 정적 메소드에 관하여
1. Static Java에서 Static 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미한다. 이를 정확히 이해하기 위해서는 메모리 영역에 대한 이해가 필요. [Static의 메모리] 일반적으로 개발자가 만든 Class는 Static 영역에 생성되고, new 연산을 통해 생성한 객체는 Heap영역에 생성된다. 객체의 생성시에 할당된 Heap영역 메모리는 GC(Garbage Collector)를 통해 수시로 관리를 받는다. 하지만 Static 키워드를 통해 Static영역에 할당된 메모리는 모든 객체가 공유하는 메모리라는 장점을 지니지만, Garbage Collector의 관리 영역 밖에 존재하므로 Static을 자주 사용하면 프로그램의 종료시까지 메모리가 할당된..
2021.11.17