본문 바로가기

IT 초보코딩의 세계74

Go언어의 채널(Channel), Select 구문, Sync 패키지 2장 동시성과 고루틴, 데이터 공유에 대해서 학습하지 않았다면 아래포스팅을 다시한번 보고 오자. https://joylucky7.tistory.com/33 Go언어의 동시성 과 Goroutine, 데이터공유 1장 ◆ 동시성(Concurrency) 란? ▶ 프로그램을 여러 독립된 작은 단위로 나누고 주어진 자원을 사용해 빠르게 동시다발적으로 수행하는 행위 ▶ 동시성의 개념은 스레드보다 더 포괄적 ▶ 스레드 ● 스 joylucky7.tistory.com ◆ 일반 채널 - 동기 채널 ▶ 선언 make(chan 데이터의 자료형) ▶ 채널에 데이터 저장 → 채널 2023. 4. 4.
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.