전체 글 (35) 썸네일형 리스트형 golang 조건문 사용시 주의할 점 ! golang 으로 조건문을 사용할 때 주의할점이 있다. package main import "fmt" func setInt() (int, int, error) { return 5, 6, nil } func main() { var err error if err != nil { fmt.Println("error event occurred") } myInt := 3 if true { myInt, newInt, err := setInt() if err != nil { fmt.Println("error event occurred") } fmt.Println("inside of if condition: ", myInt, newInt) } fmt.Println("after if condition: ", myInt) .. Rectangle: 맥북에서도 윈도우 관리(화면 분할)를 수월하게! Window 에서는 Win + 방향키 조합으로 기본적인 화면 분할 및 윈도우(창) 이동이 지원되는데요, mac 에서는 별도 프로그램 설치를 통해 지원됩니다. 여러 프로그램이 있지만 본 포스트에서는 Rectangle 이라는 프로그램을 사용해보려 합니다. 아래 링크로 이동하여 Rectangle 을 쉽게 설치할 수 있습니다. https://rectangleapp.com/ [Rectangle Move and resize windows in macOS using keyboard shortcuts or snap areas. The official page for Rectangle. rectangleapp.com](https://rectangleapp.com/) Rectangle 을 Application 폴더로 이동.. k9s: Kubernetes 환경을 위한 편리한 관리 도구 여러 k8s(kubernetes) cluster 를 관리하거나, 단일 클러스터의 규모가 커지는 경우 관리하는데 어려움을 겪는 경우가 많다. 그러한 경우에 편하게 여러 클러스터를 관리하는데 도움을 주기 위한 도구를 소개한다. k9s 란? Kubernetes CLI To Manage Your Clusters In Style! k9s 는 k8s 관리를 스타일리시 하게 할 수 있도록 하는 terminal 기반의 UI 를 제공하는 툴이다. k9s 설치 설치는 (mac os 의 경우)아래 명령 한 줄로 끝난다. $ brew install derailed/k9s/k9s 그 외 OS 의 경우 링크를 참고하면 금방 끝납니다. 사용법 사용법도 아주 간단하다. 터미널에서 k9s command 만 입력하면 바로 현재 cont.. golang gin API + swagger 적용하기 swagger 는 단순 API 문서화를 넘어 FE와 연동에도 적극적으로 활용된다. 그렇기 때문에 API Server의 swagger 연동은 당연하게 필요하게 되는데, 간단한 go API server에 swaggo를 적용해보자 swaggo? Automatically generate RESTful API documentation with Swagger 2.0 for Go 위 설명에 나와있듯이 자동으로 REST API docs를 만들어주는 프레임웍을 의미한다. 방법 swaggo module 다운로드 아래처럼 설치 후 Go Project root 경로에서 init을 수행한다. 그럼 자동으로 docs/ directory와 필요 파일들을 생성된다. $ go get -u github.com/swaggo/swag/cm.. Go gin middleware 적용하기 middleware(미들웨어) ?? client server 통신에서, 중복되는 일(인증, 로깅, ...)을 효과적으로 처리하기 위해 middleware를 활용합니다. cleint middleware server middleware(미들웨어)를 golang의 API Server 에서 적용시키는 예제를 확인합니다. 예제 지난 포스트 에서 gin 패키지를 이용한 API 를 만들었었는데 비슷하게 활용할 예정이다. main.go package main import "github.com/gin-gonic/gin" // middleware 구현 func DummyMiddleware() gin.HandlerFunc { // Do some initialization logic here return func(c *gin.. kubernetes 의 runtime이 containerd 일 때 nsenter로 container 접속 (tcpdump) k8s 환경에서 container에 tcpdump 등 명령어 입력을 위해 nsenter(namespace enter)가 필요할 때가 있다. 예를 들어, pod에 tcpdump 명령어가 없는 경우 pod에 tcpdump명령어가 있지만 sudo 권한이 필요한 경우 그 외 ..; 아무튼 아래 과정을 통해 해당 컨테이너로 접속하는 과정을 공유한다. 1. Pod 조회 및 container ID 확인 ### get pod $ kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES sample-pod-679899669d-pfdp5 1/1 Running 0 3d23h 172.172.172.172 node1 .. curl로 network latency 확인하기 아래와 같이 curl 명령어를 이용해서 요청/응답에 걸린 시간을 간단하게 확인할 수 있다. (second 단위로 출력) $ curl -o /dev/null -s -w 'Total: %{time_total}s\n' https://www.google.com Total: 0.278483s format을 이용하면 더 자세한 결과를 확인할 수 있다. $ curl -w @- -o /dev/null -s "https://google.com" CNAME Cloaking(클로킹) 이란? CNAME Cloaking? 웹 브라우저의 관점에서 www.blog.example과 comments.blog.example은 동일한 사이트로 간주됩니다. 사용자가 www.blog.example에서 웹 페이지를 로드하고 해당 페이지가 comments.blog.example에 하위 리소스를 요청하면 해당 요청은 로그인 쿠키 및 사용자 ID 쿠키를 포함하여 blog.example 사이트를 포함하도록 설정된 모든 쿠키를 전송합니다. 또한 해당 comments.blog.example 하위 리소스 요청에 대한 응답은 blog.example에 대한 쿠키를 설정할 수 있으며 이러한 쿠키는 first-party 쿠키가 됩니다. CNAME은 한 도메인 이름을 다른 도메인 이름으로 매핑합니다. 즉, 사이트 소유자는 IP 주.. 이전 1 2 3 4 5 다음