드리프트의 뉴 코딩 이야기
close
프로필 배경
프로필 로고

드리프트의 뉴 코딩 이야기

  • 분류 전체보기 (406) N
    • Javascript (171) N
    • Go (140)
    • Rust (33)
    • Python (30)
    • Docker (5)
    • Codings (10)
    • Linux (5)
    • Flutter (3)
    • Etc (9) N
  • 홈
  • Javascript
  • Go
  • Rust
  • Python
Go 언어는 매력적이다

Go 언어는 매력적이다

Go 언어는 매력적이다익명 필드를 사용한 상속의 문제점해결 방법리시버를 사용할 때 주의할 점배열 길이 생략 표현해결 방법슬라이스에러 핸들링번외: Go 언어에서 try...catch에 가까운 구현for range세미콜론 자동 삽입에 의한 문법 제약이름 공간과 패키지 이름interface{}가 nil이 되지 않는 문제교훈프리미티브 타입(chan)에서 변수 자동 초기화를 기대할 수 없음해결 방법Go Modules 사용 시 고유 URL 필요Go의 툴체인에 --verbose에 해당하는 기능이 없음GoTo가 사용 가능결론익명 필드를 사용한 상속의 문제점Go 언어는 객체 지향 언어는 아니지만, 구조체와 리시버를 사용하여 객체의 멤버를 "호출"할 수 있습니다. 먼저, Animal "클래스"를 만들어보고, 자기소개를 위..

  • format_list_bulleted Go
  • · 2024. 6. 1.
  • textsms
Golang에서 로그를 출력하는 팁

Golang에서 로그를 출력하는 팁

Golang에서 로그를 출력하는 팁TL;DR라이브러리(패키지)를 작성할 때…애플리케이션을 작성할 때…라이브러리의 로깅라이브러리에서 *log.Logger를 사용하는 경우라이브러리에서 자체 Logger 인터페이스를 정의하는 경우기존의 로깅 라이브러리는 절대 No Good애플리케이션의 로깅글을 마치며 Golang으로 프로그램을 작성할 때 로그는 어떻게 출력하시나요? 이번 글에서는 로그를 출력할 때의 팁과 주의할 점, 그리고 그 이유에 대해 설명해 드리겠습니다. 로그 출력 방법은 라이브러리에서 로그를 출력하는 경우와 애플리케이션에서 로그를 출력하는 경우에 따라 상당히 다릅니다.TL;DR라이브러리(패키지)를 작성할 때…먼저 로그를 출력하지 않는 것을 고려해 보세요. error로 반환하여 라이브러리 사용자가 로그를..

  • format_list_bulleted Go
  • · 2024. 6. 1.
  • textsms
Go의 문자열 결합 성능 비교

Go의 문자열 결합 성능 비교

Go의 문자열 결합 성능 비교테스트 케이스구현+= 연산자 루프strings.Join 함수한 번의 대입문으로 + 연산자로 모든 요소를 결합[]byte 사용용량을 지정한 []bytebytes.Buffer 사용용량을 지정한 bytes.Buffer용량을 지정한 bytes.Buffer + WriteString결과 정리결론안녕하세요! 이번 글에서는 Go 언어에서 문자열을 결합하는 여러 가지 방법을 비교해보려고 합니다. 다양한 방법을 벤치마크 테스트를 통해 성능을 비교하고, 가장 효율적인 방법을 찾아봅시다.테스트 케이스아래와 같은 9글자 * 10개의 요소로 이루어진 문자열 배열을 ","로 결합하고, 마지막에 ","를 추가하는 코드를 구현했습니다. 원하는 출력은 string이기 때문에, []byte나 bytes.Buf..

  • format_list_bulleted Go
  • · 2024. 5. 19.
  • textsms
Go 언어로 문자열 결합 최적화하기: strings.Builder 완벽 가이드 및 벤치마크

Go 언어로 문자열 결합 최적화하기: strings.Builder 완벽 가이드 및 벤치마크

Go 언어로 문자열 결합 최적화하기: strings.Builder 완벽 가이드 및 벤치마크strings.Builder 내부 살펴보기용량이 있는 []byte에 append하는 것이 더 빠르다!strings.Builder의 편리한 메서드결론strings.Builder를 사용한 문자열 결합은 단순히 +=를 사용하는 것보다 훨씬 빠르다! 특히, strings.Builder.Grow()를 사용해 미리 용량을 확보해두는 방법이 가장 빠르고 사용하기도 좋다.strings.Builder 내부 살펴보기strings.Builder는 Write 메서드를 사용해 문자열 등을 효율적으로 구축하기 위해 사용된다. strings.Builder 자체는 외부로 공개된 필드가 없는 구조체이다.type Builder struct { ..

  • format_list_bulleted Go
  • · 2024. 5. 19.
  • textsms
Go 언어 슬라이스 완벽 이해 - 구현과 활용

Go 언어 슬라이스 완벽 이해 - 구현과 활용

Go 언어 슬라이스 완벽 이해 - 구현과 활용슬라이스의 실체요소에 접근하기요소 추가하기용량이 충분한 경우용량이 부족한 경우마무리마무리슬라이스의 실체Go의 런타임 코드를 보면, Go의 슬라이스는 다음과 같이 정의되어 있습니다.type slice struct { array unsafe.Pointer len int cap int} reflect 패키지의 SliceHeader를 봐도 다음과 같이 정의되어 있습니다.type SliceHeader struct { Data uintptr Len int Cap int} 즉, Go의 슬라이스는 다음 그림처럼 배열에 대한 포인터와 길이, 그리고 용량을 가진 값으로 표현됩니다.런타임과 reflect 패키지에서 포인터를 unsafe...

  • format_list_bulleted Go
  • · 2024. 5. 19.
  • textsms
동적인 요소를 가진 JSON을 깔끔하게 Unmarshal하기

동적인 요소를 가진 JSON을 깔끔하게 Unmarshal하기

동적인 요소를 가진 JSON을 깔끔하게 Unmarshal하기시작하며요점Unmarshal할 때 에일리어스를 정의하고 동적인 요소를 json.RawMessage로 상속정리시작하며JSON API 클라이언트를 만들 때, 특정 요소가 동적인 값을 가지는 JSON을 Unmarshal해야 할 때가 있습니다. 예를 들어, 아래와 같은 JSON입니다. 여기서 shape 요소의 값이 동적으로 변하는 상황을 가정합니다.{ "id": "001", "type": "circle", "shape": { "radius": 5 }}{ "id": "002", "type": "rectangle", "shape": { "height": 5, "width": 2 ..

  • format_list_bulleted Go
  • · 2024. 5. 17.
  • textsms
  • navigate_before
  • 1
  • ···
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • navigate_next
태그
  • #성능 최적화
  • #자바스크립트
  • #Go 언어
  • #typescript
  • #타입스크립트
  • #프로그래밍
  • #Rust
  • #Go
  • #javascript
  • #Golang
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바