분류 전체보기 194

Nexus Repository

Nexus Repositorymaven, gradle에서 사용하는 내부 repository팀, 회사 내부에서 공유되는 라이브러리를 사용할때, maven에는 존재하지 않는 라이브러리를 사용할때 내부에서 구현한후 사용된다http://www.sonatype.org/nexus/ https://help.sonatype.com/repomanager3 Repository TypeHostedProxy Version PolicyReleaseSnapshot Gradle에서 nexus repository 설정하기repositories { maven { url "http://localhost:8080/nexus/content/groups/public/" }}

Programing 2018.12.09

Blocking, NonBlocking, Synchronous, Asynchronous

Blocking, NonBlocking, Synchronous, AsynchronousBlocking, NonBlockingBlocking, Non-blocking의 관심사는 호출하는 함수가 바로 리턴을 하느냐 마느냐가 관심이다Blocking인 경우에는 함수가 호출하고 그 사이에 다른 작업을 할수가 없다.Non-Blocking인경우에는 함수가 호출을 하고 그사이에 다른 작업을 할수가 있다. Synchronous, AsynchronousSynchronous, Asynchronus의 관심사는 호출하는 함수의 작업 완료를 누가 받는 가에 대한 관심이다.Sync인 경우에는 결과값을 함수를 호출한 대상자가 결과를 가지고 간다Async인경우에는 결과값을 등록된 callback을 통해 처리를 한다. Synchrono..

Programing 2018.12.07

Thread와 Process

Thread와 ProcessProcess프로그램의 실행 단위2개 Process는 서로 다른 메모리 영역이다.Multi Process?여러개의 프로그램이 실행을 한다는 의미이다ex) IntellJ를 키고 Terminal를 실행한다. Thread프로그램의 제어 실행만 분리된 실행 단위 (실행하는 흐름 단위)2개 Thread는 같은 메모리 영역을 공유를 한다.Multi Thread?하나의 프로그램 안에서의 여러개의 Thread를 통해 실행된다ex) Queue로 데이터를 받아 처리 작업과 Http 호출의 처리를 동시에 한다.

Programing 2018.11.29

Java CocurrentHashMap

Java CocurrentHashMap동시성 (Concurrency) 을 보장해주는 MapKey/Value값으로 null이 허용되지 않는다.get method는 blocking이 일어나지 않는다. hashCode()의 값을 동일한 값으로 나오는 Key값은 Map의 성능을 하락 시킨다 (이는 다른 HashMap 동일함) 생성자initialCapacity - 처음 초기 수용량 (Capacitiy)loadFactor - table의 densityconcurrencyLevel - 동시에 몇개의 Thread가 Update를 허용할 수치 Metric으로 사용되는 Counter를 저장하는 예counterMap.computeIfAbsent(key, key -> new Counter()).increment()comput..

Programing/Java 2018.11.27

Kafka 특징

Kafka 특징대용량 실시간 로그 처리의 특화되어 설계가 되어 있다.범용 메시지 시스템에서 제공하는 다양한 기능은 제공되지 않는다.분산 및 복제 구성을 손쉽게 할수 있다.메세지 헤더를 지닌 TCP 기반의 프로토콜을 사용하여 프로토콜에 의한 오버헤드 제거하였다.개별적으로 메시지를 전송하는 것이 아닌 batch 형태로 broker에 한 번에 전달할수 있다.메모리 저장하는 기존 메시징 시스템과는 달리 파일 시스템에 저장을 한다.데이터의 영속성이 보장된다.메세지를 일정 기간(retention) 동안 저장을 하고 잇는다.메시지수가 많을수록 시스템 성능에 크게 영향을 받지 않는다.consumer는 push 방식이 아닌 pull 방식으로 데이터를 가지고 간다.consumer의 자신의 처리 능력만큼만 메시지가를 가지고..

Akka Stream Materialized values

Akka Stream Materialized values각각의 operator들은 Source와 Sink와 Flow는 실체화된후 (Materialized) 실체화된 값(Materialized values)을 가지고 있는다.데이터로써 의미가 있는 값일수도 있고 Control를 할수 있는 객체가 실체화되기도 한다.Materialized 값에 대한 유지 OperatorKeep.both()전 Stage의 Value와 현재 Operator의 Value를 둘다 유지한다.Keep.left()전 Stage의 Value를 유지한다. 기본값Keep.right()현재 Operator의 Value를 유지한다. Example// Source는 Integer 데이터가 나오고, 외부에서 컨트롤 할수 있는 CompleteableFu..

Programing/Akka 2018.11.24

URI

URIUniform Resource Identifier scheme:[//authority][/path][?query][#fragment]Sampleftp://ftp.is.co.za/rfc/rfc1808.txthttps://tools.ietf.org/html/rfc3986mailto:john@doe.com tel:+1-816-555-1212urn:oasis:names:docbook:dtd:xml:4.1urn:isbn:1234567890 UriComponentBuilder를 이용하여 URI를 생성하기Spring Framework에서 UriComponenBulder를 이용해서 UriComponents를 생성을 할수 있다.이를 통해 URI를 좀더 쉽게 생성을 할수 있다. UriComponents uriComp..

Programing/Java 2018.11.22

Cache

Cache데이터나 값을 미리 복사해 놓는 임시 장소캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우 종류CPU 캐시메인 메모리의 접근을 빨리하기 위한 CPU 내부에 있는 캐시 메모리디스크 캐시디스크 입출력시 사용되는 캐시 메모리기타 캐시신뢰성이 적은 네트워크(이더넷 등)에서, 네트워크 사이에 주고 받는 데이터를 캐시웹 브라우저는 최근 방문한 사이트를 캐시에 저장 지역성시간적 지역성특정 데이터가 한번 접근되었을 경우, 가까운 미래에 또 한번 데이터에 접근할 가능성이 높은 것을 시간적 지역성이라고 한다.공간적 지역성특정 데이터와 가까운 주소가 순서대로 접근되었을 경우를 공간적 지역성이라고 한다.

Programing 2018.11.20