분류 전체보기 242

Cassandra의 스토리지 엔진을 바꾸어서 고속화한 Rocksandra를 Instagram이 오픈소스로 공개

Cassandra의 스토리지 엔진을 교체하여 고속화 한 「Rocksandra "Instagram가 오픈 소스로 공개. Java의 가베지 컬렉션에 의한 지연을 크게 해소 Instagram은 NoSQL 데이터베이스 Cassandra에서 발생했다 Java 가비지 콜렉션에 의해 발생하는 지연을 해소하고, 고속화 한 개량 판 Cassandra를 오픈 소스로 공개했다고 발표했다 .스토리지 엔진으로 키 밸류 스토어 'RocksDB'을 이용한 것으로,이 회사는이 향상된 버전 Cassandra를 " Rocksandra "라고 부르고 있습니다.Java 가비지 컬렉션이 Cassandra의 지연을 발생시키고있다회사가 Rocksandra 개발하게 된 경위는 엔지니어 블로그 " Open-sourcing a 10x reductio..

IT 이모저모 2018.03.19

Android 8.0과 Reactive Extensions을 이용한 응용프로그램 개발 - 6

데이터 업데이트 처리 일반적으로 RecyclerView을 사용한 화면 데이터 갱신 처리는 "초기 화면했을 때 업데이트" "화면 상단에서 당겨 업데이트"와 "아래로 스크롤하면 다음 페이지를로드 '의 3 가지가 있습니다 . 앞의 2 개는 특히 망설임없이 Fragment # onResume ()과 SwipeRefreshLayout # setOnRefreshListener ()에서 데이터로드 처리를 호출하면 좋을 것입니다. 세 번째 아래로 스크롤하면 다음 페이지를로드 처리에 대해서는 RxJava + RxBinding (recyclerview-v7) 라이브러리를 이용하면 안전하고 간단하게 구현할 수 있습니다. 다음 코드에서 볼 수 있듯이 데이터로드 중에 화면 하단 도달 이벤트를 발생시키지 않는 이벤트를 중복 발생..

IT 이모저모 2018.03.15

Android 8.0과 Reactive Extensions을 이용한 응용프로그램 개발 - 5

사용자 목록 검색하고 표시하기 사용자 목록을 갱신하는 API 호출 처리의 구현은 RecyclerView 어댑터 및 RecyclerViewHolder를 정의하고, API 호출이 완료 될 때 어댑터에 데이터를 설정하는 식으로 진행됩니다. API 호출 전항에서 준비한 randomuser.me의 API 접근에서 사용자 목록을 가져옵니다. API 호출의 응답은 io.reactivex.Observable이므로 Reactive Extensions의 작법에 따라 응답의 핸들링을 구현할 수 있습니다. 주목할만한 점은 통신 완료시 알림 개체 (mDataLoadedNotification)에 대한 통지 만하고 View 갱신 처리 등을 기술하지 않기 때문에 간결하게 쓸 수 있다는 점입니다. 여기서 말하는 통지 객체는 RxJav..

IT 이모저모 2018.03.15

Android 8.0과 Reactive Extensions을 이용한 응용프로그램 개발 - 4

