일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 패스트캠퍼스업스테이지부트캠프
- scope
- 타입
- golang slice remove
- 패스트캠퍼스AI부트캠프
- golang pointer
- struct
- 패스트캠퍼스업스테이지에이아이랩
- UpstageAILab
- golang interface
- 함수
- 국비지원
- 메서드
- package
- golang
- 변수
- receiver
- Interface
- array
- 스코프
- 패스트캠퍼스
- 상수
- 업스테이지패스트캠퍼스
- keyword
- golang slice
- method
- golang array
- receiver method
- slice
- Pointer
- Today
- Total
목록프로그래밍 (60)
느리지만 꾸준히, 코딩
개요Go는 예외(exception) 대신 에러(error)를 사용하여 예외처리를 합니다.예외처리시 사용하는 error 인터페이스에 대해 알아보겠습니다.Error 인터페이스 정의Golang의 error 인터페이스는 간단한 구조입니다.type error interface { Error() string}단 하나의 메서드만을 가지고 있습니다.`Error()` 메서드는 에러 설명을 문자열로 반환합니다.Error 인터페이스 사용하기에러 반환하기함수에서 에러를 반환할 때는 보통 마지막 반환 값으로 error 타입을 사용합니다.func doSomething() (int, error) { // 작업 수행 if 문제발생 { return 0, errors.New("문제가 발생했습니다") ..
개요Golang에서 다양한 문자열 자르기(string slice) 방법을 살펴보겠습니다.기본적인 문자열 슬라이싱Go에서 문자열은 불변(immutable) 바이트의 슬라이스입니다. 따라서 배열이나 슬라이스와 유사한 방식으로 인덱싱할 수 있습니다.str := "Hello, World!"fmt.Println(str[0:5]) // "Hello"fmt.Println(str[:5]) // "Hello"fmt.Println(str[7:]) // "World!"fmt.Println(str[:]) // "Hello, World!"주의: 이 방법은 바이트 단위로 작동하므로 UTF-8 인코딩된 문자열에서 멀티바이트 문자를 다룰 때는 주의가 필요합니다.strings.Split() 함수 사용import "str..

개요Go 언어에서 정수 타입은 크게 두 가지 범주로 나눌 수 있어요.아키텍처 독립적 타입 (Architecture-independent types)아키텍처 의존적 타입 (Architecture-dependent types)해당 부분에 대해서 알아보겠습니다. 1. 아키텍처 독립적 타입이 타입들은 CPU 아키텍처와 관계없이 항상 동일한 크기를 가집니다:int8, uint8 (별칭: byte): 항상 1바이트int16, uint16: 항상 2바이트int32 (별칭: rune), uint32: 항상 4바이트int64, uint64: 항상 8바이트2. 아키텍처 의존적 타입이 타입들은 CPU 아키텍처에 따라 크기가 달라집니다:int, uint:32비트 시스템에서 4바이트64비트 시스템에서 8바이트uintptr: 포..

개요Go 언어에서 문자열(string)과 룬(rune)은 텍스트를 다룰때 주의할점과 특징들에 대해서 알아보겠습니다.string(문자열)Go에서 string은 불변(immutable)의 바이트 슬라이스입니다. 기본적으로 UTF-8로 인코딩된 텍스트를 나타내는 데 사용됩니다. 특징읽기 전용: 한 번 생성된 문자열은 변경할 수 없습니다.UTF-8 인코딩: 기본적으로 UTF-8을 사용합니다.인덱싱: 개별 바이트에 접근할 수 있지만, 항상 유효한 유니코드 문자를 반환하지는 않습니다.예제s := "Hello, 월드"fmt.Println(len(s)) // 13 (바이트 수)fmt.Println(s[0]) // 72 (ASCII 값 'H') rune(룬)rune은 Go에서 유니코드 코드 포인트를 나타내는 타입입니..
개요동일성(Identity), 동등성(Equality) 두 개념의 차이점과 Go언어에서의 적용 방법에 대해 알아보겠습니다.Identity (동일성)정의Identity는 두 변수가 메모리 상에서 정확히 같은 객체를 가리키고 있는지를 나타냅니다.특징주로 포인터 비교에 사용`==` 연산자로 비교메모리 주소를 비교예시type Person struct { Name string Age int}p1 := &Person{"Alice", 30}p2 := &Person{"Alice", 30}p3 := p1fmt.Println(p1 == p2) // false (다른 메모리 주소)fmt.Println(p1 == p3) // true (같은 메모리 주소) Equality (동등성)정의Equality는 두 값의 내..
개요Go 언어를 사용하다 보면 함수에 값을 전달할지, 아니면 포인터를 전달할지 고민하게 되는 상황이 자주 발생합니다.Go에서 값 전달과 포인터 전달의 차이점을 이해하고, 각각의 장단점을 비교하여 어떤 경우에 무엇을 선택해야 하는지 알아보겠습니다. 값 전달 (Pass by Value)값 전달은 함수에 인수를 전달할 때 그 값을 복사하여 전달하는 방식입니다. 이 경우 함수 내에서 인수의 값을 변경해도 원본 값에는 영향을 미치지 않습니다. 장점안전성: 값이 복사되므로 함수 내에서 값이 변경되더라도 원본 데이터가 보호됩니다.단순성: 포인터를 사용하지 않으므로 코드가 단순하고 직관적입니다.단점성능 문제: 큰 구조체나 배열을 복사할 때 메모리 사용량이 증가하고 성능이 저하될 수 있습니다.변경 불가: 함수 내에서 값..

개요Go maps in action 의 내용을 참고해서, Golang map기본 개념에 대해서 알아보겠습니다.1. 기본 구조와 선언1.1 map(맵)의 기본 구조map[타입]값map[KeyType]ValueType타입: 비교 가능한 모든 타입이 올 수 있습니다.값: 어떤 타입이든 올 수 있으며, 다른 맵도 포함될 수 있습니다.1.2 map(맵) 변수 선언문자열 키와 정수 값을 가지는 맵 변수를 선언하고 싶다면, 다음과 같이 표현 할 수 있습니다. var m map[string]int1.3 map(맵)의 특성map(맵)은 포인터나 슬라이스와 같은 참조 타입입니다.위와 같이 선언만 한 맵 m의 값은 nil입니다.nil 맵은 읽을 때는 빈 맵처럼 동작하지만, 쓰기를 시도하면 런타임 패닉이 발생합니다.1.4 m..
개요Golang slice(슬라이스) 요소 제거하는 법에 대해 알아보겠습니다. 1. 인덱스를 사용하여 요소 제거slice := []int{1, 2, 3, 4, 5}index := 2 // 제거할 요소의 인덱스slice = append(slice[:index], slice[index+1:]...)fmt.Println("인덱스로 제거 후:", slice)// 출력: 인덱스로 제거 후: [1 2 4 5]append 함수를 사용하여 제거하려는 요소를 제외한 두 부분을 연결합니다. 슬라이스의 순서를 유지하면서 요소를 제거할 수 있습니다.2. Slice(슬라이스) 처음 또는 마지막 요소 제거slice := []int{1, 2, 3, 4, 5}// 첫 번째 요소 제거slice = slice[1:]fmt.Println..

개요슬라이스를 생성하고 조작하는 데 사용되는 세 가지 중요한 내장 함수인 make, copy, 그리고 append에 대해 살펴보겠습니다.1. make 함수`make` 함수는 타입, 길이, 용량 이렇게 세 가지 인수를 받습니다. 내장함수 주석은 다음과 같습니다.// The make built-in function allocates and initializes an object of type// slice, map, or chan (only). Like new, the first argument is a type, not a// value. Unlike new, make's return type is the same as the type of its// argument, not a pointer to it...

개요해당 포스팅은 slices-intro(go.dev) 을 참고하여 작성되었습니다.Golang 슬라이스(Slice)는 효율적이고 유연한 데이터 구조입니다. 배열과 유사하지만, 크기가 동적으로 조절될 수 있어 더 자유롭게 사용 할 수 있는 자료구조 or 구조체입니다.배열슬라이스 동작원리의 포스팅이지만, 슬라이스를 이해하려면 배열 부터 이해를 해야합니다. 간단하게 알아보고 넘어 가보겠습니다.1. 배열의 기본 특성정의: Go에서 배열은 고정된 길이의 동일한 타입 요소들의 연속된 집합입니다.선언 예시: var a [5]int (5개의 정수를 저장할 수 있는 배열 선언)2. 배열의 초기화와 접근var a [5]inta[0] = 1i := a[0]// a 출력 : [1 0 0 0 0] 배열은 선언 시 모든 요소가 ..