all 125

# k8s Pod Security Policy 적용 - 퍼블릭 클라우드 환경을 사용하지 않을 때

Pod Security Policy (이하 PSP) 란? k8s에는 SecurityContext라는 기능이 존재한다. SecurityContext는 Container의 보안 기능을 정의하는 것인데, 개인적으로 PSP는 이 SecurityContext의 확장판이라고 생각한다. PSP(포드 보안 정책)은 포드 사양의 보안 관련 측면을 제어하는 ​​클러스터 수준 리소스이다. PSP 객체는 관련 필드에 대한 기본값 뿐만 아니라 시스템에 적용하기 위해 포드가 실행해야 하는 조건 세트를 정의한다. 관리자는 다음을 제어 할 수 있다. 제어 목록 필드명 Container의 실행 권한 privileged 호스트 네임 스페이스의 사용 hostPID, hostIPC 호스트 네트워킹 및 포트의 사용 hostNetwork, h..

Cloud/Kubernates 2020.02.04

# Java Concurrency In Practice - Chapter 1

Introduction 1.1 간략한 동시성의 역사 (A (Very) Brief History of Concurrency) 리소스 활용 (Resource utilizatio) 프로그램은 입력 또는 출력과 같은 외부 작업을 기다려야하며 대기하는 동안 유용한 작업을 수행 할 수 없다. 이 대기 시간을 사용하여 다른 프로그램을 실행하는 것이 더 효율적일 것이다. 공평 (Fairness) 여러 사용자 및 프로그램이 시스템 리소스에 대해 동일한 소유권을 주장 할 수 있다. 한 프로그램을 실행 한 다음 그 프로그램이 완전히 종료된 후, 다른 프로그램을 시작하는 것보다 세밀한 시간 슬라이싱을 통해 컴퓨터 자원을 공유하는 것이 좋다. 편의 (Convenience) 단일 프로그램이 모든 작업을 수행하도록 작성하는 것보다..

JAVA/Concurrency 2020.02.03

# Java Concurrency and Multithreading Tutorial - Concurrency vs Parallelism

Concurrency(동시성) 및 Parallelism(병렬 처리)라는 용어는 종종 다중 스레드 프로그램과 관련하여 사용된다. 그러나 Concurrency과 Parallelism은 정확히 무엇을 의미하며, 이 두 용어는 어떻게 다른가? Concurrency Concurrency는 응용 프로그램이 둘 이상의 작업을 동시에 진행하고 있음을 의미한다. 컴퓨터에 CPU가 하나만 있으면 응용 프로그램이 동시에 두 개 이상의 작업을 진행하지 못할 수 있지만, 응용 프로그램 내부에서 한 번에 두 개 이상의 작업이 처리되고 있다. 대신 CPU는 작업이 완료 될 때까지 다른 작업간에 전환한다. 내부에서 단일 스레드만 실행하더라도 동시 응용 프로그램을 가질 수 있다. CPU가 작업이 완료될 때까지 작업간 전환을 반복하며 ..

JAVA/Concurrency 2020.01.31

# VMware 고정 IP 할당 및 외부 네트워크 접속

1. VM 서버 고정 IP 할당 1. VMware 네트워크 정보 확인 (1) Subnet IP, Subnet mask, Gateway IP 확인 (2) Use local DHCP service to distribute IP address to VMs 체크 해제 2. VM 서버 네트워크 설정 (1) Bridged가 아닌 NAT으로 설정 3. VM 서버 인터페이스 설정 (1) VM 서버 네트워크 인터페이스명 확인 (ens33) => CentOS7 부터는 eth~ 에서 en~으로 변경됨 $ ifconfig (2) 네트워크 인터페이스 파일 수정 $ vi /etc/sysconfig/network-scripts/ifcfg-ens33 # IP ADDRESS 부분의 IPADDR에 고정 IP로 할당할 IP를 기입한다. ..

OS/Linux 2020.01.31

# Java Concurrency and Multithreading Tutorial - Multithreading Benefits

Multithreading Benefits 멀티 스레딩의 가장 중요한 이점은 아래와 같다. Better CPU utilization Simple program design in some situations More responsive programs More fair division of CPU resources between different tasks Better CPU Utilization 로컬 파일 시스템에서 파일을 읽고 처리하는 응용 프로그램을 상상해봐라. 디스크에서 파일을 읽는데 5초가 걸리고 처리하는데 2초가 걸린다고 할 때, 두 개의 파일을 읽으면 총 14초가 소요된다. 디스크에서 파일을 읽을 때 대부분의 CPU 시간은 디스크가 데이터를 읽을 때까지 대기한다. 그 시간 동안 CPU는 거의 ..

