분류 전체보기 92

Kubernetes Core concept

1. etcd (자세한 설명 : https://tech.kakao.com/2021/12/20/kubernetes-etcd/) 쿠버네티스는 Key-Value형태로 데이터 저장 고가용성 Key-Value 자료구조 ETCD control client로 cli를 통해 서버에 대한 정보를 키-밸류 값으로 가져올 수 있음 쿠버네티스가 ETCD를 활용하여 클러스터에 관한 정보를 저장함 (노트,포드,시크릿) 클러스터에서 어떤 정보를 수정 변경할 때마다 etcd에 저장됨 kube -system 조회를 통해 etcd-master를 확인할 수 있음 마스터 노드에서 확인 가능 다중 마스터 클러스터에서는 각 etcd 서버가 서로를 연결하도록 구성 2. kube-api-server kubectl 명령어로 입력하면 kube-api..

Tools/K8S 2023.03.18

Angular my-app 예제로 살펴보는 기본 구조

1 . Angular.json - 기본 프로젝트 프로퍼티 (아이콘 ,이름) 설정 2 package.json - 실행 환경 설정(실행 옵션) 3-1. main.ts import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; platformBrowserDynamic().bootstrapModule(AppModule) .catch(err => console.error(err)); 시작 지점 , AppModule(app.module.ts에 존재) 실행 3-2. index.html 시작 화, body에서 라는 컴포넌트를 호출함 4-1. app.module...

Tools/ANGULAR 2023.02.26

Kotlin Null 처리 방식 정리

1. 기본적인 Null 변수 fun main() { val a:Int; // a = null; -> null 할당 불가 val b:Int?; b = null; } 코틀린에서는 변수 할당 시에 일반적인 변수 선언으로는 null을 할당할 수 없다. "Type?" 형태로 뒤에 '?'를 추가해야지만 null을 할당 받을 수 있는 변수가 된다. null이 가능한 타입은 기존의 코틀린 기본 타입과 다른 타입으로 구분된다. 2. 함수에서의 null fun main() { val a = null; //add(a);

TCP/IP 송수신 과정

1. Server 송신 과정 ex) 메모리는 64KB , 실제 데이터는 1.4 mb 일 때 64KB씩 잘라서 프로세스가 진행 1. 64KB씩 분해해서 소켓에 작성하는데 프로세스 메모리에 적재된 데이터를 TCP 메모리 (버퍼)에 적재함 서버에서는 소켓을 가지게 됨 - 소켓은 파일 - 서버는 프로세스 프로세스가 파일(소켓) 에다가 RW (읽고 쓰기) - 읽기 : recieve - 쓰다 : send 서버 프로세스가 소켓에 I.O를 한다. HDD/SDD 등 2차 메모리 안에 파일이 들어있음 파일 시스템(ex:a.jpeg) 으로 관리됨 파일 시스템은 드라이버를 통해 메모리에 접근 프로세스별로 메모리를 할당 받는데 해당 사이즈는 개발자가 결정 2. 해당 버퍼를 IP Layer에서 세그먼트 단위로 분해함 3. 세그먼..

C.S/O.S 2022.11.20

JAVA Concurrent 프로그래밍 (Completable Future)

1. 기본적인 쓰레드 예시 System.out.println(Thread.currentThread().getName()); Thread a = new Thread(()-> { System.out.println(Thread.currentThread().getName()); try { Thread.sleep(1000l); } catch (InterruptedException e) { return; } }); a.start(); // my code // a.join() or a.interrupt() // my code start : 시작 join : 해당 쓰레드가 끝날때 까지 기다림 interrupt: 해당 쓰레드를 interrupt 하여 catch 블락에 접근하도록 유도 => 쓰레드 관련하여 모든 코드 작성..

Oracle NL조인

NL 조인은 기본적으로 이중 중첩 루프문 SELECT /*+ no_nlj_batching(B) */ * FROM EMP A,CLIENT B WHERE A.EMPNO = B.CLNO AND A.HIREDATE > '20200101'; (1) SELECT * FROM A WHERE A.date>'20110101'의 조회를 수행하면서 해당 엔티티가 존재하면 A.id를 가짐 (2) SELECT * FROM B WHERE B.id = N( (1)에서 조회한 A.id ) 위와 같은 방식으로 조회를 수행하게 된다. 때문에 2번 수행의 경우 인덱스 스캔을 하지 않는다면 A테이블에서 조건을 만족하는 엔티티 만큼 B를 테이블 스캔하게 되므로 반드시 내부테이블은 인덱스 스캔을 수행해야 한다. A 테이블을 outer tabl..

C.S/DB 2022.10.10

암호화와 SSL 인증 방식

암호화 : 중간에서 누군가가 읽을 수 없게 변경 복호화 : 암호화 이전의 데이터로 변환 키 : 암호화,복화화를 위한 키 1. OpenSSL 대칭키 생성 예시 대칭키 : 암호화를 하는 쪽과 복호화를 하는 쪽이 동일한 키를 가지고 있어야함 openssl enc -e -des3 -salt -in hello.txt -out nohello.txt => key 입력 openssl enc -d -des3 -in nohello.txt -out hello2.txt => key 입력 2. openssl 비대칭 키 예시 비대칭키 : 키가 2개 , 키를 배달하는 사고가 일어나지 않음 공개키 , 비밀키 A로 암호화 시 B로 복호화 가능 B로 암호화시 A로 복호화 가능 공개키로 암호화한 내용은 개인키로만, 개인키로 암호화한 내용..

C.S/WEB 2022.07.16

R ggplot을 interaction plot 으로 변경하는 방법(ggiraph, htmltools 활용)

R ggplot을 ggiraph을 사용하여 html과 java script를 활용한 interaction plot. html 리소스 만들기 - 웹에서 java script 통해 상호작용이 가능한 plot으로 변경 1. 데이터 준비 ggplot에서 기존에 사용하던 데이터 컬럼 구성(위의 데이터는 시계열 데이터) 추후에 각 선과 점에 마우스를 올렸을때 동작하는 tooltip과 interaction을 위해서 tooltip용 컬럼을 추가해준다. 2. 기본 ggplot grid 생성 library(ggplot2) library(ggthemes) library(ggiraph) gg

Oracle 파티션 테이블과 파티션 인덱스 (INSERT 튜닝)

Oracle Partition UPDATE 튜닝 정리 대용량 데이터를 입력할 때 성능 문제가 발생할 수 있어서 인덱스를 DROP 하고 데이터를 입력 후에 데이터가 모두 입력시킨 다음 인덱스를 재생성해주는 방법을 고려할 수 있다. 그러나 전체 데이터에 대한 인덱스를 재생성하는 비용도 적지 않기 때문에 쉽게 선택 할 수 없다. 만약 테이블이 파티셔닝 되어있고 이에 대해서 로컬 파티션 인덱스가 생성되어 있다면 파티션 단위로 인덱스를 재생성할 수 있기 때문에 데이터 입력을 빠르게 수행할 수 있다. 1. 작업 대상 테이블 파티션을 nologging 모드로 전환한다. ALTER TABLE INFO_TABLE MODIFY PARTITION P_202201 nologging; 2. 작업 대상 테이블 파티션과 매칭되는 ..

C.S/DB 2022.07.06