stayhungri

고정 헤더 영역

글 제목

메뉴 레이어

stayhungri

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (23)
    • Golang (12)
    • React (1)
    • Javascript (2)
    • 기타 (8)

검색 레이어

stayhungri

검색 영역

컨텐츠 검색

Golang

  • [Golang]3달 전 날짜 구하기 - AddDate()

    2022.07.15 by stayhungri

  • [Golang]문자열 양쪽 여백 혹은 문자(들) 삭제(Trim)하기

    2022.07.15 by stayhungri

  • [Golang]time.Time 구조체 기본값은 무엇일까요

    2022.07.08 by stayhungri

  • [Golang]싱글톤(singleton) 패턴 구현하기

    2022.07.01 by stayhungri

  • [Golang] "net/http: TLS handshake timeout" error

    2022.07.01 by stayhungri

  • [Golang]UUID 만들기

    2022.06.24 by stayhungri

  • [Golang]PNG 파일 JPG 로 변환하기

    2022.06.24 by stayhungri

  • [Golang]config 파일 관리는 viper 괜찮아요

    2022.06.16 by stayhungri

[Golang]3달 전 날짜 구하기 - AddDate()

특정 날짜에서 3달 전 혹은 2주 전 등의 날짜를 구하고 싶다면 time 패키지에 AddDate() 함수를 이용하면 됩니다. func threeMonthAgo() { t := time.Now() t2 := t.AddDate(0, -3, 0) fmt.Printf("now : %+v\n", t) fmt.Printf("threeMonthAgo: %+v\n", t2) } now : 2022-07-15 00:16:43.869676 +0900 KST m=+0.000060240 threeMonthAgo: 2022-04-15 00:16:43.869676 +0900 KST

Golang 2022. 7. 15. 00:17

[Golang]문자열 양쪽 여백 혹은 문자(들) 삭제(Trim)하기

문자열 양 끝에 있는 여백(White Space)를 삭제하거나 특정 문자(들)을 삭제를 해야할 때가 있습니다. 사용자로부터 받은 입력값을 DB에 저장할 때가 그런 상황 중 하나이죠. 이럴 때 strings 패키지에서 제공하는 Trimx 함수들을 사용하면 됩니다. func stringTrim() { s := " abc defg " fmt.Printf("string : \"%s\"\n", s) fmt.Printf("trim left : \"%s\"\n", strings.TrimLeft(s, " ")) fmt.Printf("trim right : \"%s\"\n", strings.TrimRight(s, " ")) fmt.Printf("trim space : \"%s\"\n", strings.TrimSpace(..

Golang 2022. 7. 15. 00:10

[Golang]time.Time 구조체 기본값은 무엇일까요

이런 질문에 대해 해소를 해보려고 합니다. - time.Time{} 선언된 변수의 기본 값을 무엇일까요? - time.Time{} 선언된 변수에 날짜와 시간이 할당 되었는지 안 되었는지 어떻게 알 수 있을까요? - API 개발 중 날짜와 시간 파라미터를 request body 로 넘기도록 하고 time.Time 으로 받도록 개발했습니다. client 쪽에서 날짜와 시간을 넘겨줬는지 안했는지 어떻게 알 수 있을까요? time.Time 구조체를 보면 날짜와 시간에 대한 값을 저장하기 위해 wall, ext 변수를 활용하고 있습니다. uint64와 int64 는 선언만 하면 기본값으로 0을 가지기 때문에 내부적으로 0 값을 가집니다. type Time struct { // wall and ext encode ..

Golang 2022. 7. 8. 13:11

[Golang]싱글톤(singleton) 패턴 구현하기

싱글톤 패턴을 구현하는 방법에 대해서 다뤄보겠습니다. type singleton struct{} var ( instance *singleton ) func New() *singleton { if instance == nil { instance = &singleton{} //

Golang 2022. 7. 1. 13:51

[Golang] "net/http: TLS handshake timeout" error

"net/http: TLS handshake timeout" "net/http: TLS handshake timeout" 에러 메시지는 말 그대로 TLS handshake 중에 타임아웃이 났다는 뜻입니다. 외부 서비스 API 호출 시 나온 상황인데 해당 시간 대에 트래픽이 급증하여 나온 것으로 보여집니다. 문제를 해결하는 방법은 요청 성격에 따라 다르겠지만 몇번 다시 호출해 보고 그래도 안되면 다른 서비스(이럴 때를 대비해 미리 준비한 다른 외부 서비스)를 이용하는게 좋다고 생각합니다. retry와 timeout 은 요청 성격에 상황에 따라 조절하면 될텐데 여기서는 timeout 을 조절하는 방법에 대해 다루겠습니다. go 기본 패키지에서 기본 handshake timeout 이 10초입니다. http..

Golang 2022. 7. 1. 13:40

[Golang]UUID 만들기

Golang 에서 UUID 를 만들 때 google 에서 만든 uuid 패키지로 만들면 됩니다. func makeUuid() string { newUUID := uuid.New() log.Printf("uuid: %s", newUUID) return newUUID.String() } UUID 를 검증할 때는 parse 함수를 활용하면 됩니다. 아래는 길이가 다른 경우를 테스트한 경우입니다. func parseUuid() bool { s := "c5dbedfd-d149-463e-8c09-7cc1a90364a" newUUID, err := uuid.Parse(s) if err != nil { log.Printf("failed to parse: %+v", err) return false } log.Printf..

Golang 2022. 6. 24. 13:28

[Golang]PNG 파일 JPG 로 변환하기

PNG 파일을 JPG 로 변환할 때는 이렇게 하면 됩니다. PNG -> RGBA -> JPG 코드로 살펴볼게요 func convertPNGtoJPG() { // PNG 파일을 디코딩합니다. pngImgFile, err := os.Open("./image/whyoh1.png") if err != nil { log.Fatalf("png file not found : %+v", err) } defer pngImgFile.Close() imgSrc, err := png.Decode(pngImgFile) if err != nil { log.Fatalf("failed to decode png file %+v", err) } // PNG 파일을 RGBA로 바꿉니다. 투명한 뿐은 하얀색으로 처리합니다. newImg :..

Golang 2022. 6. 24. 13:03

[Golang]config 파일 관리는 viper 괜찮아요

Go에서 config 파일을 별도로 두고 관리하고 싶을 때 많이 쓰는 것중 하나가 viper 입니다. 바이퍼에 대해 간략하게 알아보면요. 다양한 형식(JSON, TOML, YAML, HCL, envfile 그리고 Java properties)의 config 파일들을 지원하고 config 파일이 바뀌면 실시간으로 읽어서 반영합니다. 환경설정 변수도 지원하고요 원격 config 시스템 (etcd or Consul) 도 지원하고요 커맨드 라인으로도 config 를 설정할 수 있습니다. 그 외로 buffer 에 있는 config 도 읽을 수 있고, 특정 값을 직접 셋팅할 수도 있습니다. 그럼 이제 어떻게 사용하는지 알아볼게요. 먼저 아래와 같은 명령어로 패키지를 설치합니다. go get github.com/sp..

Golang 2022. 6. 16. 23:11

추가 정보

인기글

최신글

페이징

이전
1 2
다음
TISTORY
stayhungri © laeshiny
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바