전체 글
-
VirtIO-trace: 가상화 환경에서 NVMe SSD 입출력 특성 분석을 위한 통합 도구논문 정리/Vertical optimization 2018. 4. 17. 14:26
VirtIO-trace: 가상화 환경에서 NVMe SSD 입출력 특성 분석을 위한 통합 도구김세욱, 최종무 (단국대학교)정보과학회논문지 제 45권 제 4호 (2018.4)VirtIO-trace: IO 분석 통합 도구현재 상황현재 리눅스 커널에서 사용가능한 I/O 추적 도구는 blktrace 하나뿐이나 마찬가지VM의 도입으로 인해서 최소 3개의 레이어에서 I/O를 처리 (아래 그림 참조)현재 시스템의 문제점VM 상황에서의 정확한 I/O 추적을 위해서는 VM의 커널 I/O, QEMU의 I/O 처리부, 호스트의 커널 I/O에 대한 로그 추적 필요 blktrace만 사용할 경우VM 커널에서 blktrace를 수행호스트 커널에서 blktrace를 수행blktrace를 두 레이어에서 사용하므로 로그의 양 2배수동으..
-
[React Advanced] Typechecking With PropTypes프로그래밍/웹 2018. 4. 6. 21:48
Typechecking With PropTypes리액트 버전 v15.5부터 React.Proptypes가 prop-types 라이브러리로 이동 되었습니다.하위 버전에서는 codemod script를 사용해서 변환하세요.프로젝트의 크기가 커지면 커질 수록 타입 체크와 관련된 수많은 버그들이 쏟아져 나올 것이다. Flow나 TypeScript를 이용해서 타입 체크를 수행할 수도 있겠지만, 리액트에서는 빌트인 타입체크 툴을 제공한다. 컴포넌트 내에서 사용하는 props에 대해서 타입체크를 수행하기 위해서는 propTypes라는 특수한 속성을 사용하면 된다. ximport PropTypes from 'prop-types';class Greeting extends React.Component { render(..
-
[React Advanced] JSX In Depth프로그래밍/웹 2018. 4. 5. 22:17
React Advanced Guides 홈페이지 원문JSX In DepthJSX의 고급 용법에 대해서 알아보자.JSX는 컴포넌트와 해당 컴포넌트에 전달 될 props 및 하위 요소를 전달하기 쉽도록 도와주는 일종의 syntactic sugar의 역할을 하는게 기초적인 내용이다. x// JSX 예제 Click Me// javascript 로만 구성된 예제.React.createElement( MyButton, {color: 'blue', shadowSize: 2}, 'Click Me'); 위의 예제에서 볼 수 있는 JSX와 자바스크립트 코드는 의미가 동일하다. self-closing 태그도 동일하다. xxxxxxxxxx// self closing tag // JSX 예제// 같은 엘리먼트를 자바스크립..
-
[ReactJS] Thinking in React프로그래밍/웹 2018. 4. 5. 00:48
React Thinking in React 홈페이지 원문Thinking in React자바스크립트를 사용하여 크고 빠른 앱을 만드는데에는 리액트가 최고의 툴이라고 생각한다. 페이스북과 인스타그램을 만드는데 사용하면서, 리액트의 확장성에 대한 증명은 완벽하게 되었다.리액트를 사용하는데 있어서 가장 훌륭한 부분중 하나는, 제작하려는 앱에대해서 고심하게 만든다는 것이다. 본 문서에서는 리액트를 사용하여 검색 가능한 상품 데이터 표를 만들면서, 어떠한 사고 흐름을 통해 구성되는지 알아 본다.Start With A Mock이미 JSON API와 디자이너로부터 전달받은 모조품이 있다고 가정하자. 모조품은 아래의 이미지와 같이 구성되어있다. JSON API를 통해 얻어오는 데이터는 아래와 같다. [ {category..
-
[안드로이드] Thread and parallelism - 1앱개발/안드로이드 앱 개발 2018. 4. 3. 23:11
Thread-and-parallelism.md Udacity Android Basics: Networking - Threads & Parallelism 발췌Thread and parallelism - 1안드로이드에서도 당연히 쓰레드를 지원한다. 기본적으로 메인 쓰레드 하나에서만 동작을 하고 있지만 원하는 경우 언제든지 백그라운드 쓰레드를 추가하여 메인 쓰레드와 비동기적으로 다른 작업을 수행하도록 만들 수 있다. 보통 네트워크 작업이나 데이터베이스 저장 작업과 같이 UI와 관련 없는 일들을 백그라운드 쓰레드로 작업한다. 쓰레드에 관한 자세한 내용은 이 문서 를 참조하자. 네트워크 작업은 백그라운드에서 수행하자이 github 리포지토리의 starting-point 브랜치를 다운로드 한뒤 안드로이드 스튜디오를..
-
[ReactJS] Composition vs Inheritance프로그래밍/웹 2018. 4. 3. 22:33
React 홈페이지 원문Composition vs Inheritance리액트는 훌륭한 컴포지션 모델을 가지고 있고, 상속을 사용하기 보다는 컴포지션 형태를 사용하여 컴포넌트 재사용을 하길 권장한다.본 문서에서는 리액트를 처음 접하는 개발자들이 상속을 사용할 때 마주치는 몇가지 문제점에 대해서 다루고, 컴포지션을 통해 해당 문제들을 해결하는 방법을 알아본다. Containment사실 문제가 발생하기 전에 미리 방지하는 것이 최고다. 일부 컴포넌트에서 엘리먼트의 하위요소를 렌더링 할때, 직접적으로 하위 요소 내용을 알지는 못하는 경우들이 있다. 대게 Sidebar 와 Dialog와 같은 블록/박스형 컴포넌트들에서 많이 볼 수 있다. 태그와 같이 블록 태그의 내부에 다른 컴포넌트에서 전달되는 하위 엘리먼트를 ..
-
[RocksDB] IO프로그래밍/DBMS 2018. 4. 3. 17:19
홈페이지 원문RocksDB IORocksDB는 앞으로 발생할 I/O에 대해서 유저가 원하는 방식으로 동작하도록 할 수 있는 몇 가지 옵션들을 지원한다.Control Write I/ORange SyncRocksDB에 저장되는 데이터들은 데이터 파일에 붙여쓰여지는 형태 (appending way)로 생성된다. 이 상황에서 파일 시스템은 메모리상에 dirty 페이지가 충분히 많아지고 threshold를 넘어갈 때까지 버퍼링한 뒤, 한번에 모든 dirty 페이지를 저장장치에 기록하게 된다. 이런 방식은 순간적으로 너무 많은 write I/O를 발생시키고, 실제 실시간 데이터 처리에 필요한 온라인 I/O 들이 앞선 write를 오랫동안 기다리게 하여 유저 쿼리에 대한 latency가 길어지는 문제가 있다. 이 문..
-
[ReactJS] Lifting State Up프로그래밍/웹 2018. 4. 2. 12:35
React Lifting State Up: 홈페이지 원문Lifting State Up다수의 컴포넌트가 하나의 데이터 변경에 대해 다같이 변화할 필요가 있는 경우가 있다. 그런 경우 같이 공유하는 데이터을 state를 저장할 컴포넌트를 가장 최상단 컴포넌트로 지정한뒤, 하위 컴포넌트로 전달하는것이 바람직하다.예제를 위해서 간단하게 물의 끓는점을 판별하는 온도 계산기를 작성하고 테스트 해보도록 하자.일단은 BoilingVerdict 컴포넌트를 생성하고, celsius props에 온도를 전달 받은 뒤 끓는 점 판별 여부를 출력하도록 한다. 단순하게 끓는 점 판별만을 하므로 함수형 컴포넌트로 작성한다.이후 유저로부터 엘리먼트를 통해 온도를 입력 받고 state.temperature에 저장하는 Calculato..