> 백엔드 개발 > Golang > Golang 배포 및 디버깅 방법에 대한 자세한 소개

Golang 배포 및 디버깅 방법에 대한 자세한 소개

PHPz
풀어 주다: 2023-04-25 16:55:23
원래의
827명이 탐색했습니다.

최근 몇 년 동안 Golang은 점점 더 인기 있는 언어가 되었고 그 응용 프로그램이 점점 더 널리 보급되어 많은 개발자의 관심을 끌고 있습니다. 그러나 Golang을 처음 접하는 개발자에게는 배포와 디버깅이 해결하기 어려운 문제입니다. 이 기사에서는 Golang의 배포 및 디버깅 방법을 자세히 소개합니다.

1. 배포

  1. Compilation

Golang은 컴파일된 언어이므로 작성된 코드를 실행하려면 먼저 실행 파일로 컴파일해야 합니다. 컴파일 방법에는 정적 컴파일과 동적 컴파일의 두 가지가 있습니다. 정적 컴파일은 프로그램에 필요한 라이브러리를 실행 파일로 패키지화합니다. 실행 파일은 크기가 더 크지만 런타임 시 외부 라이브러리에 의존할 필요가 없지만 동적 컴파일에는 런타임 시 라이브러리 파일의 동적 링크가 필요합니다. 실행 파일의 크기는 더 작지만 외부 라이브러리에 대한 의존성이 필요합니다.

정적 컴파일:

$ go build -o main main.go

동적 컴파일:

$ go build -o main main.go -ldflags "-linkmode=external"

그 중에서 -linkmode=external 매개변수는 동적 연결에 필요한 라이브러리 파일을 나타냅니다.

  1. 환경 변수

Golang에서는 기본 패키지 관리 도구가 go mod이므로 코드 저장 경로와 다운로드 소스를 지정하려면 환경 변수를 설정해야 합니다. Linux 시스템에서는 ~/.bash_profile 파일을 수정하여 환경 변수를 설정할 수 있습니다.

export GO111MODULE=on
export 공화당 GOSUMDB는 다운로드한 코드 패키지가 정식 출시 버전인지 확인하는 것을 의미합니다.

Docker

  1. Docker는 Golang 프로그램을 이미지로 패키징하여 모든 플랫폼에 쉽게 배포할 수 있도록 도와줍니다. 먼저 Dockerfile을 작성해야 합니다:
FROM golang:1.15.0-alpine

WORKDIR /app

COPY .

RUN go build -o main .
CMD ["/app/main"]

그 중 FROM WORKDIR은 작업 디렉터리를 지정하고, COPY는 현재 폴더의 파일을 이미지에 복사합니다. CMD는 실행 명령을 지정합니다.

그런 다음 다음 명령을 실행합니다.

$ docker build -t myapp .

$ docker run -p 8080:8080 myapp

그 중 -t는 레이블 이름을 지정하고 -p는 포트 매핑을 지정합니다.

2. 디버깅

디버깅 도구

  1. Golang에는 CPU 및 메모리 사용량을 분석하는 데 도움이 되는 디버깅 도구 세트가 내장되어 있습니다. 먼저 코드에 pprof 패키지를 가져오고 성능 분석 코드를 추가해야 합니다.
import (

"net/http"
_ "net/http/pprof"
로그인 후 복사
)

func main() {

go func() {
    http.ListenAndServe("0.0.0.0:6060", nil)
}()
// your code here
로그인 후 복사
}

그중 pprof는 호출할 필요가 없습니다. 가져올 때 자동으로 경로를 등록합니다. 그런 다음 다음 명령을 실행합니다.

$ go tool pprof http://localhost:6060/debug/pprof/profile

이 명령은 CPU 사용량 분석 결과를 콘솔에 출력합니다.

디버거

  1. 프로그램에서 예외가 발생하면 디버거를 사용하여 디버깅할 수 있습니다. Golang에는 두 가지 유형의 디버거가 있습니다.
GDB 디버거:

컴파일 시 디버깅 정보를 추가하려면 -g 매개변수를 지정하고 다음 명령을 실행해야 합니다.

$ gdb myapp

(gdb) break main.main

(gdb) run


중단점을 예로 들어 실행이 중단점에 도달하면 실행을 멈추고 디버깅 모드로 들어갑니다.

Delve 디버거:

Delve는 원격 디버깅과 네트워크 디버깅을 지원하는 강력한 디버거입니다. 먼저 Delve를 설치해야 합니다.

$ go get -u github.com/go-delve/delve/cmd/dlv

그런 다음 다음 명령을 실행하여 디버거를 시작합니다.

$ dlv debug myapp

이 명령은 디버거를 시작하고 디버깅에 사용할 수 있는 REPL(Read-Eval-Print Loop) 인터페이스를 엽니다.

요약

이 글에서는 Golang의 배포 및 디버깅 방법인 컴파일, 환경 변수, Docker, pprof, GDB 및 Delve를 소개합니다. 개발자가 Golang 기술을 더 잘 익히는 데 도움이 되기를 바랍니다.

위 내용은 Golang 배포 및 디버깅 방법에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