목록분류 전체보기 (61)
계발자 블로그

안드로이드에는 백그라운드 작업을 수행할 수 있게 해주는 여러가지 방법들이 있습니다. AlarmManager, JobScheduler, Firebase JobDispatcher 등등 하지만 구글은 계속 백그라운드 작업을 제한 하는 정책을 제안하게 됩니다. 그러다 2018년 구글 I/O에서 새롭게 백그라운드 작업을 도와줄 WorkManager가 공개 되었습니다. WorkManager란 안드로이드의 백그라운드 작업을 처리하는 방법 중 하나로 Android Jetpack 아키텍처의 구성 요소 중 하나입니다. 앱이 종료 되거나 기기가 다시 시작 되어도 실행 예정인 지연 가능한 비동기 작업을 쉽게 예약할 수 있게 해줍니다. WorkManager 특징 실행이 보장되며 제약조건을 붙일 수 있습니다. 예를 들면 네트워크..

프로세스(Process)란컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 의미합니다.메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체)운영체제로부터 시스템 자원을 할당받는 작업의 단위동적인 개념으로는 실행된 프로그램을 의미합니다. 할당 받는 시스템 자원으로는cpu 시간운영되기 위해 필요한 주소 공간Code, Data, Stack, Heap의 구조로 되어 있는 독립된 메모리 영역이 있습니다. 프로세스의 특징프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap)을 할당 받습니다.기본적으로 프로세스당 최소 1개의 스레드를 가지고 있습니다.각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료 구조에 접근할 수 없습니다.한 프로세스가..
운영체제(OS, Operating System)란 운영체제란 컴퓨터 시스템과 사용자 사이에서 중개자 역할을 하는 프로그램입니다. 컴퓨터를 켜면 제일 먼저 만나는 프로그램입니다. 운영체제는 하드웨어와 사용자 사이에서 인터페이스를 제공하고, 한정된 시스템 자원을 더욱 효율적으로 관리하여 컴퓨터의 성능을 향상 시키는 시스템 소프트웨어입니다. 일반적으로 윈도우, 맥, 유닉스, 리눅스 등이 있습니다. 운영체제의 목적 처리량 향상 : 컴퓨터 시스템이 단위 시간 동안 처리하는 작업량을 늘린다. 응답 시간 단축 : 컴퓨터 시스템에 작업을 맡긴 후 결과가 나올 때까지 소요되는 시간을 단축 시킨다. 신뢰성 향상 : 컴퓨터 시스템을 구성하는 하드웨어 장치나 프로그램이 주어진 기능을 실패 없이 안정적으로 수행할 수 있도록 한..
쿠키(Cookie)란 쿠키는 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일입니다. 사용자 인증이 유효한 시간을 명시할 수 있으며, 유효 시간이 정해지면 브라우저가 종료되어도 인증이 유지된다는 특징이 있습니다. 쿠키는 클라이언트의 상태 정보를 로컬에 저장했다가 참조합니다. 클라이언트에 300개까지 쿠키저장 가능, 하나의 도메인당 20개의 값만 가질 수 있음, 하나의 쿠키값은 4KB까지 저장합니다. Response Header에 Set-Cookie 속성을 사용하면 클라이언트에 쿠키를 만들 수 있습니다. 쿠키는 사용자가 따로 요청하지 않아도 브라우저가 Request시에 Request Header를 넣어서 자동으로 서버에 전송합니다. 쿠키의 구성 요소 이름 : 각각의 쿠키를 구별하는..
안드로이드에서는 기존 AsyncTask를 이용해서 비동기 프로그래밍을 구현했습니다.하지만 AsyncTask에는 메모리 누수등 여러가지 메모리 관련한 문제가 있어서API 30부터 deprecated 되었습니다.그 대체재로 코루틴을 권장하고 있습니다.코루틴이 코틀린과 이름이 비슷하지만 코틀린만의 고유한 개념은 아닙니다. 우선 프로그램에는 루틴이 있습니다.프로그램의 흐름을 일컫는 추상적인 개념입니다.메인루틴메인 함수에 의해서 진행 되는 프로그램의 흐름서브루틴메인함수 안에서 수행 되는 개별 함수들의 흐름보통 루틴은 일직선 적인 흐름입니다.하지만 코루틴의 특징은 일직선 적인 루틴의 특징을 suspend로 지연을 시키고 resume으로 재시작이 가능합니다. 구글에서 코루틴을..
HTTP란 http는 Hyper Text Transfer Protocaol의 줄임말로써 인터넷 상에서 데이터를 주고 받기 위한 서버와 클라이언트 간에 데이터를 주고 받는 프로토콜입니다. 7계층 중 어플리케이션 계층의 프로토콜로 TCP/IP 위에서 동작합니다. http는 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜이기 때문에 제3자가 정보를 조회할 수 있습니다. 이러한 무제를 해결하기 위해 HTTPS가 등장한 것입니다. HTTPS란 Hyper Text Transfer Protocol Secure로 s는 안전한 통신망을 뜻합니다. http 통신 하는 소켓 부분을 인터넷 상에서 정보를 암호화 하는 SSL(Secure Socket Layer)라는 프로토콜로 대체한 것입니다. HTTPS의 SSL에서는 대칭..

