728x90
1. 구조체 쓸 수 있는 것은 struct 사용해서 객체화 하기
package db
import (
"context"
"log"
"time"
"github.com/go-redis/redis/v8"
)
var client *redis.Client
type Redis struct {
Addr string
Password string
DBcount int
}
type RedisSetter struct {
Key string
Value string
Expire time.Duration
}
type RedisGetter struct {
Key string
}
func (r *Redis) Connection() {
// Connect to Redis server
client = redis.NewClient(&redis.Options{
Addr: r.Addr,
Password: r.Password,
DB: r.DBcount})
// Ping Redis to ensure connectivity
ctx := context.Background()
_, err := client.Ping(ctx).Result()
if err != nil {
log.Println("Failed to ping Redis:", err)
return
} else {
log.Println("Success to ping Redis.")
}
}
func (r *RedisSetter) Set() error {
ctx := context.Background()
return client.Set(ctx, r.Key, r.Value, r.Expire).Err()
}
func (r *RedisGetter) Get() (string, error) {
ctx := context.Background()
return client.Get(ctx, r.Key).Result()
}
GPT:
Go 언어에서 구조체(struct)를 사용하는 이유는 여러 가지가 있습니다:
데이터 구조 정의: 구조체를 사용하면 여러 필드(멤버 변수)를 그룹화하여 데이터 구조를 정의할 수 있습니다. 이는 데이터를 더 구조화하고 조직화하여 코드를 이해하기 쉽게 만들어 줍니다.
코드의 가독성 및 유지보수성 향상: 구조체를 사용하면 코드의 가독성이 향상됩니다. 관련된 데이터를 한데 묶어서 사용하므로, 코드를 읽고 이해하기 쉽습니다. 이는 유지보수성을 높이고 버그를 예방하는 데 도움이 됩니다.
메서드와 함께 사용 가능: Go 언어에서는 구조체에 메서드를 연결할 수 있습니다. 이는 데이터와 그 데이터를 조작하는 함수를 함께 묶을 수 있음을 의미합니다. 이러한 접근 방식은 객체 지향 프로그래밍에서 볼 수 있는 개념과 유사하지만, Go는 명시적인 클래스 개념 대신 구조체와 메서드를 활용하여 객체 지향적인 디자인을 지원합니다.
인터페이스 구현: 구조체는 인터페이스를 구현하는 데 사용될 수 있습니다. 이를 통해 코드의 유연성과 재사용성을 높일 수 있습니다.
메모리 관리 및 성능: Go는 간결하고 효율적인 메모리 관리를 지향합니다. 구조체는 필드의 메모리 레이아웃을 보장하여 메모리를 효율적으로 사용할 수 있습니다. 또한 구조체는 값 형태로 전달되므로, 복사가 발생할 수 있지만 포인터를 이용하여 참조 형태로 전달하여 이를 최소화할 수 있습니다.
JSON/XML 등과의 상호 작용: 구조체는 일반적으로 JSON이나 XML과 같은 외부 데이터 형식과의 상호 작용에 유용합니다. 구조체는 이러한 형식의 데이터를 Go의 데이터 구조로 쉽게 매핑할 수 있습니다.
요약하면, Go 언어에서 구조체를 사용하는 이유는 코드를 구조화하고 관리하기 쉽게 만들며, 유연성과 성능을 향상시키고 외부 데이터와의 상호 작용을 간단하게 만들기 위함입니다.
'아카이브 > Mine Villages' 카테고리의 다른 글
Mine Villages 4일차 데일리 스크럼 회의 : 4월 6일 (0) | 2024.04.06 |
---|---|
Mine Villages 3일차 데일리 스크럼 회의 : 4월 5일 (0) | 2024.04.05 |
Mine Villages 2일차 데일리 스크럼 회의 : 4월 4일 (0) | 2024.04.04 |
Game Villages 1일차 코드 리뷰 : 4월 3일 (0) | 2024.04.03 |
Game Villages 로그인 로직 고민 (2) | 2024.04.03 |