golang 30

golang 현재 디렉토리 경로 가져오기

package mainimport ( "fmt" "os" "path/filepath")func main() { // 현재 작업 디렉토리 경로 가져오기 workPath, err := os.Getwd() if err != nil { panic(err) } fmt.Println(workPath) // 실행 파일 디렉토리 경로 가져오기 exeFilePath, err := os.Executable() if err != nil { panic(err) } exePath := filepath.Dir(exeFilePath) fmt.Println(exePath)} 심볼릭 링크를 사용할 경우 OS 별로 경로가 다를 수 있다.

golang 2025.03.11

golang windows service

golang.org/x/sys/windows/svc 패키지 사용으로 윈도우 서비스 등록 및 실행 go get 사용으로 패키지 추가> go get golang.org/x/sys/windows/svc 프로젝트 디렉토리 생성> mkdir C:\\workspace\\myGoService> mkdir C:\\workspace\\myGoService\\logs main.go// Package mainpackage mainimport ( "fmt" "os" "runtime" "time" "golang.org/x/sys/windows/svc" "golang.org/x/sys/windows/svc/debug")// initfunc init() { runtime.GOMAXPROCS(runtime.NumCPU()) // C..

golang 2025.01.05

golang smtp email send

Gmail SMTP 사용을 위한 세팅구글 이메일 설정에서 모든 설정 보기 메뉴 이동 전달 및 POP/IMAP 탭 SMTP를 이용하려면 IMAP사용 체크 구글 계정 설정 메뉴이동 보안 탭 앱 비밀번호 생성 및 메모 main.go// Package mainpackage main // import "myhost.com/smtp/main"import ( "errors" "fmt" "net/smtp")// mainfunc main() { uername := "xxx@gmail.com" password := "xxxx xxxx xxxx xxxx" auth := gmailLoginAuth(uername, password) from := "xxx@gmail.com" to := "xxx@gmail.com" subject..

golang 2025.01.05

golang generic 사용으로 empty interface boxing, unboxing 코드 수정

go의 interface {} (empty interface)는 모든 타입을 담을 수 있습니다. JAVA, C#의 Object, C 계열 언어의 void* 와 비슷한 용도로 사용됩니다. interface {}를 사용하다 보면 boxing, unboxing 발생합니다. package mainimport ( "fmt" "reflect" "strconv")func main() { var value1 int = 21 fmt.Printf("main() value1 %x %T\n", &value1, &value1) Recursion(&value1) // boxing fmt.Println("") var value2 string = "21" fmt.Printf("main() value2 %x %T\n", &value2..

golang 2024.10.06