본문 바로가기

728x90
반응형

분류 전체보기

golang hello world golang hello world Golang으로 작성된 코드를 실행하는 방법은 다음과 같습니다. Golang에 설치되어 있는 도커 컨테이너 설치합니다. docker run -it --rm --name ubuntu-go anti1346/ubuntu2204:go $ docker run -it --rm --name ubuntu-go anti1346/ubuntu2204:go root@ecfac8a85ff7:go$ go version go version go1.20.4 linux/arm64 1. 소스 코드 작성 : 텍스트 편집기를 사용하여 Golang 소스 코드 파일을 작성합니다. 예를 들어, "main.go"라는 파일에 아래의 코드를 작성합니다. vim main.go package main import "fm.. 더보기
Go 컴파일 순서 Go 컴파일 순서 Go 컴파일러는 다음과 같은 단계로 소스 코드를 컴파일합니다. 토큰화 (Tokenization): 소스 코드를 토큰으로 분리합니다. 토큰은 프로그래밍 언어에서 의미를 가지는 최소 단위로, 예를 들어 변수 이름, 연산자, 키워드 등이 포함됩니다. 구문 분석 (Parsing): 토큰화된 코드를 읽어들여 문법적으로 분석합니다. 이 단계에서 소스 코드의 구조를 이해하고 추상 구문 트리(Abstract Syntax Tree, AST)를 생성합니다. 추상 구문 트리는 프로그램의 구조와 의미를 나타내는 트리 형태의 자료구조입니다. 타입 체크 (Type Checking): 추상 구문 트리를 분석하여 변수, 상수, 함수 등의 식별자에 대한 타입을 검사합니다. 이 단계에서 타입 오류를 발견하고 정적 타입.. 더보기
우분투에 Go 언어(Golang)를 설치하는 방법 Go 컴파일 순서 Go 컴파일러는 다음과 같은 단계로 소스 코드를 컴파일합니다. 토큰화 (Tokenization): 소스 코드를 토큰으로 분리합니다. 토큰은 프로그래밍 언어에서 의미를 가지는 최소 단위로, 예를 들어 변수 이름, 연산자, 키워드 등이 포함됩니다. 구문 분석 (Parsing): 토큰화된 코드를 읽어들여 문법적으로 분석합니다. 이 단계에서 소스 코드의 구조를 이해하고 추상 구문 트리(Abstract Syntax Tree, AST)를 생성합니다. 추상 구문 트리는 프로그램의 구조와 의미를 나타내는 트리 형태의 자료구조입니다. 타입 체크 (Type Checking): 추상 구문 트리를 분석하여 변수, 상수, 함수 등의 식별자에 대한 타입을 검사합니다. 이 단계에서 타입 오류를 발견하고 정적 타입.. 더보기
AWS EC2 인스턴스에서 Swap 메모리를 사용하지 않는 이유 AWS EC2 인스턴스에서 Swap 메모리를 사용하지 않는 이유 AWS EC2 인스턴스에서 Swap 메모리를 사용하지 않는 이유는 다음과 같습니다. EBS 스토리지 사용: AWS EC2 인스턴스는 Elastic Block Store (EBS) 스토리지를 사용하여 인스턴스의 메모리 스왑을 지원합니다. EBS는 디스크 기반 스토리지로서 데이터의 지속성과 안정성을 보장합니다. 따라서 EC2 인스턴스에서는 Swap 메모리 대신 EBS 스토리지를 사용하여 메모리 스왑을 처리할 수 있습니다. 성능 이슈: 일반적으로 EC2 인스턴스는 많은 I/O 작업을 처리하므로 Swap 메모리를 사용하는 경우 디스크 I/O 병목 현상이 발생할 수 있습니다. 디스크 I/O가 느려질 경우 인스턴스의 전체 성능에 영향을 미치게 되므로,.. 더보기
HashiCorp Vault은 SSH 인증을 위한 다양한 메커니즘 HashiCorp Vault은 SSH 인증을 위한 다양한 메커니즘 HashiCorp Vault은 SSH 인증을 위한 다양한 메커니즘을 제공합니다. 이 중 가장 일반적인 메커니즘은 다음과 같습니다. 1. Client Signing & Server Verification (클라이언트 서명 및 서버 검증): 클라이언트는 Vault에 자신의 공개 키를 등록하고, Vault는 이를 사용하여 클라이언트의 요청에 서명된 SSH 인증서를 생성합니다. SSH 서버는 클라이언트의 요청에 대한 응답으로 받은 서명된 인증서를 검증합니다. 서버는 Vault의 공개 키를 신뢰하고 있어야 하며, Vault는 클라이언트 인증 요청에 대한 서명 검증을 수행합니다. 2. Server Signing & Client Verification.. 더보기
HashiCorp Vault를 Docker 컨테이너로 구성하는 방법 HashiCorp Vault를 Docker 컨테이너로 구성하는 방법 1. Vault Docker 이미지 가져오기 Docker Hub에서 HashiCorp Vault의 공식 이미지를 가져옵니다. 다음 명령어를 사용합니다. docker pull vault 2. Vault 컨테이너 실행 다음 명령어를 사용하여 Vault 컨테이너를 실행합니다. docker run --rm --cap-add=IPC_LOCK -e 'VAULT_DEV_ROOT_TOKEN_ID=myroot' -p 8200:8200 --name=dev-vault vault 이 명령어는 개발용으로 Vault 컨테이너를 실행하고, 8200 포트를 호스트에 바인딩합니다. VAULT_DEV_ROOT_TOKEN_ID 환경 변수를 사용하여 루트 토큰 값을 설정합.. 더보기
HashiCorp Vault를 설치하고 구성하는 방법 HashiCorp Vault를 설치하고 구성하는 방법 1. HashiCorp Vault 다운로드 HashiCorp Vault를 공식 웹사이트(https://www.vaultproject.io/downloads)에서 다운로드합니다. 사용 중인 운영 체제에 맞는 압축 파일을 선택하여 다운로드합니다. 2. 압축 해제 다운로드한 압축 파일을 원하는 디렉토리로 이동한 후 압축을 해제합니다. 3. Vault 실행 파일 이동 압축 해제한 디렉토리에서 vault 실행 파일을 원하는 위치로 이동시킵니다. 이 위치는 나중에 Vault에 대한 실행 경로를 설정할 때 사용됩니다. 4. Vault 구성 파일 생성 Vault를 구성하기 위해 설정 파일을 생성합니다. 예를 들어, config.hcl이라는 파일을 생성하고 필요한 구.. 더보기
서로 다른 버전의 SSH 클라이언트 간 통신을 위한 몇 가지 고려해야 할 사항 서로 다른 버전의 SSH 클라이언트 간 통신을 위한 몇 가지 고려해야 할 사항 CentOS 6와 Ubuntu 22.04는 서로 다른 버전의 SSH 서버를 실행하므로 호환성 문제가 발생할 수 있습니다. 다음은 CentOS 6의 SSH 서버와 Ubuntu 22.04의 SSH 클라이언트 간 통신을 위한 몇 가지 고려해야 할 사항입니다. 1. 호스트 키 알고리즘 CentOS 6: 기본적으로 RSA 호스트 키 알고리즘을 사용합니다. Ubuntu 22.04: 기본적으로 RSA 및 ED25519 호스트 키 알고리즘을 모두 사용합니다. 호스트 키 알고리즘을 통일하기 위해 호스트 키 알고리즘을 수동으로 지정할 수 있습니다.예를 들어, ssh - HostKeyAlgorithms=ssh-rsa와 같이 명령어를 실행하여 RS.. 더보기

728x90
반응형