컴파일러는 package 이름이 main인 것부터 찾아내기 때문에 package의 이름을 main 으로 설정해야 컴파일할 수 있다. (파일 이름 == 패키지 이름)그리고 함수가 존재해야 실행 가능하다.ex.fmt -> formatting을 위한 패키지함수를 export
naked return naked return 은 리턴할 값을 따로 지정해주지 않아도 다음과 같이 반환할 수 있다. (하지만 지정해줘도 상관없음.) defer defer는 함수가 종료되고 나면 실행하도록 한다. for golang에서의 반복문은 for 밖에 없다. (일단 여기 강의에선 그럼.) range 는 array에 loop를 적용할 수 있게 해준다...
if문 go언어에서는 다음과 같이 조건식과 함께 변수를 선언할 수 있다. 그리고 else 도 생략이 가능하다.
struct의 이름(struct 내 변수 포함)을 대문자로 시작해야 다른 파일에서 해당 구조체에 접근이 가능함. (대문자: public, 소문자: private)
변수를 작성할 때에는 Go 키워드 var 를 사용하여 선언한다.var 뒤에 변수명을 적고, 그 뒤에 변수 타입을 적는다.변수 초기값을 할당할 수도 있다.\+ 선언된 변수를 사용하지 않으면 에러를 발생시킨다.같은 타입의 변수가 여러 개 있을 경우, 변수들을 나열하고 마지
비트단위 연산을 위해 사용됨.포인터연산자는 & 혹은 \* 을 사용하여 해당 변수의 주소를 얻어내거나 반대로 Dereference 할 때 사용한다.하지만 Go에는 포인터 연산 기능을 제공하진 않는다.조건식을 괄호() 로 감싸지 않아도 된다.또한 if문의 조건식은 반드시
1. 클로저 (Closure) Go 언어에서 함수는 클로저(Closure)로도 사용될 수 있다. 클로저 란 함수 바깥에 있는 변수를 참조하는 함수값을 일컫는데, 이때의 함수는 바깥의 변수를 마치 함수 안으로 끌어들인 듯이 그 변수를 읽거나 쓸 수 있게 된다. 2. 배열 (Array) 1. 배열의 선언 배열은 연속적인 메모리 공간에 동일한 타입의 데이터...
일반적으로 패키지는 라이브러리로서 사용되지만, "main" 이라고 명명된 패키지는 Go Compiler에 의해 특별하게 인식된다.패키지명이 main인 경우 컴파일러는 해당 패키지를 공유 라이브러리가 아닌 실행 프로그램으로 만든다.패키지를 공유 라이브러리로 만들 때에는,
Go 는 내장 타입으로 error 라는 interface 타입을 갖는다.go 함수가 결과와 에러를 함께 리턴한다면, 그 에러가 nil 인지를 판단하여 에러를 체크할 수 있다.nil이면 에러가 없는 것이고, nil이 아니면 에러를 알 수 있다.log.Fatal()은 메시
Go 루틴 (goroutine) 1. Go 루틴 Go에서 go키워드를 사용하여 함수를 호출하면, 런타임 시 새로운 goroutine을 실행한다. goroutine은 비동기적으로 (asynchronously) 함수를 실행하므로, 여러 코드를 동시에 실행하는데 사용된다.
채널은 make() 함수로 만들 수 있으며, 채널 연산자 <-를 통해 데이터를 주고 받는다.채널은 보통 goroutine들 사이 데이터를 주고 받을 때 사용되는데, 별도의 lock은 필요없이 데이터를 동기화할 수 있다.채널을 생성할 때는 어떤 타입의 데이터를 보낼
Go 와 Gin 웹 프레임워크를 사용하여 RESTFul 웹 API를 개발한다.웹 서비스에서 자원을 요청하거나 핸들링할 때 적용되는 규칙이다.위의 자원이란 보통 HTML 문서(웹 페이지)나 JSON 문서(단순 정보 조회)대부분의 RESTful API는 HTTP를 사용한다
gin-gonic으로 RESTful API 개발하기 (1) 에서는 GET 을 통해 통신하는 방법을 소개했다.이번에는 기존 데이터에 새로운 데이터를 추가하는 방식인 POST 요청에 대해 알아본다.위와 같이 코드를 작성해주고 나면 HTTP POST 요청을 보낼 수 있다.한
golang object → string, \[]bytestring, \[]byte → golang object\-> 여기서 golang object 란 golang의 데이터 구조를 의미함.구조체 (struct):go에서의 구조체는 필드(속성)을 가지는 사용자 정의 데