IT/Go

Go언어란

iamhyeon 2024. 12. 26. 09:57

1. 타입스크립트 (TypeScript)

  • 개발 회사: 마이크로소프트(Microsoft)
  • 발표 연도: 2012년
  • 목적: 타입스크립트는 자바스크립트의 상위 집합(Superset)으로, 자바스크립트의 동적 타이핑을 보완하는 정적 타이핑을 제공하여 코드 품질과 유지 보수성을 개선하는 데 초점을 맞추었다.
  • 배경: 자바스크립트는 웹에서 널리 사용되는 프로그래밍 언어지만, 동적 타이핑으로 인해 큰 프로젝트에서는 버그나 오류를 찾기 어려운 문제점이 있었다. 마이크로소프트는 이 문제를 해결하기 위해 타입스크립트를 만들었다. 타입스크립트는 컴파일 타임에 오류를 잡아내어 개발자들이 더 안전하고 효율적으로 코드를 작성할 수 있도록 도와준다.
  • 주요 특징:
    정적 타입 시스템
    클래스 기반 객체 지향 프로그래밍
    ES6+ 기능을 지원
    자바스크립트와의 호환성

2. 고 언어 (Go)

  • 개발 회사: 구글(Google)
  • 발표 연도: 2009년
  • 목적: Go는 시스템 프로그래밍 언어로, 병렬 처리와 성능 최적화에 초점을 맞추고 개발되었다. 구글의 엔지니어들이 구글의 대규모 인프라에서 효율적으로 동작할 수 있는 언어가 필요해서 개발하게 되었다.
  • 배경: 구글은 자사 인프라를 관리하고 대규모 시스템을 구축하는 데 필요한 효율적인 언어가 필요했다. 기존의 언어들은 성능과 개발 속도 면에서 한계가 있었기 때문에, Go는 단순하면서도 효율적인 멀티스레딩과 네트워크 프로그래밍을 지원하는 것을 목표로 만들었다.
  • 주요 특징:
    빠른 컴파일 속도
    간단하고 직관적인 문법
    내장된 병렬 처리 (goroutines)
    메모리 관리 (자동 가비지 컬렉션)
    강력한 표준 라이브러리

3. 리액트 (React)

  • 개발 회사: 페이스북(Facebook)
  • 발표 연도: 2013년
  • 목적: 리액트는 사용자 인터페이스(UI)를 구축하는 라이브러리로, 효율적이고 선언적인 방식으로 UI를 구성할 수 있도록 만들어졌다. 페이스북의 개발팀은 대규모 애플리케이션에서 UI의 관리가 복잡해지는 문제를 해결하고자 했다.
  • 배경: 페이스북은 자체적으로 복잡한 UI를 관리하고 최적화하는 데 어려움을 겪고 있었다. 기존의 방식인 DOM(Documents Object Model)을 직접 수정하는 방식은 성능에 큰 영향을 미쳤다. 이에 따라, 리액트는 Virtual DOM을 도입하여 DOM의 업데이트를 최적화하고, 선언적 방식으로 UI를 관리할 수 있도록 만들었다.
  • 주요 특징:Virtual DOM을 통한 성능 최적화컴포넌트 기반 개발 방식
    선언적 UI 설계
    JSX(JavaScript XML) 문법


|   Go 언어

- Go(Golang) 구글에서 개발한 오픈소스 프로그래밍 언어

- 2009년 처음 공개되었다

- 성능, 간결함, 병렬 처리에 초점을 맞추어 설계되었다

- 대규모 네트워크 어플리케이션과 클라우드 기반 환경에서의 사용을 염두에 두고 만들어졌다

 

Java와의 차이점

  Go  Java
병렬 처리 고루틴(goroutine) 기반, 경량 스레드 기반, 상대적으로 무거움
객체지향 지원 제한적 지원 (클래스와 상속 없음) 완전한 객체지향 (클래스와 상속 지원)
컴파일과 실행 네이티브 바이너리로 컴파일, 실행 속도 빠름 JVM 에서 바이트코드 실행, 플랫폼 독립성 강함
에러처리 명시적 에러 반환 (error 타입 사용) 예외(exception) 기반 에러 처리
문법 간결하고 직관적 풍부하지만 복잡한 문법

 


|   Hello World 출력

 

package main

import "fmt"

func main() {
	fmt.Println("hello world")
}

VS Code - Code Runner (extension)   단축키 Ctrl+Alt+N

 

fmt

- Go 언어에서 포맷팅된 I/O를 제공하는 패키지

- 이 패키지는 콘솔에 텍스트를 출력하거나 입력을 받을 때 사용된다

- fmt 패키지의 주요 함수로는 Println, Printf, Sprintf, Scanln 등이 있다.


|   실행 파일로 빌드하기

 

터미널로 소스코드가 있는 위치로 이동후 아래 명령 수행

$ go build 소스파일이름

 

- 윈도우의 경우 소스파일이름.exe가 생성된다.
- Mac의 경우 소스파일이름 의 실행 파일이 생성된다.

 

 

- 윈도우에서 실행할 경우 명령프롬프트에 소스파일이름.exe를 입력한다.
- Mac에서 실행할 경우 터미널에 ./소스파일이름을 입력한다.

 

 

 

 

 


refer to

https://github.com/leekh4232/study-golang/tree/main/01-HelloGo

 

 

 

 

반응형

'IT > Go' 카테고리의 다른 글

메서드 리시버  (0) 2025.01.29
Golang Live Reloading command line utility  (0) 2025.01.23
Java Spring Boot 애플리케이션에서 Go REST API 호출  (0) 2025.01.22
Go 변수, 데이터타입  (0) 2024.12.26
Go 언어 개발 환경 구성  (1) 2024.12.26