전체 글38 golang의 실수 계산(부동소수점 오차, 머신 엡실론) golang에서의 실수는 소수점을 찍거나 또는 지수 표기법 e / E를와 + / - 를 사용하여 소수점 위치를 지정합니다. 컴퓨터는 2진수를 사용하기 때문에 실수를 정확하게 표현할 수 없는데, 특히 무한 소수의 경우 2진수로 정확히 표현할 수 없고 아쉬운대로 근사값으로 표현해야 합니다. 따라서 아래와 같은 문제 상황이 발생할 수 있습니다. 1. 등호(==)로 비교 불가능 package main import ( "fmt" "math" ) func main() { //variables var ( a float64 = 9.9 ) const ( epsilon = 1e-14 ) a = a - 0.7 fmt.Println(a) //9.2000000000001 } 변수 a에 9.9를 할당하고 0.7을 빼면 9.2가 .. 2022. 11. 13. Github에서 Atlantis를 이용한 Terraform 협업 환경 구축하기 * 이 글은 CloudNet@ Terraform Study(T101)을 진행하며 학습한 내용을 바탕으로 작성하였습니다. Intro 업무 환경에 테라폼을 사용하면 할수록 늘 새로운 의문점들이 생겨나곤 했습니다. 현재로서도 강력한 기능을 제공하지만 아직 빠르게 발전하고 있는 오픈소스 IaC 도구인 만큼, 다양한 문제 상황을 해결하는 과정에서 '이게 정답이다!'라고 할 수 없으며 커뮤니티를 통해 다양한 사용 경험을 공유하고 나름대로의 방법으로 발전시켜 나가야 한다는 생각이 듭니다. 테라폼은 IaC(Infrastructure as Code) 도구입니다. 동작의 결과물이 인프라스트럭쳐일 뿐, 결국 테라폼 자체는 '코드'인 것인데, 그동안 테라폼을 '코드'로서 대하지 못했다는 생각이 들었습니다. 몇 가지 이유를 꼽.. 2022. 11. 11. Docker desktop을 이용하여 간단하게 kubernetes 환경 구성하기 Docker desktop을 이용하여 간단하게 kubernetes 환경 구성하기 재직 중에는 AWS 계정이 있어서 테스트용 EKS 서버를 올려놓고 사용했는데, 새로운 회사에 입사하기 전까지 istio 연습용으로 간단히 사용할 클러스터가 필요하던 차에 Docker desktop을 이용하여 매우 간단하게 쿠버네티스 클러스터를 구성할 수 있는 방법이 있어 포스팅하고자 한다. Docker desktop의 변화 3~4년 전에 docker를 처음 접했을 때는 Windows 에서 Docker Desktop을 이용하여 환경을 구축하고 처음으로 컨테이너를 사용했었다. 당시에는 여러가지 제약도 많았고, WSL도 2버전이 나오기 전인 데다가 쿠버네티스는 접해보기도 전이었던 것 같은데, Docker Desktop을 오랜만에 .. 2022. 8. 20. AWS EKS에 ArgoCD를 ALB로 연결하여 배포하기 ALB-ArgoCD on EKS EKS에 ArgoCD를 배포하고 CI/CD를 구현하는 과정에서 ArgoCD를 AWS ELB에 붙여서 HTTPS로 외부 접근 가능하도록 배포하고 싶었다. 그러나 제공되고 있는 yaml 템플릿은 CLB를 기준으로 되어있었으며, 인증서 설정도 되어있지 않아 HTTPS 로 연결할 수 없었다. 결국 사용자가 자기 환경에 맞게 커스텀해서 사용해야 하는데, 구글링해서 얻을 수 있는 use case들은 모두 제각기 다른 환경에 맞추어 커스텀하고 있기에 즉각 적용하기가 어려웠다. 잘못된 정보들.. 많은 블로그에서 Service Type을 LoadBalancer로 지정하고 적절한 annotation을 주면 alb로 올릴 수 있다고 설명하고 있다. 또는 NodePort 타입을 지정한다던가.... 2022. 3. 26. 이전 1 2 3 4 5 6 7 8 ··· 10 다음