본문 바로가기

Happyer16

(314)
Web Worker(웹 워커) - 멀티 스레드 쓰고 싶어! 1. 공부하게 된 계기 클라이언트 앱을 개발하는 도중, 서버 쪽에 동작이 오래 걸리는 서비스를 호출하고 싶다. 만약 같은 스레드에서 요청한다면 브라우저는 멈추게 되고 사용자는 기다려야 한다. ( 예를 들어, 서버 데이터를 가져오는 네트워크 작업과 같은 경우 ) '이럴 때 백그라운드 스레드 생성을 어떻게 할 수 있을까?' 라는 고민을 하다 웹어커를 알게 되었다.
웹 개발자들이 해보는 이더리움 프로그래밍 1. Testnet 설정(실제 이더리움으로 공부할 순 없자나....) 실제 Ethereum blockchain은 초당 수십억 개의 해시와 트랜잭션을 안전하게 보호해주는 miner가 지켜준다. 하지만, 'testnet' 블록체인도 있다. 우리는 Rinkeby(https://www.rinkeby.io/) 테스트넷을 사용할 것이다. 이를 위해서 몇가지 준비를 해야 한다. 1) 마이이더월렛에서 주소와 프라이빗키 ( 진짜 사용하는 돈이 아닙니다!!! ) - 마이이더월렛에 접속 ( https://myetherwallet.com ) - 비밀번호 입력 - Download Keystore File - address와 private key 획득! 2) fake money 받으러 갑시다. - https://faucet.ri..
Web project 성능 최적화하기 웹 어플리케이션 성능 최적화 모바일 웹 어플리케이션 구동 시 서버에서 단말 단까지 구성되는 지연 요소는 크게 단말에서의 HTML,CSS,JS 처리와 서버에서의 처리 지연 그리고 네트워크 전송 부분으로 구성된다. 1. 자바스크립트자바스크립트 적재 시간 최적화첫 화면 구성 시 즉시 필요한 자바스크립트와 필요하지 않은 자바스크립트를 분리하여 lazy loading자바스크립트 minify자바스크립트 수행 코드 수행 시간 짧게 유지자바스크립트 수행 동안 main UI thread는 중지됨 http://readme.skplanet.com/?p=4437
NIO 제대로 파해쳐보자 Java NIO Overview Java NIO ( New I/O )는 Java 1.4부터 사용하던 IO API의 대안책(Java IO, Java networking API)이다. Java NIO는 기존의 IO와 다른 방식으로 동작을 제안한다. 1) Java NIO : Non-blocking IO 예를 들면, Thread가 channel 에게 data를 읽어 buffer로 넣도록 요청할 수 있다. channel이 데이터를 읽어 buffer에 넣는 동안, 스레드는 다른 일을 할 수 있다. data를 읽어 buffer에 다 넣으면, 스레드는 이제 작업을 진행하면 된다. channel에 쓰는 것도 똑같은 방식으로 진행된다. 2) Java NIO : Selectors Java NIO는 Selector라는 개념을..
JAVA File I/O에 관하여 자바 파일 복사 방법Stream FileInputStream inputStream = new FileInputStream(file);FileOutputStream outputStream = new FileOutputStream(saveFullPath); int bytesRead = 0;byte[] buffer = new byte[1024]; while ((bytesRead = inputStream.read(buffer, 0, 1024)) != -1) { outputStream.write(buffer, 0, bytesRead);} outputStream.close();inputStream.close(); 문제점 : 파일크기( 정확히는 스트림의 길이 ) 만큼 while문을 돌면서 끊임없이 읽고쓰기를 반복 중..
Redux 시작하기 기초 - (마지막) React와 함께 사용하기 React와 함께 사용하기 Redux와 React는 관계가 없다. 그렇다면 왜 같이 사용하는 걸까? Redux는 앞에서 배운 것과 같이 액션을 통해 상태를 변경한다. 이 때문에 UI를 상태에 대한 함수로 기술하는 React와 잘 어울리기 때문이다. 할 일 앱을 React로 만들어보자! React Redux 설치하기 React 바인딩은 Redux에 기본적으로 포함되어 있지 않다. 명시적으로 설치를 해줘야 한다. npm install --save react-redux Smart Component(영민한)와 Dumb Component(우직한) 영민한 컴포넌트우직한 컴포넌트위치최상위, 라우트 핸들러중간과 말단 컴포넌트Redux와 연관됨예아니오데이터를 읽기 위해Redux 상태를 구독props에서 데이터를 읽음데이..
Redux 기초 - (2) 스토어(Store), 데이터 흐름 스토어 Redux 기초 - (1) 에서 '무엇이 일어날지'에 관한 액션과 '상태를 수정하는' 리듀서를 정의하였다. 이번에는 UI도 없이 Redux 기초 - (1) 에서 만들었던 로직들을 테스트해 볼 것이다. 이를 가능하게 하는 것이 스토어(Store)다. dispatch(action)를 통해 상태를 수정할 수 있음getState()를 통해 상태에 접근할 수 있음애플리케이션의 상태를 저장함subscribe(listener)를 통해 리스너를 등록함즉, 스토어는 액션과 리듀서를 가져오는 객체다. Redux 애플리케이션은 단 하나의 스토어만을 가질 수 있다. 만약 데이터를 다루는 로직을 쪼개고 싶다면, 전 장에서 배운 리듀서 조합을 사용하면 된다. 우린 이전 장에서 combineReducers()를 통해 여러 ..
Redux 기초 - (1)액션, 리듀서 액션 데이터를 변경하려면 어떤 행동을 해야하는지에 대한 정의가 필요하다. 새 할 일의 추가를 나타내는 액션의 예시이다. 액션은 평범한 자바스크립트 객체다. const ADD_TODO = 'ADD_TODO'{ type: ADD_TODO, text: 'Build my first Redux app' }type - 어떤 형태의 액션이 실행될지 나타내는 속성. 앱이 충분히 커지게 되면 타입들을 별도의 파일로 분리type 외에 액션 객체의 구조는 마음대로 짜면 된다. ( 물론 권장사항이 있다. - https://github.com/acdlite/flux-standard-action )import { ADD_TODO, REMOVE_TODO } from '../actionTypes' 액션 생산자 액션을 만드는 함수다...
equinox란 해당 글은 eclipsecon 2009에 발표한 Getting started with Equinox & OSGi By Jeff McAffer 글을 참고하였습니다. Equinox란?Equinox란 OSGi 스펙을 구현한 module화 되고, dynamic한 자바 런타임 환경이다. 이것은 작고 성능에 맞출 수 있고 커스텀화 할 수 있다. Equinox는 공항 check-in kiosk부터 Websphere나 Spring dm server와 같은 높은 성능의 어플리케이션 서버까지 이클립스 생태계를 형성시키고 있다. 이 글은 Equinox가 어떻게 동작하고, 어떻게 사용할 수 있는지에 대해 알려준다. 우리는 모듈화의 기본, 표기법, 모듈 만들어보기에 대해 알아본다. 최종적으로, 우리는 Equinox의 런타임요소..
['17.11.14 이더일기] 재미로 보는 ETH 지지선과 저항선 지지선 : 주가가 하락중이면 어느 시점에 강력한 매수세가 들어와 주가가 더 이상 하락하지 않도록 받쳐주는 선저항선 : 주가가 상승중이면 어느 시점에 강력한 매도세가 들어와 주가가 더 이상 상승하지 않도록 막는 선 [ 30분 단위로 본 이더리움 차트 ( '17.11.14 ) ]13일 오후(우지한 자금 세탁)와 14일 저녁(?)에 새로운 저항선(38.5만)을 못 뚫고 떯어지는 걸 확인 할 수 있다.15일 새벽에 36정도까지 떨어지고 지지를 한다면 새벽에 38만에 매도를 걸고 잔다. [ 하루 단위로 본 이더리움 차트 ( '17.03 ~ 현재 ) ]저항선이 39,42,48에 있는 것을 확인할 수 있다. 그 때 물린 사람들은 이때가 돌아오면 원금회복을 위해 매도를 하게 될 것이다. 매도 물량이 나오기 전에 38...