2023/01 13

[go] go mod vendor 사용법

개요 go mod vendor의 사용법을 알아보겠습니다. go mod vendor 필요 성 go에서는 1.13부터 module이라는 기능을 이용하여 package의 의존성을 자동으로 관리를 해줍니다. 그러나 여기서 하나의 문제점이 발생을 합니다. 그것은 go module을 사용하기 위해서는 항상 internet에 연결이 되어있어야 한다는 것입니다. 하지만 일반적으로 제품 개발 시는 보안을 위해서 폐쇠망에서 build를 합니다. 그러면 go module을 통해서 package를 다운로드할 수가 없습니다. 그래서 필요한 기능이 다운로드한 package에서 compile시 필요한 파일만 보관하는 기능인 go module의 vendor 기능입니다. 우선 간단한 테스트를 위해서 logrus를 사용하는 packag..

ProgrammingLang/Go 2023.01.31

[CKA] 6. Object를 관리하는 방법 3가지

개요 "2가지의 Object 관리 접근 방법" 과 "3가지의 Object 관리 방법"을 알아보겠습니다. Object를 관리 접근 방법 2가지 방법에 대한 설명 명령형(Imperative) 접근법 원하는 상태를 얻기 위해서 "어떻게" 해야하는 지를 명령어로 정의하는 접근법 즉, 사용자가 "어떻게(명령)" 부분은 모두 입력해야 한다. 선언형(Declarative) 접근법 "원하는 상태"를 정의하면 시스템이 알아서 어떻게 해야 하는지 정의하는 접근법 즉, 사용자가 "원하는 상태(yaml)"만 입력하면 된다. 관리 방법 관리 기법 관리 대상 권장 환경 지원하는 작업자 수 명령형 커맨드(Imperative Command) 활성 오브젝트 개발 환경 1+ 명령형 오브젝트 구성(Imperative Object Conf..

Cloud/k8s-CKA 2023.01.29

[코지] c++ 소수점 표현

개요 c++에서 소수점 아래 표현하는 방법을 알아보겠습니다. 목차 1. 자료형 범위 2. 소수점을 표현할 수 있는 자료형 3. 수의 표현 방법 자료형 범위 구분 자료형 byte 범위 비고 기본형 void – – 문자형 (signed) char 1 byte -128 ~ 127 unsigned char 1 byte 0 ~ 255 wchar_t 2 byte 0 ~ 65,535 정수형 bool 1 byte 0 ~ 1 (signed) short (int) 2 byte -32,768 ~ 32,767 unsigned short (int) 4 byte 0 ~ 65,535 (signed) int 4 byte -2,147,483,648 ~ 2,147,483,647 OS bit 따라다름 unsigned int 4 byte ..

[코지] c++ 숫자 문자 구분

개요 정수를 구분하는 코드 핵심 1. 정수 범위 2. 판별법 std::isdigit 을 사용하여 ASCII의 값이 숫자인지 문자인지 판별 3. 유의 사항 +11 과 -11이 들어와도 처리 가능 해야한다. Code https://github.com/toward-the-best/coding_test/blob/main/unit_test/range_check/number_or_alphabe.cpp GitHub - toward-the-best/coding_test Contribute to toward-the-best/coding_test development by creating an account on GitHub. github.com 연관 코테 https://www.acmicpc.net/problem/1000..

[CKA] 5. namespace

개요 k8s에서 namespace의 용도를 알아보겠습니다. namespace k8s에서 namespace는 single cluster 내에서 리소스를 그룹화하여 분리하는 메커니즘을 제공합니다. k8s에서는 최소 설치 시 2개의 namespace가 존재하게 됩니다. 1. kube-system k8s system 관리를 외한 pod들이 존재하는 namespace 2. default 사용자가 pod를 배포 시 기본적으로 소속되는 namespace namespace 제약 사항 1. 동일 namespace에서의 resource name은 유일해야 합니다. namespace가 다르면 같아도 괜찮습니다. 2. namespace의 적용 법위는 namespace에 기반한 object에 한정됩니다. (예: deployme..

Cloud/k8s-CKA 2023.01.24

[CKA] 4. Service

개요 k8s에서의 service가 무엇인지 알아보겠습니다. 일단 그전에 k8s의 network 기초를 조금 설명하고 넘어가겠습니다. k8s의 network k8s에서의 network구조 물리적으로 구성한 node위에 overlay network라는 기술을 이용하여 Pod 간의 network를 구현하고 있습니다. 참고로. overlay network는 물리적으로 구성된 망위에 새로운 논리적인 network를 구성하는 하는 것입니다. 그림으로 설명 하면 다음과 같습니다. 1. 먼저 물리적인 network를 구성하여 node를 연결합니다. 2. 그리고 node안에 생성된 pod들을 overlay network를 이용하여 연결합니다. 이때 "overlay network를 이용하여 연결" 한다는 뜻은 Pod들을 ..

Cloud/k8s-CKA 2023.01.20

[go] 내부 module 및 package 만들기

개요 이전 post([go] 1. downloading 가능한 module 및 package 만들기)에서 download가능한 module을 만들어 보았습니다. 그러나 program 을 개발 하다보면 외부에 노출 되면 안되는 module들도 많이 개발합니다. 그러면 이러한 module을 어떻게 만들면 되는지 알아보겠습니다. 참조 : https://go.dev/doc/tutorial/call-module-code 절차 1. 내부 모듈 생성 (inner_hello) 2. 내부 모듈 경로 설정 3. main package에서 호출 내부 모듈 생성 (inner) 내부 모듈은 main package directory에서 생성을 합니다. 1. inner 생성 #mkdir inner 2. inner_hello mod..

ProgrammingLang/Go 2023.01.20

[go] downloading 가능한 module 및 package 만들기

개요 go 1.19 기준에서 프로그램을 가끔 만들면 사용자 module 를 만들어야 할 때가 매우 많이 생깁니다. 그런데 항상 module 만드는 방법을 까먹습니다. 우선 첫 번째 post에서 download가능한 module을 만들어 볼것 입니다. 참고로, 모든 정보는 https://go.dev/ 에서 가져왔습니다. 알고 싶은 것 1. 나만의 module를 만드는 순서 필요한 사전 지식 - module과 package의 관계 - module 용도 - package 용도 module과 package의 관계 https://go.dev/doc/tutorial/create-module Go 코드는 package로 그룹화되고 package는 module로 그룹화됩니다. 그래서 나만의 module을 만들때는 mo..

ProgrammingLang/Go 2023.01.19