Go

카테고리 없음

Go VS Nodejs 무엇을 배울까

들어가기에 앞서 처음 백엔드를 공부해보고자 마음 먹었을 때는 근처에 Spring Boot를 공부하는 사람들이 많아서 Spring Boot를 공부했다. 하지만 막상 Spring의 장점을 생각하면 Spring Boot는 대용량 데이터 처리에 용이하다는 것이다. 나는 이것을 잘 써먹지 못했다 대용량 데이터를 겪어본적이 없었기 때문이다. 그래서 이번에 배울 언어와 프레임워크는 많은 데이터 처리양보다는 개발속도가 빠른 것에 치중해서 배워보기로 결정했다. 그래서 일단 내가 배우고 싶은 언어들과 프레임워크 Go vs Node.js를 비교해보고 마지막으로 하나를 선택하고자한다. 많은 백엔드 프레임워크들이 현재 나와있고 각각의 장점이 있다 그렇다면 Node.js에 장단점은 뭘까? Node.js 장점 Node.js는 웹 ..

Go

[Go] Go로 로그 패키지 만들기 (1)

들어가기에 앞서 이 글은 "Go언어를 활용한 분산 서비스 개발"이라는 책을 보고 정리한 내용입니다 먼저 로그 패키지를 만들기 전에 용어를 머리에 집어넣고 가야 편합니다 레코드(Record) : 로그에 정리할 데이터 저장 파일(Store): 레코드를 저장하는 파일 인덱스 파일(Index): 인덱스를 저장하는 파일 세그먼트(Segnment): 저장 파일과 인덱스 파일을 묶어서 말하는 추상적 개념 로그(Log): 모든 세그먼트를 묶어서 말하는 추상적 개념 1. 스토어(Store) 만들기 로그 패키지를 위한 LetsGo/WriteALogPackage/internal/log/stroe.go package log import ( "bufio" "encoding/binary" "os" "sync" ) var ( en..

Go

[Go] append와 가비지 컬렉터의 관계 & if, switch문 알아보기

오늘은 Go의 배열, if문, Switch문을 알아봅시다! 배열 package main import "fmt" func main() { names := []string{"nico", "lyn", "dal"} names = append(names, "flynn") fmt.Println(names[2]) } 배열 선언 방식은 다음과 같습니다 names := []string{~}을 통해 문자열 배열을 만들어 줬습니다 그리고 ppend를 통해 "flynn"을 배열에 추가해주었구요 그런데 여기서 append("flynn)만 적는다면 오류가 됩니다 names = append(어디에 append(추가)할 것인가, "무엇을 추가할 것인가?") (참고 append는 맨 뒤에 값을 넣어준다) 또 여기서 중요한 점은 app..

Go

[Go] $GOPATH/go.mod exists but should not 오류

Go언어 공부를 하다가 이런 오류를 만났다.. 분명 직전 코드까지 잘 실행되다가 어찌저찌 검색하다 go mode tidy라고 입력하면 된다고해서 했는데 계속 저런다. 이유는 GOPATH (터미널에 "go env" 라고 타이핑할시 GOPATHE등 많은 정보가 나옵니다) 로 지정한 곳에 go.mod 파일이 있으면 안되는다는 것! 해결한 방법은 GOPATH로 등록된 폴더에 go.mod가 있길래 rm go.mod로 go.mod파일을 지우고 src안에 현재 작업할 or 분기하지 않은 폴더 즉 main 폴더에 go mod init으로 go.mod를 만들어줬더니 해결이 됐다 나는 이렇게 넣어다. 다행이 참고할 자료가 하나 있어서 금방해결했다.. 참고한 자료 https://velog.io/@artelee/%EC%98%..

Go

[Go] Go의 특별한 인자값 전달

오늘은 Go의 인자값 전달과 어떤 형식으로 인자의 값들을 받고 형식을 지정하는지 그리고 중요한 키워드 defer에 대해 알아보겠습니다 인자값 전달 & 받기 코드부터 먼저 보겠습니다 package main import "fmt" func multply(a int, b int) int { return a + b } func multply2(a , b int) int { return a + b } func main() { fmt.Println(multply(1, 9)) } 위 처럼 두가지 형식이 가능합니다 원래 알고 있던 언어들에 type 지정과 다르게 변수 뒤에 type을 지정해줍니다 보이듯이 func앞에 type을 지정하는 게 아닌 func에도 뒤에 type을 지정해줍니다 multply2처럼 묶을수도 있구..

Go

[Go] Main Package와 접근 제한자 & 변수

오늘은 Go의 Main Package에 대해 다뤄보도록 하겠습니다 이 글은 NomadCoders의 영상을 보고 정리한 글입니다. 우리가 원래 알고있던 언어들의 main의 역할은 시작점이라는 것입니다. 모든 언어가 그렇듯이 Go도 특별하지는 않습니다 main이 시작점이죠 C에서 헤더의 를 사용하듯이 Go에서는 아래처럼 사용할 뿐입니다 Main package main import ( "fmt" ) func main() { fmt.Println("Hello Wrold") } 하지만 오픈소스를 만든다면 컴파일을 하지 않고 다른사람들과 같이 쓰기 때문에 main.go는 필요가 없겠죠? main는 이렇듯 컴파일을 위해서 필요한 것입니다! 그리고 출력문을 작성하기 위해서는 fmt.Println("~"을 타이핑하는데 ..

Sleeg
'Go' 태그의 글 목록