일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- MongoDB Realm
- 고 배열
- 우분투
- 자바 디자인 패턴
- 자바
- flask
- golang
- String 함수
- 12761 돌다리
- 파이썬
- 백준 사이트
- 백준
- 백준 12761번
- 자바 디자인패턴
- go
- ddd
- 도메인 주도 개발
- 정렬
- hadoop
- 도메인 주도 개발 시작하기
- 하둡
- http 완벽가이드
- 트리 순회
- 백준 12761
- domain driven develop
- 몽고디비 렘
- golang struct
- http 개념
- 12761번 돌다리
- 백준 파이썬
- Today
- Total
목록GO 언어 (12)
개발바닥
Go Struct란? Go의 struct는 필드들의 집합체이며 필드들의 컨테이너이다. Go에서 struct는 필드 데이터만을 가지며, 메서드를 갖지 않는다. Go 언어에서는 class가 없지만 객체지향 프로그램(OOP) 스타일로 프로그램을 할 수 있다. go의 struct는 메서드에 붙일 수도 있고, embedding으로 상속도 흉내 낼 수 있다. 즉, Go에는 전통적인 OOP 언어가 가지는 클래스, 객체, 상속 개념이 없다. 구조체 정의 구조체 정의하는 방식은 3가지 방식이 있다. 1. 일반 구조체 2. 중첩된 구조체 (nested struct) 3. 임베디드 필드 구조체 (embedded struct) // 1. 구조체 정의 type User struct{ 필드명 타입 ... 필드명 타입 } // 2..
슬라이스(Slice) 란? Go 배열은 고정된 배열크기 안에 동일한 타입의 데이터를 연속적으로 저장하지만, 배열의 크기를 동적으로 증가시키거나 부분 배열을 발췌하는 등의 기능을 가지고 있지 않다. Go Slice는 동적 배열 타입(배열을 가리키는 포인터 타입)이다. 배열과 달리 고정된 크기를 미리 지정하지 않을 수 있고, 차후 그 크기를 동적으로 변경할 수도 있고, 또한 부분 배열을 발췌할 수도 있다. 용어 정리! 정적(Static) : 컴파일 시점(Compile)에 결정 동적(Dynamic) : 실행 시점(Runtime)에 결정 배열과 슬라이스 선언 비교 var v [10]int // 길이가 10인 int형 배열 var s []int // int형 슬라이스 선언 s2 := make([]int, 5, 1..
Go 언어에서 채널은 고루틴을 연결해주는 통로(파이프)이다. 기본적으로 채널은 양방향이고 고루틴은 채널을 통해 데이터를 주고 받는데 사용되는데, 송신,수신이 준비될 때까지 채널에서 대기함으로써 별도의 lock을 걸지 않고 데이터를 동기화하는데 사용된다. 여기서 잠깐! 동기와 비동기 개념에 대해서 확인! 동시성 프로그래밍을 하게되면 가장 크게 대두되는 문제점이 바로 동기화이다. 동기는 말 그대로 동시에 일어난다는 뜻이다. 요청과 그 결과가 동시에 일어난다는 약속인데요. 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야 한다. 즉, 동기방식은 결과가 주어질 때까지 아무것도 못하고 대기해야 한다. 반대로 비동기는 요청을 보냈을 때 응답 상태와 상관없이 다음 동작을 수행 할 수 있다. 채..
고루틴이란? 고루틴은 GO언어에서 프로그램의 동시성을 쉽게 구현하고 기존의 단순 스레드 기반의 구현에 비해 효율적인 동작을 수행해 내기 위해 만든 작업단위 이다. 기본적으로 메인함수를 실행하게 되면 메인 고루틴이 실행되게 된다. 메인 고루틴이 종료하게 되면 즉시 다른 고루틴들이 종료된다. (멀티 스레드를 활용할 때는 항상 예상 가능 하도록 코드를 구현해야된다.) 즉, Go 언어로 동시에 실행되는 모든 활동을 고루틴이라고 한다. 여기서 주의할 점 CPU의 스레드와 OS 영역에서 다뤄지는 스레드는 서로 지칭하는 대상이 다르다. CPU의 스레드는 한개의 코어를 OS에게 여러개로 인식시켜 동작하도록 하는 하드웨어 영역의 개념이고, 고루틴에서 사용하는 스레드는 OS 영역에서 다뤄지는 스레드로 OS 하위의 소프트웨..