전체 글33 Golang의 struct(구조체)와 receiver(리시버) 메서드: 객체 지향적 설계의 새로운 접근 Go 언어는 객체 지향 프로그래밍의 개념을 독특한 방식으로 구현합니다. 클래스 대신 구조체를 사용하고, 메서드를 통해 행동을 정의합니다.struct 와 receiver method1. 구조체 (Struct) Go에는 클래스가 없지만 구조체가 있습니다.구조체는 관련된 데이터를 그룹화하는 사용자 정의 타입입니다.type Person struct { Name string Age int} 2. 메서드 (Method) 메서드는 함수와 비슷하지만, 리시버(receiver)라고 불리는 특정 타입이나 객체에 바인딩됩니다.func (p Person) SayHello() { fmt.Printf("Hello, I'm %s\n", p.Name)}여기서 `(p Person)`이 리시버입니다. 이 메서드는 `P.. 2024. 7. 23. Golang func 와 method Go 프로그래밍 언어에서 함수와 메서드는 코드 구조화와 재사용성을 위한 핵심 요소입니다. 이 두 가지 개념은 비슷해 보이지만 중요한 차이점이 있습니다.함수 (Functions)함수는 특정 작업을 수행하는 독립적인 코드 블록입니다.func 키워드로 정의합니다.func String() { // ... some code}이름, 매개변수 목록, 반환 타입을 가집니다.// 이름, 매개변수 목록, 반환 타입을 가집니다.func Add(a, b int) int { return a + b}여러 값을 반환할 수 있습니다.// 여러 값을 반환할 수 있습니다.func Swap(a, b int) (int, int) { return b, a}독립적으로 호출됩니다.메서드 (Methods)메서드는 특정 타입과 연관된 함수입니다.함.. 2024. 7. 22. Golang type(타입) 키워드 탐구 : Named Type과 Type Alias의 차이와 활용 type 키워드는 새로운 타입을 정의하는 데 사용되는 중요한 키워드입니다.기본 타입 정의type 키워드를 사용하여 기존 타입을 기반으로 새로운 타입을 정의할 수 있습니다.type MyInt inttype MyString string 이렇게 정의된 타입은 원래 타입과 구조적으로 동일하지만, Go 컴파일러는 이를 다른 타입으로 취급합니다. 구조체 정의type을 사용하여 구조체를 정의할 수 있습니다.type Person struct { Name string Age int} 인터페이스 정의인터페이스도 type 키워드로 정의합니다.type Printer interface { Print() string} 함수 타입 정의함수 시그니처를 새로운 타입으로 정의할 수 있습니다.type MathFunc f.. 2024. 7. 21. Golang Constants(상수) 상수란?상수는 프로그램 실행 중 변경되지 않는 고정된 값을 나타냅니다. 상수 정의Golang에서 상수는 const 키워드를 사용하여 정의합니다.const Pi = 3.14159const MaxUsers = 100const Greeting = "Hello, World!" 여러 상수를 그룹으로 정의할 수도 있습니다const ( StatusOK = 200 StatusNotFound = 404 StatusInternalServerError = 500)타입이 있는 상수와 없는 상수1. 타입이 없는 상수const MaxValue = 100 2. 타입이 있는 상수const MaxValue int = 10 타입이 없는 상수는 더 유연하게 사용할 수 있으며, 필요에 따라 암시적으로 타입 변환이 가능합니다.. 2024. 7. 20. Golang 변수와 Scope(스코프) 이해하기 변수선언var 키워드 사용Golang에서는 var 키워드를 사용합니다.`var {변수_이름} 타입` 의 형태를 따릅니다.var name stringvar age intvar isStudent bool short variable declarationGolang에서 타입추론이 가능합니다.`:=`구문은 암묵적으로 타입 할당문을 사용할 수 있습니다.`:=`구문은 함수 내에서만 사용할 수 있습니다. 패키지 레벨에서는 사용할 수 없습니다.함수 내부에서 암묵적 유형의 선언 :=대신 짧은 할당 문을 사용할 수 있습니다.name := "Gopher"age := 25isStudent := true패키지 레벨 선언의 제한사항명확성과 일관성Go는 코드의 명확성과 일관성을 매우 중요하게 여깁니다. := 연산자는 변수의 선언과 .. 2024. 7. 19. Golang Module(모듈) 발행 가이드: GitHub에 패키지 배포 Go 모듈, 왜 사용해야 할까?버전 관리 용이: 특정 버전 지정으로 프로젝트 재현성을 보장합니다.종속성 관리 간소화: go.mod로 종속성을 명확히 정의하고 관리합니다.외부 패키지 사용 편리: go get으로 쉽게 패키지를 추가하고 관리합니다.$GOPATH 의존성 제거: 프로젝트의 독립적인 관리가 가능해집니다.빌드 성능 향상: 필요한 패키지만 사용하여 빌드 속도가 개선됩니다.프로젝트 생성예제 프로젝트를 생성하겠습니다.$ go mod init slowin.com/examplego: creating new go.mod: module slowin.com/example$ go get rsc.io/quote/v3go: downloading rsc.io/quote/v3 v3.1.0go: added golang.or.. 2024. 7. 18. 이전 1 2 3 4 5 6 다음