전체 글
-
[IT도서리뷰] Do it! Go 완전 정복Golang 2025. 9. 29. 09:11
Do it! Go 완전정복의 서평단으로 선정되어 간단한 리뷰를 남겨봅니다.이지스 퍼블리싱의 Do it! 시리즈는 이번 기회에 처음 접해봤는데굉장히 잘 정돈되어 있다는 느낌을 받았습니다. 디자인과 구성은 물론이고 내용도 깔끔하게 잘 정리되어 있습니다.언어를 처음 접하는 사람들과 이미 실무에서 사용하고 있는 사람들 모두를 위한 책입니다.Go를 처음 배우는 사람들을 위해이 책은 Go를 왜 사용하는지, 어떤 장단점이 있는지를 다른 언어와 차근차근 비교해줍니다.프로그래밍을 처음 접하는 사람들도 쉽게 이해할 수 있도록 자세히 설명해주고 기본적인 문법들도 함께 실습하며 익힐 수 있도록 해줍니다.실무에서 Go를 사용하고 있는 사람들을 위해저는 이미 실무에서 Go를 사용하고 있지만 사실 개념적으로는 잘 모르는 부분이 많..
-
Go 함수 파라미터 유동적으로 사용하기Golang 2023. 9. 8. 08:40
1. 가변 파라미터(variable parameter) 함수의 마지막 파라미터를 `[]interface{}` 형태로 선언하여, 여러 개의 값을 전달할 수 있도록 한다. func sum(a, b int, c ...int) int { // c는 가변 파라미터 for _, v := range c { a += v } return a + b } // 사용 예시 fmt.Println(sum(1, 2, 3, 4, 5)) // 15 fmt.Println(sum(1, 2, 3)) // 6 2. 슬라이트 파라미터(slice) 함수의 마지막 파라미터를 `[]int` 형태로 선언하여, 여러 개의 값을 전달할 수 있도록 한다 func sum(a, b int, c []int) int { for _, v := range c { a..
-
Affinity : Pod를 원하는 Node에 띄우기Kubernetes 2023. 7. 22. 16:04
Affinity란 선호도란 뜻으로, Pod를 선호하는 Node에서 띄울 수 있게 하는 옵션이다. Affinity 종류 개요 nodeAffinity Pod를 배치할 때, 어떤 Node에 스케쥴링 할지 설정 한다. podAffinity Pod를 배치할 때, 실행 중인 Pod들 중에 선호하는 Pod를 찾아 해당 Pod와 동일한 Node로 배치하도록 설정한다. podAntiAffinity 실행 중인 Pod등 중에, 선호하지 않는 Pod가 실행중인 Node를 피해서 배치하도록 설정한다. nodeAffinity 옵션 **required**DuringScheduling**Ignored**DuringExecution 반드시 충족해야 하는 조건 (Hard) Label이 매칭 되는 Node에만 Pod 배포 가능 **pre..
-
Pod 에 root 권한 주는 법Kubernetes 2023. 7. 1. 17:04
Pod 에서 작업을 하다 보면 `Operation not permitted` 에러가 자주 발생 하는데 root 권한이 없어서 발생하는 것이다. securityContext: privileged: true pod를 올릴 때 securityContext 설정을 해주면 root 권한을 부여 받을 수 있다. 전체 pod yaml 예시 --- apiVersion: v1 kind: Pod metadata: name: csi-rbd-demo-pod spec: containers: - name: web-server image: nginx securityContext: privileged: true volumeMounts: - name: mypvc mountPath: /var/lib/www/html volumes: - ..
-
kubectl cp 명령어Kubernetes 2023. 7. 1. 17:02
kubectl cp 명령어는 local 과 Pod 간의 파일 복사를 수행한다. Pod 에서 Pod 로 복사는 불가능 하다. 명령어 형식 # kubectl cp : # kubectl cp : 예시 # kubectl cp localfile.txt :/data 혹은 # kubectl cp :/data/remotefile.txt /home/user 옵션 `kubectl cp` 명령어는 다음과 같은 옵션을 지원한다. `-c, --container`: 복사할 컨테이너 이름 지정 `--no-preserve`: 파일 소유권, 퍼미션 정보 등을 유지하지 않고 복사 `-p, --preserve`: 파일 소유권, 퍼미션 정보 등을 유지하고 복사 `-R, --recursive`: 디렉토리를 재귀적으로 복사 `-v, --ver..
-
Deployment와 StatefulSetKubernetes 2023. 7. 1. 16:55
대부분의 어플리케이션은 Deployment 또는 StatefulSet 으로 파드를 배포한다. StatefulSet은 stateful(상태가 있는) 서버 (정보 또는 데이터가 있는 서버) Deployment 는 stateless(상태가 없는) 서버 (정보 또는 데이터가 없는 서버) 쉽게 예를들면 콜센터의 상담원 A와 상담을 하던 중 전화가 끊겨서 다시 전화를 했더니, 상담원 B와 연결이 되었다. A가 본인 노트에만 상담내용을 기록했다면, B는 처음부터 다시 상담을 해야한다. 위의 예 처럼 각 파드가 데이터를 각자 가지고 있으면 다른 파드로 연결되었을 때 서비스에 문제가 발생한다. 하지만 독립적인 빌드/배포/스케일링을 위해서 컨테이너를 사용하는 건데 각 파드가 스테이트풀하게 고유의 데이터를 가지면 안된다. ..
-
프로비저닝(Provisioning)내가 몰랐던 IT 용어 2023. 5. 13. 14:55
사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해두었다가 필요할 때 즉시 사용할 수 있는 상태로 미리 준비해 두는것 프로비저닝의 종류 서버 자원 프로비저닝(Server Resource Provisioning) CPU, 메모리, IO 등과 같은 실제 서버의 자원을 할당해주고 운영할 수 있도록 제공해 주는것 OS 프로비저닝(OS Provisioning) OS를 서버에 설치하고 구성작업을 해서 사용할 수 있도록 제공하는 것 소프트웨어 프로비저닝(Software Provisioning) WAS, DBMS 등의 소프트웨어를 설치하고 세팅하여 실행할 수 있도록 제공하는 것 스토리지 프로비저닝(Storage Provisioning) 데이터를 저장하고 관리할 수 있는 Storage를 제공하는 것 계정 프로비저닝..