22.1. 프로그램언어 고(Go)의 문자열 처리 라이브러리

프로그램언어 고(Go)에서의 문자열 연결 프로그램언어 고(Go)에서 문자열을 연결할 때에는 + 연산자를 사용합니다. 예를 들어: package main import “fmt” func main() { str1 := “안녕하세요” str2 := “고 프로그래밍 입니다” result := str1 + str2 fmt.Println(result) } 이 코드는 str1과 str2 두 개의 문자열을 + 연산자를 사용하여 연결합니다. 그리고 fmt.Println 함수를 사용하여 연결된 결과 문자열을 출력합니다. … Read more

21.3. 프로그램언어 고(Go)의 벤치마크 테스팅

프로그램언어 고(Go)에서의 벤치마크 테스팅 기본개념 프로그램 언어 Go에서 벤치마크 테스팅은 프로그램의 성능을 정량적으로 측정하고 비교하기 위해 사용합니다. 기본적으로 벤치마크 테스팅은 특정 함수나 코드 블록을 반복 실행하여 소요되는 시간을 측정합니다. Go언어에서는 testing 패키지의 Benchmark 함수를 사용하여 쉽게 벤치마크 테스트를 작성할 수 있습니다. import “testing” func BenchmarkFunction(b *testing.B) { for i := 0; i < b.N; i++ ... Read more

21.2. 프로그램언어 고(Go)의 통합 테스팅

프로그램언어 고(Go)에서의 통합 테스팅 기본개념 Go언어의 통합 테스팅에 대해 설명드리겠습니다. Go언어에서 통합 테스팅이란, 프로그램의 다양한 컴포넌트를 조합하여 실행했을 때 정상적으로 동작하는지 확인하는 절차입니다. 통합 테스팅은 보통 다음과 같은 순서로 진행합니다. package main import “testing” func TestIntegrate(t *testing.T) { // 1. 테스트에 필요한 컴포넌트들을 준비 db := NewDatabase() cache := NewCache() server := NewServer(db, cache) // … Read more

21.1. 프로그램언어 고(Go)의 유닛 테스팅

프로그램언어 고(Go)의 유닛 테스팅 기본개념 Go언어의 유닛 테스트는 테스트 주도 개발(TDD)의 핵심 기술 중 하나입니다. 유닛 테스트를 통해 프로그램의 기능 단위별로 정확성을 검증하고 버그를 발견할 수 있습니다. Go언어의 표준 라이브러리 testing 패키지가 유닛 테스트를 위한 다양한 기능을 제공합니다. package calculator func Add(a, b int) int { return a + b } 위 코드는 간단한 덧셈 … Read more

20.3. 프로그램언어 고(Go)의 사용자 정의 에러 처리

프로그램언어 고(Go)에서의 사용자 정의 에러 생성 방법 프로그램언어 고(Go)에서 사용자 정의 에러를 생성하는 방법은 다음과 같습니다. package main import “fmt” // 사용자 정의 에러 타입 정의 type errorString string func (e errorString) Error() string { return string(e) } func test() error { // 사용자 정의 에러 반환 return errorString(“사용자 정의 에러 발생!”) } func main() … Read more

20.2. 프로그램언어 고(Go)의 panic과 recover 활용

프로그램언어 고(Go)에서의 panic 함수 사용방법 고(Go)언어에서 panic 함수는 프로그램 실행 도중에 문제나 오류가 발생했을 때 사용하는 함수입니다. panic 함수를 호출하면 해당 함수를 호출한 곳에서 실행이 중단되고 연쇄적으로 호출 스택을 타고 올라가면서 defer로 등록된 함수들이 실행됩니다. package main import “fmt” func badFunc() { panic(“오류 발생!”) } func test() { defer func() { if err := recover(); … Read more

20.1. 프로그램언어 고(Go)의 에러처리 기본 방법

프로그램언어 고(Go)의 에러 반환 방법 고(Go)언어의 에러 반환 방법에 대해 친절하고 쉽게 설명드리겠습니다. 고(Go)언어에서는 함수의 반환값 중 마지막 반환값을 에러처리를 위해 사용합니다. 즉, 반환값이 2개일 경우, 첫번째 반환값은 정상 결과, 두번째 반환값은 에러입니다. func 함수이름(파라미터들) (결과타입, error) { // 함수 로직 if 에러발생 { return nil, errors.New(“에러 메시지”) } return 결과, nil } 위의 예제코드와 … Read more

19.2. 프로그램언어 고(Go)의 채널 닫기

프로그램언어 고(Go)에서의 채널 닫기 동작 이해하기 Go 언어의 채널 닫기 동작을 이해하는 것에 대해 설명드리겠습니다. Go 언어의 채널은 고루틴간 통신을 위한 통로 역할을 합니다. ch := make(chan int) 위 코드에서 채널 ch를 만들었습니다. 채널을 닫으려면 built-in 함수 close를 사용합니다. close(ch) 채널을 닫으면 더 이상의 데이터 전송은 불가능합니다. 하지만 계속해서 채널로부터 데이터를 읽을 수는 있습니다. func … Read more

19.1. 프로그램언어 고(Go)의 채널 생성 및 활용

프로그램언어 고(Go)에서의 unbuffered channel 생성 및 사용 고(Go)언어에서 unbuffered 채널은 버퍼가 없는 채널을 말합니다. 이는 make 함수를 사용하여 생성할 수 있습니다. ch := make(chan int) // unbuffered 채널 위 코드처럼 make시에 버퍼 크기를 명시하지 않으면 unbuffered 채널이 생성됩니다. unbuffered 채널의 특징은 데이터를 주고받을 때 반드시 서로를 기다려야 한다는 것입니다. 예를 들어 ch 채널로 값을 보내기 … Read more