go

    [Go] Go 변수와 상수

    이번 시간에는 go의 변수와 상수를 알아보도록 하겠습니다. 변수 선언 Go에서 변수는 var 키워드를 사용해 선언하고 다음과 같이 var 다음에 변수 이름과 타입을 표기합니다. var 변수명 타입 Go는 대부분의 언어와는 달리 변수 이름을 먼저 쓰고 그 다음에 타입을 표기해 줍니다. var a int var b string 다른 언어들과 비교해 보면 // C - 타입을 변수명 앞에 표기 int a; char *b; // 자바 - 타입을 변수명 앞에 표기 int a; String b; 이와 같은 순서로 변수를 선언하는 이유는 코드를 더욱 자연스럽게 읽기 위해서 입니다. 코드를 읽을 때 var i int라는 구문을 보면 '변수 i를 int 타입을 선언한다"는 뜻으로 자연스럽게 해석할 수 있습니다. Go는 변..

    [Go] Gofmt로 코드 서식 지정, Gofmt 도구

    이번 시간에는 gofmt를 사용해 코드 서식 지정과 도구를 사용하는 법을 알아보도록 하겠습니다. gofmt로 코드 서식 지정하기 go에서는 괄호나 들여쓰기 같은 코드의 서식 지정 문제는 개발자 커뮤니티에서도 자주 등장하는 논쟁거리입니다. Go는 코드의 스타일을 자동으로 맞춰주는 gofmt 도구를 제공함으로써 이러한 논쟁을 해결했습니다. gofmt 도구를 사용하면 코드의 타일을 Go에서 사용하는 스타일 대로 맞춰줍니다. // style 이 맞치 않은 코드 package main import "fmt" func main() { type Rect struct{ width int // width height int // height } r := Rect{1, 2}; fmt.Println(r.width * 2 +..

    [Go] Go 정적 타입 언어, 동적 프로그래밍 세미콜론, 모호한 요소제거, 주석 사용법

    이번 시간에는 Go언어 정적 타입언어와 동적 프로그래밍을 알아보도록 하겠습니다. 정적 타입 언어, 동적 프로그래밍 Go는 엄격하게 타입을 확인하는 정적 타입 언어지만, 동적 타입 언어의 특성도 수용하고 있습니다. 변수의 타입을 지정하지 않더라도 컴파일러가 변수에 할당되는 값의 타입을 알아서 결정하며 인터페이스는 덕 타이핑 방식으로 동작합니다. Go의 모호한 요소제거 Go는 코드를 작성할 때 혼동을 줄 수 있는 모호한 문법을 피했습니다. ++(증가)과 --(차감)같은 증감 연산자는 후치 연산으로만 사용이 가능하고 증감 연산에는 반환 값이 없습니다. 즉 i = i++또는 ++i 같은 코드가 허용되지 않습니다. 그리고 C나 C++처럼 변수의 메모리 주소에 접근할 수 있게 포인터 사용을 허용하지만 포인터 연산은..

    [Go] Go 코드 분석기와 웹페이지 띄우기, 기본 문법 - 반복문

    이번 시간에는 Go언어의 코드 분석과 Go를 이용해 웹 페이지를 띄우는 방법을 알아보도록 하겠습니다. Go 참고 문서 The Go Programming Language DevOps & Site Reliability With fast build times, lean syntax, an automatic formatter and doc generator, Go is built to support both DevOps and SRE. go.dev 위 사이트로 들어가면 Go언어를 직접 출력할 수 있는 도구가 있습니다. 해당 도구로 Go언어를 설치하지 않고도 직접 사이트에서 코드를 입력해 출력할 수 있습니다. Standard library - Go Packages Directories ¶ Expand all ta..

    [GO] 리눅스 버전 Go 설치하기 - 헬로우 월드 출력

    이번 시간에는 리눅스에서 Go를 설치해보도록 하겠습니다. 리눅스 버전 Go 설치 Downloads - The Go Programming Language Downloads After downloading a binary release suitable for your system, please follow the installation instructions. If you are building from source, follow the source installation instructions. See the release history for more information about Go releases go.dev 해당 사이트로가 Linux 최신버전을 확인해줍니다. root@localhost:~# GO..

    [Go] GO를 이용해 HTTP Server 만들기

    Go를 이용해 HTTP 서버를 만드는 법을 포스팅하고자 합니다. 1.Go HTTP Sever 만들기 http 패키지는 HTTP 클라이언트 및 서버를 구현할때 사용되는 패키지 입니다. HTTP 서버를 만들기 위한 4가지 방법이 있는데 No request Parsing Manual request Parsing Multiplexer Global multiplexer 이 4가지 중에서 Multiplexer(멀티플렉서)를 사용하는가 안하는가에 따라 두가지로 나뉩니다. 1.No request parsing 가장 기본적인 구성 방법입니다. 어떠한 요청이 와도 동일한 응답을 처리해주는 서버입니다. package main import ( "fmt" "net/http" ) type database map[string]st..

    [Go] Go 언어 프로그래밍 입문 - Go는 어떤언어 인가?

    1. Go 문법의 특징 Go문법의 주요 내용은 다음과 같습니다. Go 문법의 특징 변수와 상수 프로그램의 기본 흐름 제어(if, switch, for) 함수 패키지 시작 전에 기본적인 Go 선언 방법을 알아보자. // 1. 패키지 선언 pacakge main // 2.외부 패키지 임포트 import "fmt" // 3.main 함수 func main() { // 4. 외부 패키지 사용 fmt.Println("Hello World") } 1-1. Go 의 간결함과 유연함 Go는 문법 요소를 줄이고 유연함을 높였습니다. 그렇기에 적은 문법으로도 풍부한 기능을 구현할 수 있습니다. Go에서는 while문이 없기 때문에 for문만으로 반복을 표현할 수 있습니다. 또한 복잡한 if 문 대신에 switch문과 ca..

    [GO] Go - Introduction

    Go - Introduction Go란? Go 언어란 Python과 같은 인터프리터 언어(스크립트 언어)가 아닌 컴파일 언어이다. The Go Programming Language DevOps & Site Reliability With fast build times, lean syntax, an automatic formatter and doc generator, Go is built to support both DevOps and SRE. go.dev 인터프리터 언어 : 원시코드(프로그래머가 작성한 소스코드)를 기계어로 변환하는 과정없이 한줄 한줄 해석해 바로 명령어를 실행하는 언어 컴파일 언어: 원시코드(프로그래머가 작성한 소스코드)를 모두 기계어로 변환한 후에 기계(JVM 같은 가상머신)에 넣고 기..