분류 전체보기 67

첫 PR 성공적으로 merge!!

이 글에서 이어진다. 추석 연휴 전에 날린 PR이 우여곡절 끝에 merge 되었다. 그 와중에 사소한 이슈가 좀 있었다. 가장 먼저 알게 된 것은 assign은 어지간하면 내가 하는 게 아니라는 것! 어차피 봇이 알아서 리뷰어를 할당해주고 하기때문에 난 그냥 PR만 올리면 된 거였다. 아무튼 그래서 빨리 될 줄 알았는데.. 내가 main 브랜치로 merge로 요청을 한 게 문제가 됐다. 한국어 작업을 하는 브랜치로 targe branch를 변경해달라고 하셨다. 너무 친절히 알려주셔서 정말 감사했다. 그런데 서지훈님께서 "혹시 이런 현상~"이라고 말씀해주신대로 문제가 발생했다. 내가 main 브랜치에서 분기를 쳐서 작업을 했다 보니, 한국어 브랜치로 merge 하는데 문제가 생긴 것이다. 어찌저찌 한국어 ..

공부/Kubernetes 2021.09.24

golang http 코드 예시(golang http skeleton code)

어딘가에 유용하게 쓰기위해 함수를 따로 만들어봤다. method, request url, request body를 파라미터로 받고, response body를 return해주는 함수이다. func ExecuteAPI(method string, url string, data interface{}) []byte { fmt.Println("===============") fmt.Println(method, url) var req *http.Request var err error client := &http.Client{} if data != nil { // POST, PUT, DELETE.... json_body, err := json.Marshal(data) if err != nil { fmt.Errorf(..

공부/Go 2021.09.20

첫 PR 날려봤다

NFS 관련 공식문서를 읽다가 예시를 보기 위해 링크를 눌렀는데 잘못된 링크였다. 확인해보니 master 브랜치인데 링크는 main 브랜치로 되어있던 것이 문제였다. 링크를 고쳐달라고 문의를 보내려고했는데, 그런 방식이 아니라 kubernetes/website라는 github 프로젝트로 관리되는 거였다. 그래서 깃헙 코드를 직접 확인해보니 {{}}를 통해 파라미터로 브랜치를 받고있었다. 그래서 처음에는 이 파라미터를 넘겨주는 값을 main에서 master로 바꾸면 되겠다 싶었지만, 도대체 어디서 넘겨주는지를 알 수가 없었다. 그런데 다행히 똑같은 이슈의 PR들이 이미 있었다. 답변이 말하기로는 파라미터 자체는 해당 프로젝트의 default 브랜치 값을 자동적으로 주어서 문제가 없다고 한다. 그 프로젝트의..

공부/Kubernetes 2021.09.16

Kubernetes Pod-to-Service 통신 매커니즘

k8s에서 가장 까다로운 부분 중 하나는 네트워크라고 생각한다. 이미 구글링 하면 여러 다른 사이트에서 이 글보다 훨씬 쉽고 자세하게 설명해준 글들이 많다. 그래서 나는 굳이 모든 통신의 경우를 다 정리하진 않는 대신, pod-to-service의 통신과정과 실제 환경에서 룰을 확인해볼 것이다. pod-to-service를 알면 그 밑단의 pod-to-pod 혹은 다른 노드 간의 pod-to-pod 통신도 쉽게 이해할 수 있기 때문이다. 구조 위 그림은 node X의 pod A가 service를 통해 node Y의 pod B로 통신하는 과정을 보여주고 있다. 이 시나리오에 따라 차례차례 설명하도록 하겠다. ① pod A가 DNS 서비스로 콜 pod A가 서비스(DNS)로 콜을 보내면, 각 컨테이너의 /e..

공부/Kubernetes 2021.09.15

2020 카카오 코딩테스트 문자열 압축 c++ solution

#include using namespace std; int solution(string s) { int answer = s.size(); for(int i=1; i 1) zip += to_string(count); zip += temp; answer = answer < zip.size() ? answer : zip.size(); } return answer; } 압축한 문자열을 새로 만들 생각을 못하고, 기존의 문자열을 수정할 생각에 갇혀서 못풀었다. 결국 다른 분의 솔루션을 보고 풀었다. zip 변수가 그것이다. 참고 : https://yjyoon-dev.github.io/kakao/2020/11/05/kakao-strzip/

공부/알고리즘 2021.09.10

docker image 경량화 build 하기

지금도 도커/쿠버네티스의 초보지만 더 초보였던 시절, 이미지도 그저 생각없이 아래 비스무리하게 했다. COPY . . RUN go build 그러다보니 이미지의 크기가 정말 상상도 못하게 컸다. 1.19 기가가 말이 되는가? 이유는 쓸데없는 바이너리나 파일들이 이미지에 포함되어있기 때문이다. 어떻게하면 실행에만 필요한 파일들을 포함시킬 수 있을까? operator-sdk에서 기본적으로 만들어주는 dockerfile에서 그 해답을 찾을 수 있었다. 핵심은 빌드와 실행을 분리하는 것이다 전체 dockerfile은 아래와 같다. # 1. 빌드전용 이미지 FROM golang:1.15 as builder WORKDIR /go/src # 2. 필요한 패키지 다운로드 COPY go.mod go.mod COPY go..

공부/Kubernetes 2021.09.10

일본어 공부/독학 추천 및 후기

일본어 공부를 시작한 지 약 1년이 됐다. 솔직히 말이 1년이지 중간중간 쉰 텀이 좀 길기도 해서 실제로는 1년이 되지 않는다. 일본어를 공부할 때 독학과 수업 두 가지 방법이 있는데, 나는 둘 다 동시에 진행하고 있다. 서두에 적지만 하테나 일본어 광고 아니다. 나도 광고받아보고 싶다. 1. 독학 (하테나 일본어) 회사 선배분의 추천으로 알게 된 일본어 독학 강의다. 하테나 선생님이 진행하시는 하테나 일본어이다. 유튜브에 무료로 강의 영상이 공개돼있다!! 궁금하면 맛보기를 해보자. 책 없이도 공부가 가능하지만 나는 책 구매를 추천한다. 책 구매를 하면 하테나 일본어 사이트에서 체계적으로 정리된 순서로 공부할 수 있기 때문이다. 그리고 개인적으로 책에다 필기하며 공부해야 기억에 더 잘 남기도 한다. 또 ..

일상/취미 2021.09.09