>  기사  >  백엔드 개발  >  골랑 dto 변환

골랑 dto 변환

WBOY
WBOY원래의
2023-05-13 11:09:37729검색

Go 언어에서 DTO(Data Transfer Object)는 매우 일반적인 패턴입니다. 요청과 응답 간의 클래스 변환을 수행하기 위해 웹 개발에서 널리 사용됩니다. Go 언어는 유형이 안전한 언어이지만 JSON 및 기타 외부 데이터 형식을 다룰 때는 유형 변환을 수행해야 합니다. 이 기사에서는 Go 언어에서 DTO 변환을 처리하는 방법을 살펴보겠습니다.

DTO 배경

DTO(데이터 전송 개체)는 개체에 전송해야 하는 데이터를 캡슐화하는 데 사용되는 디자인 패턴입니다. 복잡한 객체를 단순화하여 애플리케이션을 더 간단하고 쉽게 유지 관리할 수 있습니다. 기술 구현에서 비즈니스 개체를 분리하고 프로그램의 보안과 유연성을 높일 수 있습니다.

비즈니스 개체는 일반적으로 데이터베이스에 매핑되는 구조를 가지고 있지만 업데이트나 쿼리와 같은 특정 작업의 경우 개체의 일부만 전달됩니다. 이것이 DTO가 작동하는 곳입니다. 객체를 단순화하고 클라이언트나 서버로 전달되는 데이터의 양을 줄입니다. 또한 클라이언트에서 서버로의 올바른 데이터 유형 변환을 보장합니다.

Go를 사용한 DTO 변환

Go에서 DTO 변환을 사용하려면 해당 데이터 구조를 생성하고 로드하고 처리해야 합니다. 아래에서는 DTO 변환을 사용하는 방법을 보여주는 예제를 작성하겠습니다.

먼저 두 개의 데이터 구조를 만듭니다. 사용자(User)와 DTO(UserDTO)의 구조를 나타냅니다. 이 예에서는 클라이언트가 사용자 이름과 나이가 포함된 JSON을 보낸다고 가정합니다.

type User struct {
    Name string
    Age  int
}

type UserDTO struct {
    Name string
    Age  string
}

클라이언트로 반환되거나 클라이언트로부터 받은 나이는 문자열 형식이어야 하므로 UserDTO의 나이가 문자열임을 알 수 있습니다.

다음으로 User 유형의 구조를 UserDTO 유형의 구조로 변환하는 함수를 만듭니다.

func ConvertToDTO(user User) UserDTO {
    return UserDTO{
        Name: user.Name,
        Age:  strconv.Itoa(user.Age), // int to string
    }
}

이 함수는 단순히 새 UserDTO 구조를 만들고 Name 속성을 복사하며 Age 속성을 문자열로 변환합니다. 이를 위해 strconv.Itoa 라이브러리를 사용했습니다.

Echo나 Gin과 같은 웹 프레임워크를 사용하는 경우 API 요청을 처리할 때 이 기능을 사용할 수 있습니다.

UserDTO를 다시 User 구조로 변환하는 방법을 보여주기 위해 역방향 함수 ConvertToUser를 만듭니다.

func ConvertToUser(userDto UserDTO) User {
    age, _ := strconv.Atoi(userDto.Age) // string to int
    return User{
        Name: userDto.Name,
        Age:  age,
    }
}

이 함수는 역변환을 수행합니다. 즉, UserDTO 구조를 User 구조로 변환합니다. age 속성을 문자열에서 정수로 다시 변환합니다.

이제 DTO 변환이 완료되었으므로 이러한 기능을 사용할 수 있습니다. 다음 코드를 사용하여 테스트했습니다.

func main() {
    user := User{
        Name: "Alice",
        Age:  25,
    }

    userDto := ConvertToDTO(user)

    fmt.Println(userDto.Name, userDto.Age)

    user2 := ConvertToUser(userDto)

    fmt.Println(user2.Name, user2.Age)
}

이 예에서는 25세의 Alice라는 사용자를 만들었습니다. 이를 DTO로 변환한 다음 다시 User 유형으로 변환합니다.

최종 출력은 다음과 같습니다.

Alice 25
Alice 25

이제 Go!를 사용하여 DTO 변환 프로세스를 완료했습니다.

결론

DTO(데이터 전송 개체)는 개체로 전송해야 하는 데이터를 캡슐화하는 데 사용되는 인기 있는 디자인 패턴입니다. JSON이나 XML과 같은 Go 언어의 외부 데이터 형식을 처리해야 하는 경우 데이터 유형 변환을 수행해야 합니다. 이 기사에서는 Go를 사용한 DTO 변환을 살펴보고 데이터를 지정된 DTO 유형으로 변환하는 방법을 시연했습니다. 이 기사가 향후 개발에서 DTO 변환을 더 잘 처리하는 데 도움이 되기를 바랍니다.

위 내용은 골랑 dto 변환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.