3-way handshake TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결을 설정 하는 과정입니다. TCP/IP 프로토콜을 이용하여 통신을 하는 응용 프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미합니다. 3-way handshake 과정 Client -> Server: SYN Client가 연결 요청 메시지 전송(SYN)한다. Client가 최초로 데이터를 전송할 때 Sequence Number를 임의의 랜덤 숫자로 지정하고, SYN 플래그 비트를 1로 설정한 세그먼트를 전송한다. Server -> Client: SYN + ACK 접속 요청을 받은 Server가 요청을 수락했으며, Client도 포트를 열어달라는 메시..
TCP와 UDP는 전송 계층에서 사용하는, 데이터를 보내기 위해 사용하는 프로토콜 입니다. TCP와 UDP는 각각 가상 회선 방식과 데이터그램 방식이라는 점에서 차이를 가지며, 신뢰성과 연속성 두 측면에서 상충 관계(trade off)에 있습니다. TCP(Transmission Control Protocol)란 인터넷 상에서 데이터를 메세지 형태로 보내기 위해 IP와 함께 사용하는 프로토콜입니다. TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리 합니다. TCP는 연속성 보다 신뢰성 있는 전송이 중요할 때에 사용하는 프로토콜로 파일 전송과 같은 경우에 사용됩니다. TCP 특징 연결형 서비스로 가상 회선 방식을 제공한다. 3-way handshaking 과정..

OSI 7계층이란? 두 시스템 간의 통신을 위해 필요한 기능을 7계층으로 나누어 서비스 하는 것을 말합니다. 7계층으로 나누는 이유 통신이 일어나는 과정을 단계별로 알기 쉽고 7계층 중 특정 한 곳에 이상이 생기면 그 단계만 수정 할 수 있기 때문입니다. 1계층 - 물리 계층(Physical Layer) 기계적, 전기적, 물리적인 특성을 이용해 통신 케이블로 데이터를 전송 하는 절차입니다. 리피터, 케이블, 허브 등 2계층 - 데이터링크 계층(Data Link Layer) 데이터의 물리적 전송 오류를 감지하고 복구하는 오류 제어 기능과 전송 되는 데이터의 흐름을 조절하는 흐름 제어 기능을 수행합니다. 3계층 - 네트워크 계층(Netwokr Layer) 송신 측에서 전송한 데이터가 네트워크에서 최적의 경로..

데이터 결합 라이브러리 | Android 개발자 | Android Developers 데이터 결합 라이브러리 Android Jetpack의 구성요소. 데이터 결합 라이브러리는 프로그래매틱 방식이 아니라 선언적 형식으로 레이아웃의 UI 구성요소를 앱의 데이터 소스와 결합할 수 있는 지원 developer.android.com DataBinding이란? 구글에 따르면 프로그래매틱 방식이 아니고 선언적 형식으로 레이아웃의 ui 구성 요소를 앱의 데이터 소스와 결합 할 수 있는 지원 라이브러리라고 합니다. 간단히 코틀린 코드와 xml의 ui 컨포넌트를 연결하는 라이브러리라고 생각하면 될 것 같습니다. ViewBinding과의 차이점은 DataBinding은 이름 처럼 데이터와 같이 결합 해서 사용할 수 있다는 ..