Go(9)
-
[Go] 데이터베이스 Sqlite3 사용하기
Go에는 database/sql 패키지를 지원합니다. 그래서 다른 DB들도 이 함수로 커버가 가능합니다. 간단하게 Sqlite를 연동해 사용하는 프로그램을 작성해보도록 하겠습니다. 파일 분할 database.go 데이터베이스의 원활한 사용을 위해 database.go 파일을 만들어줍니다. 그리고, 아래 코드를 추가해주세요. package main import ( "database/sql" "errors" "log" _ "github.com/mattn/go-sqlite3" ) sqlite3 패키지를 추가하는데 왜 ' _ ' 가 붙는지 이유가 궁금하시면 참고 하시면 좋을것 같습니다. Sqlite 데이터베이스 파일을 열고, 테이블을 생성하는 함수를 작성하겠습니다. func InitDB(file string) ..
2020.03.11 -
[Go] 구조체와 errors를 이용, 은행 계좌 만들기
0. 앞서 들어가기전에 ... src폴더에 accounts 폴더를 생성한후, 그 아래 accounts.go 파일을 만든다. 왜 만드냐면 accounts.go에 은행 계좌 구조체를 만들고, 그에 따른 부속 함수들을 만들 것이기 때문이다. 1. Account 구조체 만들고, 생성 함수 만들기 은행 계좌 프로그램을 작성하는데 계좌 구조체가 빠지면 안된다. 이 Account 구조체에는 Owner과 Balance가 있다. package accounts //Account structure type Account struct { owner string balance int } 그리고 Account 구조체 인스턴스를 생성해 그 메모리 주소를 넘겨주는 NewAccount함수도 만들어 주자. //NewAccount wit..
2020.02.09 -
[Go] Go Routine과 Channel 사용
0. goroutine의 개념 고루틴(이하 goroutine)은 Go 런타임이 관리하는 논리적 쓰레드입니다. 고루틴은 OS의 쓰레드 보다 훨씬 가볍게 비동기 처리를 구현하기 위해 만든 것으로 OS 쓰레드 보다 많은 면에서 우월성을 드러내고 있습니다. 예시로, 고루틴은 OS쓰레드와 1대1로 대응되지 않고, 훨씬 작은 공간을 차지 합니다 그리고 고루틴은 메모리 측면에서도 효율적입니다. 일반적으로 OS쓰레드가 1메가바이트의 스택을 차지하는 반면, 고루틴은 몇 키로바이트의 작은 스택을 갖습니다. 이제, 간단한 프로그램을 고루틴을 사용하여 더 빠르게 만들어 보도록 하겠습니다. 1. non-goroutine 프로그램 작성 간단한 윈도우 커맨드 프로그램의 명령어 중 하나인, ping을 따라하는 프로그램을 만들어 보겠..
2020.02.09