Skip to content

[2019년 4월 ~ 10월] Go 언어를 배우면서 사용해본 모든 예약어 + 키워드 + 문법을 정리해둔 저장소입니다.

Notifications You must be signed in to change notification settings

jjmin321/Go_studybook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

🚀 Go_studybook

🔖 2019년 4월에 (https://medium.com/@kevalpatel2106/why-should-you-learn-go-f607681fad65) 게시물을 보고 나서 Go언어 공부를 시작하게 되었습니다.

📁 모든 파일은 공부하면서 다른 입문자들의 GO언어 공부에 도움되었으면 좋겠다는 마음으로 정리해둔 파일입니다.

👨‍💻 GO_Files/StudyBook - GO언어에 존재하는 총 25개의 문법, 파일 입출력에 대한 다양한 예제들을 정리해뒀습니다.

🔥 Go와 객체지향 프로그래밍 언어의 차이점

https://jjmin321.github.io/development/GO%EC%99%80-%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%EC%96%B8%EC%96%B4%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90/

📓 Go 역사

2007년 3명의 구글의 개발자들이 C++의 복잡성이 싫어 개발을 시작

  • 켄 톰프슨 : 유닉스 , B언어, C언어, UTF8 개발
  • 롭 파이크 : 인페르노, UTF8 개발
  • 로버트 그리즈머 : 크롬 자바스크립트 엔진 개발

☁️ Go 특징

  1. 컴파일 속도가 매우 빠른 컴파일 언어
    • 컴파일 언어이지만 컴파일러가 소스 코드를 해석하는 pass 수를 줄여서 인터프리터 언어처럼 빠르게 동작
  2. 언어의 문법이 간결하여 높은 성능과 생산성을 낼 수 있다
    • Go는 기본 라이브러리가 풍부하며, 써드파티 라이브러리가 많고, 코드가 간결하고, 키워드는 약 25개 정도로 적음
  3. 객체지향 언어들과 표현 방식이 매우 다르다
    • 문법 자체는 익히기 쉽지만 Go로 제대로된 객체지향 프로그래밍을 하기 위해선 많은 숙련이 필요하다
  4. 고루틴이라는 비동기 매커니즘을 제공하여 이벤트 처리 및 병렬 프로그래밍 작성이 쉽다
    • 고루틴은 OS에서 관리하는 경량 스레드보다 더 가볍기 때문에 CPU 코어갯수와 무관하게 수백, 수천만 고루틴을 작성해도 성능에 문제가 발생하지 않는다

🔑 Go 키워드 총 25가지

break, default, func, interface, select, case, defer, go, map, struct, chan, else, goto, package, switch, const, fallthrough, if, range, type, continue, for, import, return, var

📖 Go 터미널 명령어

  • go build : 소스 파일 자체의 정보만을 사용하여 Go 바이너리를 빌드한다. 별도의 makefile은 없다.
  • go test : 유닛 테스트 및 마이크로벤치마크
  • go fmt : 코드 서식 지정
  • go get : 원격 패키지의 검색 및 설치
  • go vet : 코드 내의 잠재적인 오류를 찾아내는 정적 분석기
  • go run : 코드를 빌드하고 실행하는 바로 가기
  • godoc : HTTP를 통해 문서 확인
  • gorename : 변수, 함수 등을 type-safe 방식으로 이름 변경
  • go generate : 코드 생성기를 호출하는 표준 방식

Go를 사용한 서비스

  • Google
  • NetFlix
  • Twitch
  • Twitter
  • Dropbox
  • Uber
  • Docker
  • MongoDB
  • Paypal

About

[2019년 4월 ~ 10월] Go 언어를 배우면서 사용해본 모든 예약어 + 키워드 + 문법을 정리해둔 저장소입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages