프로그래밍/golang

해외에서 핫하다는 golang 입문 정리 첫번째

콘파냐 2020. 12. 5. 01:21
반응형

안녕하세요.

최근 웹 개발 위주로 해가면서 많은 것들을 배워가고 있습니다.

개인적으로 웹 개발을 위한 언어와 프레임웍의 선택은 단순할 수록 좋다고 생각합니다. 

그리고 언어의 선택은 성능을 따져 선택하겠지만 일반적인 웹에서의 언어의 성능은 그리 크게 작용하지 않는다고 생각합니다.

일반적인 성능의 지표는 for 루프겠죠. 하지만 네트워크 상에서 지연되는 시간, DB, I/O 처리가 웹 서버의 거의 전부라고 봐도 무방합니다.

그런 의미에서 언어의 성능보다는 요청 처리 모델, DB의 효율적인 설계가 더 중요하다고 생각합니다.

또한 웹 프레임워크가 어떤 방식으로 요청을 처리하는지에 따라서 장단점이 갈리기 때문에 웹 프레임웍의 선택도 따져봐야 하긴 합니다.

이렇게 보통은 DB의 설계 또는 캐시의 올바른 설정 작업의 비동기적인 처리 등이 성능에 미치는 영향의 90% 이상을 차지한다 생각합니다.

그럼에도 Golang의 성능 대비 단순함은 매력적인 요소일 수 밖에 없습니다.

아직 Golang에 대해서 잘 모르지만 기본 문서를 보고 느낀점을 적어보려 합니다. 고 언어를 배우는 이유는 일종의 취미생활입니다. 앞으로 만들 웹 서비스들을 포팅하면서 성능비교도 해볼 생각입니다. 두더지 넘 귀여워서 배워보고 싶어지지 않나요?


고 언어의 아이콘은 아주 귀엽습니다. 두더지 요녀석! 하고 매일 30분씩 공식문서를 읽다보니 전체적인 육곽이 잡히네요.

오늘은 간략하게만 정리하고 세세하게 정리하려고합니다.

C언어와 닮았지만 차이를 미묘한 차이점이 존재합니다.

예를들어

1. 

C언어라면

int i;

고 라면

var i int

입니다.

타입명이 변수 명 뒤로 간다는 것이 주의해야 합니다.

고 홈페이지에 있는 이미지입니다. 너무 귀엽네요.

2. 타입추론이 가능하다. 

i := 5

와 같이 :을 추가하여 대입 값에 대한 타입추론을 가능하게 하여 타입명을 명시하지 않는 표현법입니다.

3. (do) while, until, 등의 문법이 없다. for 문으로 모든 걸 표한합니다.

3. 포인터가 있지만 포인터로 값에 접근 시 -> 가아닌 .으로 통일해서 접근합니다. 이 부분은 표현의 단순성을 위한 선택같습니다. 포인터를 모르는 상태에서 이부분은 어려울 수도 있을 것 같습니다. 자바와 C의 중간같네요.

4.환경 변수 GOPATH의 설정이 필요한다. 이건 프로젝트에 따라서 변경해야하는 건지 아직은 모르겠지만 좀 불편한 부분 같기도 합니다.

5.  header파일이 없고 package를 웹 상의 경로에서 받아오는 형식입니다.

막상 쓰려니 이정도 밖에 생각이 안나네요. 고가 워낙 심플한 언어라 그렇습니다. 하지만 강력하지요.

정리하면 대략적인 것은 C언어와 닮아 있습니다.

한국에서는 아직까지는 외국에 비해서 사용처가 적은 듯 싶습니다. 구글에서 만들었으니 구글내에서는 많이 쓰겠죠.

다음에는 VS코드에서 환경을 설정하고 Hello World를 찍어보겠습니다.

반응형