통신 처리 구현 통신은 아래 그림과 같이 okhttp, Retrofit, google-gson, Rx Java를 연계해서 활용합니다. build.gradle은 아래와 같이 설정합니다. adapter-rxjava2는 Retrofit2 응답을 RxJava2와 연동하기 위한 라이브러리입니다. logging-interoeptor는 okhttp통신 로그를 출력하기위한 라이브러리입니다. dependencies { compile 'com.squareup.retrofit2 : retrofit : 2.3.0' compile 'com.squareup.retrofit2 : converter-gson : 2.3.0' compile 'com.squareup.retrofit2 : adapter-rxjava2 : 2.3.0' co..

IT 이모저모 2018.03.14

Android 8.0과 Reactive Extensions을 이용한 응용프로그램 개발 - 3

View 바인딩 사용자의 입력 정보를 수신하거나 정보를 표시하기 위해서는 View에서 데이터를 받거나 전달 할 필요가 있습니다. 이를 하기 위해서는 크게 두가지 방법이 있습니다. - View 바인딩 : Activity와 Fragment가 View의 참조를 가지고 있어 View를 직접 갱신 할 수 있도록 합니다. - Data 바인딩 : 최근 javascript 많이 채용하는 기법으로 View에 데이터를 바인딩하고 Activity와 Fragment에서 데이터를 업데이트하는 등 두 역활을 분리해 줍니다. 이번에는 View 바인딩 기법을 사용 합니다. 먼저 해야할 일은 View에 고유한 id를 지정해 줍니다. View 바인딩 또는 Data 바인딩인가 안드로이드가 제공하는 Data Binding 라이브러리를 사용..

IT 이모저모 2018.03.14

batch 명령어 Taskkill (프로세스 종료)

배치파일에서 프로세스를 종료시킬때 Taskkill 명령어를 사용하면 됩니다. taskkill 사용법은 아래와 같으며, 프로세스를 강제 종료할때 사용하면 좋습니다. [사용법] TASKKILL [/S 시스템 [/U 사용자 이름 [/P [암호]]]] { [/FI 필터] [/PID 프로세스 id | /IM 이미지 이름] } [/F] [/T]설명: 이 명령줄 도구는 하나 이상의 프로세스를 종료하기 위해 사용할 수 있습 프로세스 id 또는 이미지 이름으로 프로세스를 종료할 수 있습니다.매개 변수 목록: /S 시스템 연결할 원격 시스템을 지정합니다. /U [domain\]user 명령을 실행해야 하는 사용자 컨텍스트를 지정합니다. /P [암호] 해당 사용자 컨텍스트의 암호를 지정합니다. 생략한 경우에는 물어봅니다. ..

IT 이모저모 2018.03.13

Android 8.0과 Reactive Extensions을 이용한 응용프로그램 개발 - 2

Java / Android에는 개발에 도움을 주는 편리한 라이브러리들이 많이 있습니다. 본 앱은 개발의 편의를 위해 아래의 라이브러리를 사용합니다. - lombok - Timber - Lightweight-Stream-API - Rx Java2 - Rx Android 이글을 쓴 시점에서 build.gradle 설정은 아래와 같습니다. dependencies { compileOnly 'org.projectlombok : lombok : 1.16.18' annotationProcessor 'org.projectlombok : lombok : 1.16.18' compile 'com.jakewharton.timber : timber : 4.5.1' compile 'com.annimon : stream : 1.1..

IT 이모저모 2018.03.13

Android 8.0과 Reactive Extensions을 이용한 응용프로그램 개발 - 1

요즘 리 Reactive 프로그래밍이 주목 받고 있습니다. GUI의 상호 작용과 시간 경과에 따라 변화하는 애니메이션 등에 적합한 패러다임 인 것으로 알려져 있으며, 안드로이드 애플리케이션 개발에도 도입하는 것이 가능합니다. 이번에는 Ractive Extensions(RxJava2)를 사용하여 안드로이드 채팅 어플리케이션 개발 방법에 대해 알아 보겠습니다. 안드로이스 스튜디오 3.0버전을 사용해서 개발을 진행하겠습니다.먼저 안드로이스 스튜디오를 실행 시켜 File 메뉴에서 New - New Project 를 선택하고, 필요 사항을 입력합니다. 프로젝트를 만든 후 생성 된 프로젝트 build.gradle을 확인 합니다. Android Plugin의 버전이 3.0.1 로 되어있는것을 확인할 수 있습니다. 기..

IT 이모저모 2018.03.13

C# 반올림, 올림, 버림 사용하기

c#에서는 다양한 수학 편의 함수를 제공하고 있습니다. 그중에서도 자주 사용하는 올림, 반올림, 올림 관련 함수를 정리해 보았습니다.수학관련 함수를 사용하기 위해서는 System.Math 를 using 해줍니다. 기본적인 사용 방법은 아래와 갔습니다. 반올림 Math.Round(값) Math.Round(값, 소숫점)올림 Math.Ceiling(값)버림 Math.Truncate(값)올림이나 버림의 경우에는 값의 정수부분 만을 결과로 돌려주지만 반올림의 경우에는 소숫점을 지정하지 않는 경우에는 정수 값을 리턴하지만 소숫점을 지정하는 경우 해당 소숫점을 기준으로 반올림한 부동소숫점 값을 돌려줍니다. 숫자를 문자열로 변환하는 format 함수에서도 숫자 형식을 벗어난 소숫점을 반올림 처리하는데 올림이나 내림 처..

IT 이모저모 2018.03.09

Barrier 란? - 5

더 많은 대역폭 압박 GPU는 시간이 지남에 따라 컴퓨팅에 점점 더 집중하고 있지만 삼각형을 픽셀 격자로 래스터 화하기 위해 여전히 많이 최적화되어 있습니다. 이 작업을 수행하면 ROP의 터치 가진 끝낼 수 있다는 것을 의미한다 t 메모리마다 프레임. 게임은 이제 최대 4k 해상도로 렌더링해야하며, 오버 드로우없이 모든 것을 작성하는 경우 8294400 픽셀로 작동합니다. 16 비트 부동 소수점 텍스처 형식의 경우 픽셀 당 8 바이트를 곱하거나 G 버퍼의 경우 픽셀 당 최대 30 또는 40 바이트를 곱하면 그 모든 것을 제어하기 위해 많은 대역폭을 소비하게됩니다 한 번 메모리 (그리고 일반적으로 많은 텍셀들이 한번 이상 터치 될 것입니다!)! MSAA를 믹스에 추가하면 순진한 경우 메모리 및 대역폭 요구..

IT 이모저모 2018.03.09