IT 초보코딩의 세계/Go 언어33 Go언어의 동시성 과 Goroutine, 데이터공유 1장 ◆ 동시성(Concurrency) 란? ▶ 프로그램을 여러 독립된 작은 단위로 나누고 주어진 자원을 사용해 빠르게 동시다발적으로 수행하는 행위 ▶ 동시성의 개념은 스레드보다 더 포괄적 ▶ 스레드 ● 스레드는 프로그램을 병렬로 수행할 수 있도록 OS에서 지원하는 기능 ● Part1 과 Part 2로 구성된 프로그램을 예로 들어보면 Part 1은 Thread One이 수행하고 Part 2는 Thread Two가 수행하는 경우 아래 그림처럼 두 파트는 동시에 수행 ● 프로그램의 전체적인 흐름을 유지하면서 독립적인 작업을 빠르게 수행할 수 있는 소프트웨어 개발에서 매우 중요한 기술 ● Go 언어와 대다수의 최신 프로그래밍 언어는 프로그램을 여러 개의 작은 독립된 작업으로 나누고 사용 가능한 스레드를 활용해 다중.. 2023. 4. 4. Go언어의 구조체(포인터, Struct) 1장 ◆ 포인터 ▶ 메모리 참조를 저장하는 자료형 var 변수명 *자료형 ● nil(null)로 초기화 package main import "fmt" func main() { var numPtr *int fmt.Println(numPtr) } ▶ new(자료형)으로 메모리를 할당 package main import "fmt" func main() { var numPtr *int = new(int) fmt.Println(numPtr) } ▶ *포인터변수를 이용해서 할당받은 메모리를 참조 package main import "fmt" func main() { var numPtr *int = new(int) *numPtr = 10 fmt.Println(numPtr) fmt.Println(*numPtr) } ▶ 기존.. 2023. 3. 30. Go언어의 자료구조 맵(Map)와 컨테이너 지난 포스팅에서는 배열과 슬라이스에 대해서 알아보았으며 숙지하지 않았다면 아래 포스팅을 참조하자 https://joylucky7.tistory.com/26 Go언어의 자료구조 배열과 슬라이스 1장 ◆ 배열 ● 동일한 자료형 겂들의 집합 ● 크기가 고정 ● 선언과 초기화 package main import ( "fmt" ) func main() { var ar1 [3]int ar1 = [3]int{1, 2, 3} fmt.Println(ar1) var ar2 = [3]int{10, 20, 3} fmt.Println(ar2) } ● 데이터 joylucky7.tistory.com 맵(Map) ◆ 맵은 해시 테이블 또는 딕셔너리라고도 하며 키-값 형태로 자료를 저장 ◆ 슬라이스와 마찬가지로 레퍼런스 타입 ◆ 생성.. 2023. 3. 30. Go언어의 자료구조 배열과 슬라이스 1장 ◆ 배열 ● 동일한 자료형 겂들의 집합 ● 크기가 고정 ● 선언과 초기화 package main import ( "fmt" ) func main() { var ar1 [3]int ar1 = [3]int{1, 2, 3} fmt.Println(ar1) var ar2 = [3]int{10, 20, 3} fmt.Println(ar2) } ● 데이터 개수는 len 함수를 이용해서 구할 수 있음 ● 각 데이터 접근은 [인덱스]로 가능한데 인덱스는 0 부터 데이터 개수 -1까지 package main import ( "fmt" ) func main() { ar := [3]int{10, 20, 30} n := len(ar) fmt.Println(n) for i:=0; i 2023. 3. 29. 이전 1 ··· 4 5 6 7 8 9 다음