Why Go

Wang_Seok_Hyeon·2023년 8월 6일
post-thumbnail

Go와의 만남.

golang을 처음 알게 된 건, 2020년이다. 이 때, 소프트웨어를 업으로 삼고 싶다는 생각을 처음으로 가졌다. 그러기 위해서는 하나의 언어를 잘 마스터할 필요가 있다고 생각했다. 당시에 내가 접해 봤던 언어는 Python 조금, R 조금이 다 였고, 당시 프로그래밍의 지식이 적었던 시절, 수집한 정보에 따르면
Go는 빠르다. Go는 오픈 소스로 만들어졌으며, Go는 쉽게 배울 수 있다.
이 정도의 정보량만으로 Go를 선택했던 것 같다. Python을 하면 레퍼런스도 많지만 느리다는 점이 치명적일 거라고 생각했다.

물론, 실제 서비스를 생각해 보면 Python이 극악으로 느린 게 아니라는 걸 알게 된 현 시점에서는 Python을 보는 게 더 좋은 선택이었을까도 싶다.

군대를 가기 전 스스로 3개월을 학습했을 때가 포인터까지를 마스터하지 못했던 것 같다. 지금에 와서는 포인터까지 개념을 이해하고 사용하는데 하루면 되지만... 그럴 때가 있었다.

다시 Go

첫 언어로 Java를 학습했다. 최초의 Go를 하겠다고 생각했던 것과 달리 Java를 한 이유는 많이 사용되기 때문이고 무엇보다 어렵다.라는 요소가 컸던 것 같다. JS나 Python과 다르게 엄격하며, 많은 CS 지식이 필요하고 적용되어 있기 때문에 결국 개발자가 학습하고 익혀야 할 기본기를 배울 수 있으리라 생각했고, 최초로 이러한 문법 학습에 익숙해지면 다른 언어의 경우 훨씬 수월할 것이라고 생각했다.

실제로 이 생각은 잘 맞아 떨어졌다. GC가 있는 언어기 때문에 Java를 익힌 경험을 통해 Go를 보니, Go가 어마어마하게 깔끔하다는 생각을 했다.
물론, 이 때 깨달은 건, Go를 첫 언어로 했으면 왜 쉽다고 얘기하는지 이해하지 못했을 거라는 것...
Java를 해 봤으니까. Go가 쉽다고 생각할 수 있었다.
하지만 Go는 깊다. 그리고 정말 많은 것을 할 수 있다!

재밌 Go

때마침 GopherCon Korea 2023 행사가 있어서 참여했다.
Gopher 라는 이름으로 마스코트가 불린다는 걸 이때 처음 알았다.
귀여운 포토월이 반겨줬으며 행사 내용도 유익하고 알찼다. 특히나,
Go를 이용해서 어떤 토이 프로젝트를 해야하나 어떻게 학습을 깊이 있게 할 수 있나의 방향성과 더불어서 근본적인 개발자가 가질 수 있는 능력과 내용에 대해서 점검해 볼 수 있는 시간이었다.

특히, 오프라인에 Q&A 부스가 상당히 좋았는데, 질문이 없었지만(질문할 수준이 안 됨...ㅋㅋ) 부스에 가서 질문하는 내용들을 들으면서 다른 분들이 어떤 어려움을 겪고 있는지, 또는 어떤 고민이 있는지를 알고 들으며 생각할 수 있었다. 재밌는 건 질문하면 연사님 답변 외에도 주변의 답변이 들어오는 경우들이 왕왕 있었다.

이번 컨퍼런스의 내용 덕분에 Go에 대한 깊이를 더함과 더불어 더 학습해 볼 내용들에 대해서 알게 되었다. GoRoutine이나 Context 등 아직 모르는 부분도 많았고 이러한 요소들을 키로 학습을 이어 나갈 수 있다는 생각이 든다. 특히, Go가 재밌는 이유는 Go의 경우, 이미 하나의 언어를 사용할 수 있는 사람이 필요와 새로운 도전을 위해서 Go로 전환하는 경우가 많기 때문이라고 생각한다.

나의 경우는 학습자이면서 더불어 메모리 관리하는 언어이며, 많은 오픈소스에 기여하고 있는 Go 언어를 학습하고 이를 통해 오픈소스에 기여할 수도 있고, 또한 높은 성능을 보장해준다는 점이 Java 보다 강점이 있으리라 생각하기 때문에 시기 상의 문제지 Java를 대체할 수 있는 언어 중 하나가 될 수 있을 것 같다는 생각 자체도 재밌Go 이러한 언어를 선택해 학습해 더 좋은 서비스를 만들어 보고 싶다.

GOpherCon Korea 2023 다시 보러 가기

profile
하루 하루 즐겁게

0개의 댓글