오늘은 고언어(golang)의 고루틴(gorutine)에 대해 알아보겠습니다 ! | Goroutine 고루틴 - 타 언어의 쓰레드(Thread)와 비슷한 기능 - 생성 방법 매우 간단, 리소스를 매우 적게 사용한다. - 수 많은 고루틴 동시 생성 실행 가능 - 비동기적 함수 루틴 실행(매우 적은 용량 차이) -> 채널을 통한 통신 가능 - 공유 메모리 사용 시 정확한 동기화 코딩이 필요함. - 싱글 루틴에 비해 항상 빠른 처리 결과는 아니다. 멀티 쓰레드의 장점 및 단점 장점 - 응답성 향상 - 자원 공유를 효율적으로 활용 & 사용 - 작업이 분리되어 코드가 간결하다. 단점 - 구현하기 어려움 - Test & 디버깅이 어렵다. - 전체 프로세스의 side effect - 성능 저하, 동기화 코등 반드시 ..
| 고언어의 구조체란? - 구조체는 '하나 이상의 변수를 묶어서 새로운 자료형을 정의하는 Custom data type'입니다 - 필드들의 집하체이며 필드들의 컨테이너입니다. 헷갈리죠 ? 예를들어, "상품"이라는 정보를 저장한다고 생각해봅시다.상품중에서도 냉장고를 저장한다고 하면, 냉장고 품명,바코드번호 등이 있습니다.그래서 냉장고를 추가할 때 마다 냉장고의 정보를 선언하고 초기화하는 것이 아니라, '상품'이라는 구조체 안에 묶어서 저장합니다. 즉, '정보의 집합'입니다. 하지만, Go언어는 객체 지향을 따릅니다.java에서 객체지향은 class,상속 등의 개념이 존재하는데Go언어에서는 존재하지 않습니다. !!중요 객체지향의 class가 filed와 method를 함께 갖는 것과는 다르게 Go언어의 구조..
앞에서 설명한 배열과 슬라이스의 관계에 대해 배열을 알아보았고, 이번에는 슬라이에 대해 알아보겠습니다. | 슬라이스 특징 - 배열과 비슷하지만 길이가 고정적 X - 즉, 동적으로 크기가 늘어난다 (가변적) - 참조 값 타입이다 (레퍼런스 타입) - 슬라이스는 두 가지로 선언할 수 있습니다. - slice는 web data를 가져올 때 주로 많이 사용합니다. 1. slice 선언 방법 package main func main(){ //case1 배열처럼 선언 var slice []int slice2 := []int{} //가변형 slice3 := []int{1,2,3,4,5}//길이 :5 용량 :5 slice4 := [][]int{ {1,2,3,4,5} ,{6,7,8,9,10} } //slice 수정 sl..
| Go언어 배열(Array) 배열과 slice의 관계 - 배열은 용량, 길이 항상 같다 - 배열 vs 슬라이스의 차이점을 알아야한다 - 길이고정 vs 길이가변 - 값 type vs 참조 type - 복사 전달 vs 참조 값 전달 - 전체 비교연산자 사용가능 vs 비교 연산자 사용 불가 - 대부분 슬라이스를 사용한다 - 대표적으로 cap() & len() 메서드가 존재한다 cap : 배열, 슬라이스 용량 len : 배열, 슬라이스 개수 - 참고 사이트 더보기 Go Slices: usage and internals - The Go Blog Andrew Gerrand 5 January 2011 Introduction Go's slice type provides a convenient and efficient..
| 문자열 자르기 -go언어에서는 문자열 자르기를 " : " 기준으로 자른다. -":"를 명시하지 않고 일단 index 번호를 적는 경우 아스키 코드값이 출력된다. -":" 앞뒤로 index 번호를 하나 씩 적은 경우 아래와 같이 사용한다. ex) str1[3:] -> 시작 index : 3 부터 시작. str1[:3] -> 시작 index : 0 부터 시작, 3-1 = 2 번째 index에서 종료 문법 문자열[시작index, 마지막 index-1] 예시 var str1 string = "golang" // ":" 를 이용하여 splice 처리를 하면 문자열을 갖고온다. // index 번호만 입력하면 해당하는 index의 코드값인 정수형 값을 가져온다. fmt.Println("ex1 : ", str1[..