전체 글 87

GitHub Copilot 사용방법 및 후기

1. 사용 방법 intellij 에서 plugin 설치를 통해서 사용 가능하다 https://docs.github.com/en/copilot/getting-started-with-github-copilot/getting-started-with-github-copilot-in-a-jetbrains-ide GitHub 계정당 1회 60일간 무료체험 후 월 10$/연 100$ 정액제 다만 학생이거나, 계정이 어느정도 규모가 있는 오픈소스 리포지토리의 관리자로 계정 소유자가 신청하고 사실로 확인될 경우, 12달의 무료체험 기간을 계속해서 갱신하는 형태로 지속적으로 무료로 이용 가능하다고 안내가 되어있다. 설치후에 tab키를 누르면 추천 Option + [ or ] 키를 누르면 다음 추천을 해준다 주석을 사용하면..

카테고리 없음 2023.03.28

TypeScript 자료형

1. Primitive type : string, number, boolean 숫자는 모두 number으로 사용 정수, 소수 간 연산 시에도 같은 자료형이기 때문에 형변환 필요 없음 primitive type도 객체로 취급하나 number는 string으로 자동 형변환 되지 않음 boolean은 스트링과 결합시 자동형 변환됨 number + string 불가 number + boolean 불가 string + boolean 가능 const t = { a1 : "1", a2 : 1, a3 : 0.1, a4 : true } console.log(t.a2+t.a3) // 1.1 console.log(t.a1+t.a2.toString()) // "11" console.log(t.a1+t.a3.toString()..

Kubernetes Scheduling

쿠버네티스는 모든 파드는 노드네임이 존재하나 노드네임을 직접 명시 하지 않으면 랭킹 알고리즘을 통해 적절한 노드에 파드를 생성한다. 스케줄러는 생성할 적절한 노드를 선택하고 파드들의 상태를 확인한다. - kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE coredns-78fcd69978-5x8np 1/1 Running 0 14d coredns-78fcd69978-fsffz 1/1 Running 0 14d etcd-docker-desktop 1/1 Running 0 14d kube-apiserver-docker-desktop 1/1 Running 0 14d kube-controller-manager-docker-desktop 1/1 Runnin..

Tools/K8S 2023.03.20

Kubernetes namespace

pod, deployment, service를 내부적인 목적에 따라서 세트로 묶어서 구분함 쿠버네티스는 시작할때 3가지 네임스페이를 만듦 default: 초기 기본 네임스페이스 kube-system: network나 dns를 위해 사용자들에서 분리해 낸 네임스페이스를 만듦, 실수로 삭제, 수정할 수 없도록 만듦 kube-public: 모든 유저가 사용하는 리소스들을 관리하는 네임스페이스 각 네임스페이스별로 사용할 수 있는 리소스의 양을 정해두고 사용할 수 있음 네임스페이스 안에서는 name으로 각 파드들을 호출할 수 있음 다른 네임스페이스에 존재하는 파드들은 '서비스네임.네임스페이이스.(서비스,파드등 구분).도메인'으로 구분함 ex)db-service.dev.svc.cluster.local kubectl..

Tools/K8S 2023.03.19

Kubernetes Services

- 서비스 애플리케이션의 다양한 구성요소에서의 통신을 위해 사용함 내부의 모든 파드들 간의 연결뿐만 아니라 클러스터 외부와의 연결도 담당함 1. NodePort 쿠버네티스 노드의 ip (192.168.1.2)이고 노드 내부의 파드의 ip는 10.244.0.2인상태에서 외부(192.169.1.10)가 파드에 접속하는 방법 파드의 80 포트(targetPort)를 서비스(10.106.1.12)의 80(port)으로 연결하고 해당 서비스를 노드의 특정포트(nodePort, 30000~32767)에 연결하여 사용함 apiVersion : v1 kind : Servcie metatdata : name: myapp-service spec: type: NodePort ports: - targetPort:80 port..

Tools/K8S 2023.03.19

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