JAVA/Concurrency 2019.12.31

# Java Concurrency and Multithreading Tutorial

Java Concurrency는 Java 플랫폼에서의 멀티스레딩, 동시성 및 병렬 처리를 다루는 용어이다. Java Concurrency Tutorial에서는 멀티스레딩, 동시성 구성, 동시성 문제점, 비용 등 Java 멀티스레딩 관련 이점의 핵심 개념을 다룰 것이다. What is Multithreading? 멀티스레딩은 동일한 응용 프로그램 내에 여러 실행 스레드가 있음을 의미한다. 스레드는 응용 프로그램을 실행하는 별도의 CPU와 같다. 따라서 다중 스레드 응용 프로그램은 여러 CPU가 동시에 코드의 다른 부분을 실행하는 응용 프로그램과 같다. 단, 스레드는 CPU와 같지는 않다. 일반적으로 단일 CPU는 여러 스레드간에 실행 시간을 공유하여 지정된 시간동안 각 스레드 간에 전환이 일어나며, 응용 ..

JAVA/Concurrency 2019.12.30

# Coral Dev Board는?

Coral Dev Board란? 올 초(2019)에 구글에서 내놓은 Edge TPU가 장착된 Single-board Computer (SBC) 싱글보드 pc이다. Raspberry Pi(라즈베리파이,이하 라파) 역시 SBC인데, 라파와 달리 Coral Dev Board가 가지는 가장 큰 이점은 Edge TPU가 장착되었다는 것이다. Edge TPU란? Edge TPU는 에지에서 AI를 실행하도록 설계된 Google의 맞춤형 ASIC로써 연결된 기기의 수가 급증하고 개인정보 보호/비밀유지, 낮은 지연 시간, 대역폭 제약이 요구됨에 따라 클라우드에서 학습된 AI 모델을 에지에서 실행해야 할 필요성이 갈수록 높아지고 이를 가능하게 하기 위해서 만들어 진것이다. Edge TPU는 물리적 공간과 전원을 적게 소비..

# Notepad++ Window10에서 drag & drop 기능 오류 날 때

window10에서 notepad++을 사용하는데, 어느 순간 drog&drop 기능이 안되는 것을 알게 되었다. 구글링을 해보니 해결법은 간단했다. [해결방안] 1. 윈도우 탐색기에서 시작 프로그램 위치로 이동 C:\ProgramData\Microsoft\Windows\Start Menu\Programs 2. Notepad++ 응용 프로그램을 우클릭하여 속성 열기 3. 속성에서 시작 위치 값 편집 기존 시작 위치에는 값(C:\Program Files\Notepad++) 이 들어 있을 것이다. => 이 값을 다 지우고 빈 값으로 두고 확인! 4. drag & drop 해보기 -끝- 단어장에 추가 다음에 대한 단어 목록이 없습니다영어 -> 한국어... 새로운 단어 목록 생성... 복사 단어장에 추가 다음에..

OpenSource 2019.12.10

# Kafka - 3 # Spring Boot - Kafka - Elasticsearch 예제 실습

지난 글 (# Kafka - 2 # Kafka Multi Cluster 구성)에 이어서 구성된 Kafka 서버에 데이터를 넣고 확인하는 간단한 예제를 만들어서 테스트를 진행 해보겠다. 예제의 Test용 Application은 SpringBoot로 데이터를 만들 것이고 전체 구성은 아래와 같다. [ 실습전 준비 사항] 1. kafka 서버 기동 2. elasticsearch 서버 기동 3. Spring 기본 동작 원리 Step 1. gradle 프로젝트 생성 Step 2. gradle dependencies 추가 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-elasticsearch' compile group..

# Kafka - 2 # Kafka Multi Cluster 구성

지난 포스팅에 이어 이번엔 Kafka를 Multi Cluster로 구성해보겠다. 구성은 아래와 같이 할 것이다. Step 1. Kafka Download # 버전 확인 필수 $ wget http://mirror.navercorp.com/apache/kafka/2.3.0/kafka_2.12-2.3.0.tgz # 설치하고 싶은 경로에서 압축 풀기 $ tar -xzf kafka_2.12-2.3.0.tgz $ cd kafka_2.12-2.3.0 Step 2. Zookeeper 설정 ( All Node ) => vi zookeeper.properties initLimit=10 syncLimit=5 server.1= :2888:3888 server.2= :2888:3888 server.3= :2888:3888 St..