[Go] 2. Hello World 뜯어보기

garam0410·2021년 4월 1일
0

Golang

목록 보기
2/6
post-thumbnail

Hello World

프로그래밍을 처음 시작하면 항상하는건 Hello World 출력하기이다.
지난 포스트에서 Hello World를 출력해 보았는데, go.mod 파일이 없다는 오류로 시간을 엄청 잡아 먹었었다.
검색해보면 나오는 Go 강좌에서는 그런 파일조차 나오지 않았는데, 해결하는데 애먹었다.

어쨌든 Hello World를 출력하기는 했는데, 다른언어와 비교를 해보았다.

C언어

#include “stdio.h”

int main(){
	printf(“Hello World!);

	return 0;
}

C#

using System;
namespace HelloWorld
{
	class Hello
	{
		static void Main()
		{
			Console.WriteLine(Hello World!);
		}
	}
}

Go

package main

import "fmt"

func main() {
	fmt.Println("Hello World!")
}

Golang은 C와 많이 닮아있다. 그리고 C#의 경우는 depth가 깊다 (중괄호를 많이타고 들어가게 된다.)
중괄호가 많으면 잘정리되지 않은 코드들은 알아보기가 쉽지가 않았던것 같다...ㅎ

Hello World 뜯어보기

코드를 다시한번 보자.

Go

package main

import "fmt"

func main() {
	fmt.Println("Hello World!")
}

먼저 첫줄에

package main

이 있는 것을 확인할 수 있다.
여기서 Pacakge가 있는데, 비슷한말은 아래와 같은게 있다.

  • Package : 기능들을 묶어 놓았다.

  • Library : 프로그램을 만들 때 필요한 기능들을 묶어 놓은 것!, 도서관에서 책을 뽑아 쓰듯이 필요한 기능을 가져다 씀

  • Module : 기능을 묶어 놓은 것, Library 보다 좀더 세세한 부분을 구성

  • Framework : 기능을 묶어 놓은 것, 절차가 포함됨, 매뉴얼대로 사용해야함

  • Engine : 기능의 묶음 뿐만 아니라, 다른 프로그램이나 툴을 함께 묶어 놓은 것

어쨌든 package main‘main’ 이라는 패키지를 선언해 주었다는 의미이다.
Golang에서 항상 필수로 package의 선언이 필요하다. 패키지 이름은 사용자가 직접 정의 해줘도 되는데, main이라는 package는 프로그램의 시작점을 포함한다는 의미를 가지고 있다. 즉, 프로그램이 시작되는 소스파일은 main이라는 package를 선언해 주어야하고, 기능들을 묶어 놓은 라이브러리는 사용자가 직접 package 이름을 정의할 수 있다.

import “fmt”

import는 무언가를 가져온다는 의미로, C언어에서 include와 비슷하다. 여기서 import “fmt” 는 fmt라는 package를 가져온다는 의미이다. ‘main’ 패키지에서 ‘fmt’ 패키지의 기능을 가져다 쓰기 위해서 선언해준 것이다. Golang에서 ‘fmt’ 는 표준 패키지를 의미한다.

fmt는 포맷팅을 의미한다.

만약, 여러 가지 package를 import 해주고 싶을 때는,

import(
	“fmt”
	“sort”
	“hhtp”
)

위와 같이 괄호를 이용해서 선언해 줄 수 있다.

func main(){
	fmt.Println(“Hello World!);
}

func 는 function의 약자이고, 함수를 의미한다. 즉, main이라는 함수를 정의해 주었다는 의미이다.
main은 또다른 의미를 가지고 있는데, 프로그램은 main() 함수를 시작으로 프로그램이 동작한다는 의미를 가지고 있다.

fmt.Println(“Hello World!);

fmt 다음에 . 을 붙여줌으로써, fmt 패키지에 포함되어 있는 어떤 기능을 수행할 수 있도록 해준다.
화면에 출력해주는 Println()라는 기능을 수행하게 해주는 코드이다.

주석 포함 코드

Go 소스파일

package main // 패키지 선언, main 패키지는 프로그램의 시작점을 의미하는 패키지

import "fmt" // 패키지 불러오기, "fmt" 라는 Golang 표준 패키지를 불러온다. 

func main() { // 프로그램이 시작하면 실행되는 함수
	fmt.Println("Hello World!") // "fmt" 패키지 안에 있는 화면에 요소를 출력하는 함수
}

0개의 댓글