분류 전체보기 194

Deadlock

Deadlock교착상태두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다. 조건상호배제(Mutual exclusion) 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권을 요구한다.점유대기(Hold and wait) 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다린다.비선점(No preemption) 프로세스가 어떤 자원의 사용을 끝낼 때까지 그 자원을 뺏을 수 없다.순환대기(Circular wait) 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있다.

Programing 2018.12.21

Hadoop

HadoopHigh-Availability Distributed Object-Oriented Platform대용량 자료를 처리할 수 있는 클러스터에 동작하는 분산 응용 프로그램구굴의 분산 시스템 (GFS)를 바탕으로 만들어진 오픈소스 ModuleHadoop CommonHadoop HDFSHadoop YarnHadoop MapReduce HDFS (Hadoop Distributed File System)분산 확장 파일 시스템여러 기계에 대용량 파일들을 나눠서 저장을 한다.다음과 같은 시스템에서 잘 동작하는 것을 목표하드웨어 오동작스트리밍 자료 접근큰 자료 집합간단한 결합 모델한번 쓰고 여러번 읽는 모델에 적합한 구조자료를 옮기는 것보다 계산 작업을 옮기는 것이 비용이 적게 된다.다른 종류의 하드웨어와 소프..

빅데이터 처리 2018.12.20

CDN - Content Delivery Network

CDN - Content Delivery Network콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템Web의 성능을 높이기 위해 CDN를 활용한다Image이 로딩이 길기 때문에 CDN를 활용하여 Image의 로딩속도 증대 시킨다.Content의 종류웹 관련HTMLCSSJava Script다운로드 가능한 요소Media File (Image, Movie etc)SoftwareDocument실시간 미디어주문형 스트리밍소셜 네트워크 등등.Web 성능 향상 방법Domain Sharding하나의 브라우저에서 하나의 도메인에서 동시에 가지고 올수있는 갯수는 한정적이기 때문에 Domain을 여러개로 설정하여 여러개를 동시에 읽을수 있도록 설정을 한다.압축 (Compres..

Web 2018.12.17

Change Data Capture

Change Data CaptureDatabase 삽입(insert) 업데이트(update), 삭제(delete)를 기록하는 기능주로 Data-warehouse에서 주로 사용되는 기능. 새로 생성된 데이터 및 변경된 데이트를 DW에 저장을 하기 위해 사용데이터 수집 방법데이터의 시간정보(마지막 업데이트 시간)을 활용한다.데이터의 버전 정보를 활용한다.낙관적인 잠금데이터의 status 정보를 활용한다.boolean 값으로 데이터가 변경되어있다는 것을 알리는 status를 포함시킨다.테이블의 Trigger 기능Event 프로그래밍데이터베이스의 Log를 스캔한다 (Mysql binlog 등)데이터베이스마다 log format이 달라 구현 방식이 달라지나 기존의 application이나 schema에 영향이 없..

Programing 2018.12.16

절자치향 프로그래밍과 객체지향 프로그래밍

절자치향 프로그래밍과 객체지향 프로그래밍절자치향 프로그래밍프로그램 순서와 흐름을 먼저 세우고, 필요한 자료구조와 함수를 설계하는 방식객체지향 프로그래밍자료 구조를 중심으로 한 모듈을 먼저 개발을 한뒤 이들의 실행 순서를 흐름 짜는 방식.객체지향 3대 특성캡슐화내부의 데이터 (attribute)를 감추고, 메서드를 통해 상호작용상속이미 작성된 클래스를 이어 받아 클래스를 생성하는 기법기존 코드를 재활용하여 사용한다.다형성하나의 이름(방법)으로 여러가지 상황에 대처하는 기법인터페이스는 동일하지만 실제 작동이 다르게 구현하는 방법. 그외 궁금점객체지향도 실행순서가 있는데 절차지향과의 차이는 점은?절자지향은 순서에 집중이 되어있다보니 문제의 표현 대상(해결하는 대상)이 정확하게 표현이 되어 있지 않다.객체지향은..

Programing 2018.12.13

Elastic Search

Elastic SearchRESTful 분산형 검색 및 분석Features분산형, 고가용성 검색 엔진모든 인덱스는 설정된 갯수만큼 Shard이 된다.각각의 Shard은 하나 이상의 replica를 가지고 있는다.Read / Search는 어느 Replica Shard에서나 작동이 된다.멀티 테넌트 (Multi Tenant)1개의 이상의 인덱스의 쿼리Index Level 설정 가능 (shard의 갯수, index 저장소)HTTP RESTFul APINative Java APIDocument 기반의 문서준 실시간 검색 (Near Real Time Search)비동기 Write

Akka Coordinated Shutdown

Akka Coordinated ShutdownAkka의 Actor System 종료 과정에서 특정 Actor 또는 서비스에 대해 작동을 요청을 할수가 있다.밀린 메시지 처리 및 Connect 정리 등에 활용 될수 있는 기능이다. Configuration# CoordinatedShutdown is enabled by default and will run the tasks that# are added to these phases by individual Akka modules and user logic.## The phases are ordered as a DAG by defining the dependencies between the phases# to make sure shutdown tasks are ..

Programing/Akka 2018.12.11

Gradle, Maven

Gradle, MavenMavenApache Maven쉬운 빌드일정한(Uniform)한 빌드 시스템2004년에 출시Gradle범용 빌드 도구멀티 프로젝트에 사용하기 좋음Groovy 빌드 스크립트Apache Ivy를 기반으로한 강력한 의존성 관리빌드를 구축하는 풍부한 도메인 모델원격 저장소나 pom, ivy 파일 없이 의존성 관리 지원Maven과 GradleGradle이 좋은점Gradle의 빌드 스크립트(Groovy based) 정의가 Maven의 xml에 비해 정의하기가 쉽다.Gradle의 Groovy를 사용하기 때문에 동적인 빌드는 Groovy Script를 구현하거나 호출하면 된다.Gradle Maven보다 100배이상 빠르다.Gradle DaemonBuild CacheSmart Classpath A..

Programing/Java 2018.12.10