책 내용 정리 (6) 썸네일형 리스트형 [네트워크] 네트워크의 기초 1. 네트워크란 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있지 않은 집합체를 의미. 노드들이 데이터를 공유할 수 있게 하는 디지털 전기 통신망의 하나입니다. 여기서 노드는 서버, 라우터, 스위치 등 네트워크 장치를 의미, 링크는 유선 또는 무선을 의미 2. 처리량과 지연시간 좋은 네트워크란 많은 처리량 + 짧은 지연시간 + 적은 장애 빈도 + 좋은 보안 처리량(throughput) 이란 링크를 통해 전달되는 단위 시간당 데이터양을 말합니다. 단위로는 bps(bits per second)를 사용. 지연 시간이란(latency) 지연 시간이란 요청을 처리하는 시간을 말하며 어떤 메시지가 두 장치 사이를 왕복하는 데 걸리는 시간을 말한다. 지연 시간은 매체 타입(무선, 유선), 패킷 .. 프레임워크 vs 라이브러리 프레임워크 : 원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 골격, 뼈대를 의미합니다. Spring이나 Android 같이 이미 만들어진 뼈대 안에서 개발자가 쉽게 개발할수 있게 만든것이 프레임워크. 예를 들어 다른 곳으로 이동할 때 '도구'인 비행기를 타고 이동하지만 '비행기'가 컨트롤하고 나는 가만히 있다. 예시 : Spring, Python, Django, Flask, Android, Ruby on Rails 라이브러리: 특정 기능을 모와둔 코드, 함수들의 집합이며 코드 작성 시 활용 가능한 도구들을 의미합니다. 자주사용되는 코드를 자율성 높고 편하게 사용 가능 예를 들면 '도구'인 '가위'를 사용해서 '내가' 직접 컨트롤하여 자르는게 라이브러리와 비슷함 예.. LiveData LiveData LiveData는 관찰 가능한(Observable)데이터 클래스다. 데이터 바인딩의 Observable클래스나 Rxjava의 Observable과는 달리 LiveData는 lifecycle을 통해 생명주기를 인식한다. 즉 액티비티, 프래그먼트, 서비스와 컴포넌트들의 생명 주기를 따른다. LiveData는 데이터의 변경을 활성화된 관찰자를 통해 알린다. 주어진 LifecycleOwner의 생명주기가 STARTED 또는 RESUME 상태인 경우만 Observer를 활성(active) 상태로 간주한다. LifecycleOwner 인터페이스를 구현하는 객체를 매개 변수로 하는 observe() 매서드를 통해 Observer를 등록할수 있다. LifecycleOwner 구현체가 DESTROYED .. 앱 아키텍처를 위한 Jetpack 컴포넌트 Jetpack 컴포넌트 Jetpack 컴포넌트는 생산성을 높여 개발할 수 있게 돕는 라이브러리, 도구, 가이드의 모음이다. Jetpack에서 애플리케이션을 설계하는 권장 사항을 따르고, 보일러 플레이트(?)를 줄이고, 복잡한 작업을 간소화함으로써 중요한 코드에만 집중할수 있다. 더보기 보일러플레이트란? 컴퓨터 프로그래밍에서 보일러플레이트 또는 보일러플레이트 코드라고 부르는 것은 최소한의 변경으로 여러곳에서 재사용되며, 반복적으로 비슷한 형태를 띄는 코드를 말한다. Jetpack은 안드로이드 프레임워크가 아닌 androidx.* 패키지 라이브러리고 제공된다. 이는 하위 버전과 호환하기 위함이며, Android 플랫폼보다 더 자주 업데이트 된다. 그러므로 항상 최신 Jetpack 컴포넌트를 유지하는 것을 추.. 아키텍처를 알아야 앱 개발이 보인다. (RxJava) 차례 : 1. RxJava란 2. Observable 3. RxJava 연산자 4. 스케줄러 5. 배압과 Flowable 6. Subject 1. RxJava란 ? RxJava란 ReactiveX(Reactive Extension)를 자바로 구현한 라이브러리다. RxJava는 이벤트 처리 및 비동기 처리의 구성에 최적화된 라이브러리이다. ReactiveX는 Microsoft사 주도 아래 옵서버 패턴, 이터레이터 패턴, 함수형 프로그래밍의 장점과 개념을 접목한 반응형 프로그래밍 기법을 의미한다. Observable 추상화 및 관련 상위 함수에 중점을 둔 단일 JAR로 가벼운 라이브러리. a) RxJava 설정하기 더보기 build.gradle에 추가 dependencies { implementation '.. 아키텍처를 알아야 앱 개발이 보인다 - 1 1. 앱 설계 원칙 SOLID 1. 단일 책임 원칙 : 모든 클래스가 하나의 책임만 가지고, 그 책임은 완전히 캡슐화 해야함. 어떤 클래스나 모듈 또는 메소드는 단 하나의 기능만 가져야한다 예를 들면, 특정 데이터를 분석하고 서버에 전송하는 모듈 -> (a) 특정 데이터 분석, (b) 서버 전송 같이 분리. 2. 개방 폐쇄 원칙 확장에는 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다는 원칙. ??? 기능 변경과 확장할 수 있으면서, 사용하는 코드는 수정하지 않는다. 상속이나 인터페이스를 통해 기능은 확장하되 코드를 수정하지 않는걸 의미하는듯 예를 들어 차가 있고 트럭, 택시 이런식으로 있다고 한다면 트럭이나 택시가 차를 상속받아서 쓰고 트럭이나 택시별로 차가 가지고 있는 메소드나 기능을 더 구현시.. 이전 1 다음