18.3. 프로그램언어 고(Go)의 고루틴과 채널의 활용

프로그램언어 고(Go)에서의 채널의 여러가지 활용법 고(Go)언어의 채널에는 다음과 같은 여러 가지 활용법이 있습니다. package main import “fmt” func main() { // 버퍼가 없는 채널 ch := make(chan int) // 버퍼가 있는 채널 ch2 := make(chan string, 2) } 위의 예제코드와 같이 채널을 만들 때 버퍼의 유무에 따라 다음과 같이 활용할 수 있습니다. 1. 버퍼가 없는 … Read more

18.2. 프로그램언어 고(Go)의 고루틴 동기화

프로그램언어 고(Go)에서의 뮤텍스 Mutex 활용 고(Go)언어에서 뮤텍스(Mutex)는 고루틴(goroutine)간에 안전하게 데이터를 공유하기 위해 사용합니다. 뮤텍스는 lock과 unlock 메서드를 사용하여 크리티컬 섹션(critical section)을 보호합니다. 한 고루틴이 lock을 획득하면 다른 고루틴은 unlock이 호출될 때까지 기다려야 합니다. 예를 들어 여러 고루틴이 공유 자원에 접근할 때 뮤텍스를 사용할 수 있습니다. package main import ( “fmt” “sync” ) var count int … Read more

17.3. 프로그램언어 고(Go)의 인터페이스 형 변환

프로그램언어 고(Go)의 인터페이스 형 변환방법 프로그램언어 고(Go)에서 인터페이스 형 변환은 interface{} 형을 사용하여 형 변환을 할 수 있습니다. interface{}는 빈 인터페이스로 어떤 형이든 할당할 수 있으며, 이를 사용하여 형 변환을 할 수 있습니다. package main import “fmt” func main() { var i interface{} i = “hello” s := i.(string) fmt.Println(s) i = 5 n := … Read more

17.2. 프로그램언어 고(Go)의 인터페이스 상속

프로그램언어 고(Go)의 인터페이스 상속방법 Go 언어의 인터페이스 상속 방법에 대해 한글로 설명 드리겠습니다. Go언어에서 인터페이스는 메서드의 시그니처(함수 프로토타입)만 정의할 수 있고, 구현부는 정의할 수 없습니다. 그래서 Go의 인터페이스는 duck typing을 사용합니다. 예를 들어 이런 인터페이스가 있다고 합시다. type Reader interface { Read(p []byte) (n int, err error) } Reader 인터페이스는 Read 메서드의 시그니처만 정의했습니다. Read … Read more

17.1. 프로그램언어 고(Go)의 인터페이스 생성과 활용

프로그램언어 고(Go)의 인터페이스 생성방법 고(Go)언어의 인터페이스 생성방법을 설명드리겠습니다. 고(Go)언어에서 인터페이스는 메소드의 집합을 정의하는 것입니다. 인터페이스를 정의할 때는 ‘type’ 키워드 뒤에 인터페이스 이름을 정의하고, 중괄호 안에 메소드 시그니처를 정의합니다. type 인터페이스이름 interface { 메소드1(인자1 타입1, 인자2 타입2) 반환형 메소드2(인자1 타입1) 반환형 } 인터페이스에 정의된 메소드들은 반드시 구현하는 구조체에서 구현해야 합니다. type 구조체명 struct { } func … Read more

16.3. 프로그램언어 고(Go)의 조건문 활용 방법

프로그램언어 고(Go)에서의 “if” 조건문 활용 방법 고(Go)언어에서의 “if”조건문은 다음과 같이 사용할 수 있습니다. package main import “fmt” func main() { // if 조건문 예제 if 7%2 == 0 { fmt.Println(“7은 짝수입니다”) } else { fmt.Println(“7은 홀수입니다”) } } 위 예제코드에서 보시다시피, if 조건문은 “if”키워드로 시작합니다. 그 뒤 괄호 안에 조건을 작성합니다. 조건이 참(true)일 경우 중괄호 … Read more

16.2. 프로그램언어 고(Go)의 반복문 사용 방법

프로그램언어 고(Go)에서의 “for” 반복문 사용 방법 프로그램언어 고(Go)에서의 “for” 반복문은 다른 언어와 유사한 구조를 가지고 있습니다. for 반복문을 사용하는 기본적인 문법은 다음과 같습니다. for 초기문; 조건문; 후행문 { 반복 실행될 문장 } for 반복문을 사용할 때에는 다음과 같은 절차를 거치게 됩니다. 1. 초기문이 단 한번 실행되어 반복문에 필요한 변수의 초기화가 이루어집니다. 2. 조건문의 결과가 참(true)이면 … Read more

16.1. 프로그램언어 고(Go)의 선언 및 초기화 방법

프로그램언어 고(Go)에서의 변수 선언 및 초기화 방법 고(Go)언어의 변수 선언 및 초기화 방법을 설명드리겠습니다. 고(Go)언어에서 변수를 선언하는 기본적인 문법은 다음과 같습니다. var 변수명 타입 예를 들어, var name string var age int 와 같이 선언할 수 있습니다. 여기서 string과 int는 타입을 나타냅니다. 변수를 선언과 동시에 초기값을 할당할 수도 있습니다. var name string = “홍길동” var … Read more

15.3. 프로그램언어 고(Go)에서의 구조체와 메소드

프로그램언어 고(Go)에서의 구조체에 메소드 연결하기 프로그램언어 고(Go)에서 구조체에 메소드를 연결하는 방법은 구조체 타입을 receiver로 하여 메소드를 정의하는 방법입니다. 이를 통해 구조체 인스턴스에 대한 메소드를 구현할 수 있습니다. 예를 들어 다음과 같은 구조체가 있다고 할 때, type User struct { Name string Email string } 이 User 구조체에 대한 메소드를 다음과 같이 정의할 수 있습니다. func … Read more