일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- JUCE library
- a tour of go
- 코딩
- 자료구조
- OS
- 백준
- 프로그래밍
- C++ gui
- C언어
- 공룡책
- 리듬게임
- LOB
- JUCE 튜토리얼
- JUCE
- C++ library
- 알고리즘
- Nebula
- C++ gui 라이브러리
- c++ heap
- Docker
- go
- tour of go
- vim-go
- C++
- 연결리스트
- BOJ
- go channel
- JUCE라이브러리
- 운영체제
- gui
- Today
- Total
목록Programming (154)
CafeM0ca
이미지가 많은 관계로 아래 링크로 갈음한다. repo: https://github.com/jiny0x01/golang_depoly_exercise
Mac OS에서 EKS와 로컬에 kubectl를 연동하기 위해 작업하고 있는데 kubectl 1.25버전에서 제목과 같은 오류가 발생한다. 해결 방법은 kubectl 버전을 낮춰주는 것이다. https://github.com/aws/aws-cli/issues/6920 aws eks update-kubeconfig invalid apiVersion · Issue #6920 · aws/aws-cli Describe the bug Update kubectl from v1.23.6 to 1.24.0 and run commands aws eks update-kubeconfig --name ${EKS_CLUSTER_NAME} --region ${REGION} kubectl version I get the follo..
multi stage로 빌드하면 도커 이미지 사이즈가 줄어든다. 도커 파일을 작성할 때 일반 적으로 이런식으로 작성하곤 한다. FROM golang:1.18.5-alpine3.16 WORKDIR /app COPY . . RUN go build -o main main.go EXPOSE 8080 CMD [ "/app/main" ] 이미지를 설정해주고 현재 프로젝트 디렉토리를 컨테이너에 복사하고 빌드하고 실행한다. 이렇게 build된 dockerfile은 용량이 무지막지하게 큰데 간단한 프로젝트라도 1GB에 육박할 수 있다. 이 보다 더 좋은 방법으로는 multi-stage build 방법이 있다. https://docs.docker.com/develop/develop-images/multistage-buil..
로또 시뮬레이션 프로젝트(Golang) 로또 6/45는 1부터 45까지의 수 중에서 중복없이 6개를 뽑아 숫자를 맞추는 게임이다. 확률은 다음과 같다. 1등: 814만5060분의 1 (0.000000122773804% -> 0.00000012%) 2등: 135만7510분의 1 (0.000000736642824% -> 0.00000074%) 3등 3만5724분의 1 (0.000027992386071 -> 0.000028%) 4등 733분의 1 (0.001364256480218% -> 0.00136%) 5등 45분의 1 (0.022222222222222% -> 0.02%) 성인이 되고나서 로또 몇장을 나와 연관 있는 숫자로 찍기도 하고 꿈에서 나온 숫자를 조합해서 찍어보기도 했는데 1등은 커녕 5등 한번도 ..
Go에서 로컬 package를 생성하고 접근할 때가 있다. project_dir/ | ----src/ | main.go util/ | util.go 먼저 util.go부터 보자. // util.go package util type Sample struct { first int Second int } func function1() { // empty function } func Function2() { // empty function } Sample 구조체는 first와 Second 멤버변수를 가지고 있고 function1()과 Function2() 함수를 가지고 있다. first 멤버변수와 function1() 함수는 소문자로 이름이 시작된다. Second 멤버변수와 Function2() 함수는 대문자로..
Go언어 Sort. 구조체 정렬, map 정렬 Go의 Sort를 알아보자. https://pkg.go.dev/sort 기본적으로 int형 slice와 float64형 slice, string slice는 Sort를 지원한다. 구조체 정렬 그렇다면 구조체를 정렬하기 위해서는 어떻게 해야할까? 다행히 공식 문서에 사용법에 대한 예제 코드가 존재한다. // 정렬할 구조체다. Name과 Age 멤버변수가 있다. type Person struct { Name string Age int } func (p Person) String() string { return fmt.Sprintf("%s: %d", p.Name, p.Age) } // Go의 sort.Sort()는 `func Sort(data Interface)`..
2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 주석을 지우고 실행해보자. #include #include #include #include #define WHITE_TILE 0 #define BLUE_TILE 1 using namespace std; void print(const vector &v) { for(const auto& i : v) { for (const auto& j : i) { cout
이전 게시글에서 Go 서버 애플리케이션을 aws ec2에 도커로 배포했다. 이번 글에서는 구입한 도메인과 AWS주소를 연결하는 방법과 Docker 컨테이너간 통신에 대해 작성해본다. AWS와 DNS 초기 인스턴스를 살펴보면 퍼블릭 IPv4와 퍼블릭 IPv4 DNS가 눈에 보인다. 개발자는 해당 IP주소를 통해 서버를 접근할 수 있다. 탄력적 IP(Elastic IP) 주소가 눈에 띈다. 동적 클라우드 컴퓨팅을 위해 고안된 정적 IPv4 주소다. 일반 사용자는 저 주소를 통해 서버에 접근시키면 된다. 탄력적 IP는 네트워크 및 보안 > 탄력적 IP에서 탄력적 IP 주소를 할당하면 된다. 탄력적 IP를 할당받았으면 탄력적 IP 주소 연결을 통해 인스턴스를 연결해주면 끝난다. 이제 구입한 도메인과 탄력적 IP..
작은 서비스를 만들어서 이를 배포하는 경험을 작성한다. 이 글의 서버 애플리케이션의 소스코드 구조는 다음과 같다 github.com/jinykim0x80/42report_calender_server 42report_calender_server Dockerfile internal *.go main.go Dockerize 우리가 작성한 서버 애플리케이션 코드를 빌드하고 애플리케이션을 클라우드 서버에 구동시키면 배포가 끝난다. 자신의 로컬 PC와 클라우드의 환경이 다르므로 도커를 활용하고자 한다. 우선 golang이 깔려있는 컨테이너에서 소스코드를 빌드해야한다. 도커허브(https://hub.docker.com/)에서 golang을 검색하면 golang이 깔려있는 컨테이너 환경을 구축할 수 있다. FROM g..
패키지 네이밍은 어떻게 해야하나 Go로 첫 프로젝트를 진행하면서 여러 고민이 있다. 코딩컨벤션 디렉터리 구조 패키지 네이밍 동시성과 성능 마이크로서비스에서 서비스를 나누는 기준과 repository의 분리 등등.. 당장 생각나는 것만 적어도 5가지나 있다. 다행이 Go는 컨벤션 같은 가이드라인이 문서로 잘 되어 있어서 궁금증을 쉽게 해결할 수 있다. 패키지 이름은 단순하게 협업을 한다면 패키지를 봤을 때 최대한 직관적이고 단순하게 작명하는 것이 좋다. 이를 위해 Go에서는 Snake case와 Camel case 네이밍을 사용을 하지 않는다. example priority_queue computeServiceClient 다른 언어에선 바람직하지만 Go에선 그렇지 않다. 이름이 길면 신중하게 줄여라 str..