Golang vs Python / Hello world? 1#
Python과 Golang 두 언어를 비교해가면서 기초 학습을 한번 시작해보려고 한다.
왜 둘다 같이 올리냐 하겠지만 어떤 공부든 배움에 있어 하나만 시작하면 확실히 속도감있게 할 수 있다. 하지만 필자는 다르게 생각한다.
공부를 하는데 있어 가장 중요한 것은 그 당시 배움의 기억을 언제 까지 지속하느냐 즉 오랫동안 써먹을려면 머릿속에 오래 남아있어야된다.
오랫동안 머리에 남아있으려면 항상 배운 지식을 사용해야된다는 것과 상상하며 기준이 되는 지식과 비슷한 지식을 비교해가며 공부하는 것이다. 확실히 하나를 집중적으로 배우는 속도감 자체가 느린 단점이 있지만 개발자 직업 특성상 개발자를 내려놓을때 까지 끊임없이 공부를 해야된다. 그래서 필자의 경우 속도보다 영속성을 선택하였기 때문에 같이 비교해가며 공부를 시작하려고 한다. (결론은 필자 마음이다)
그리고 또 의문이 하나 생기기 마련이다. 왜 하필 Python이랑 Golang이냐
어느 기사에서 그 답을 명백히 잘 적어주었다. 그 이유는 다음과 같다. 개발자를 위한 사용 편의성과 개발 속도 향상 측면에서 가장 뛰어난 두 가지 프로그래밍 언어는 파이썬(Python)과 고(Go)다. 현재 파이썬은 스크립팅, 데브옵스, 머신러닝, 테스트의 중심이며 고는 새롭게 부상하는 컨테이너 기반, 클라우드 네이티브 컴퓨팅의 동력이다.
즉 생태계로 분류하면 데이터 사이언스의 강자 Python, 마이크로 서비스 강자 Golang이라 보면 되겠다.
필자의 경우 이 두언어를 배우는 이유는 명확하다 DevOps는 개발과 운영의 조합이다. 즉 단일 팀은 개발에서 테스트, 배포 및 운영 까지 전체 애플리케이션 수명주기를 처리 할 수 있어야된다. 이를 위해 Python의 유연성과 접근성을 이용하여 데이터 시각화 구축하고 사용자 지정 유틸리티를 사용하여 워크 플로를 개선 할 수 있다. 또한 웹애플리케이션 서버나 자동화 툴을 이용하려면 필요하기에 배우는 것이고,
Golang같은 경우 Docker/Kubernetes 절대적이다. 그렇기 때문에 숟가락과 젓가락에 비유하고싶다. 둘중에 하나만 써도 되지만 젓가락은 국을 뜰 수 없기때문에 DevOps 엔지니어는 결국 둘다 알아야된다고 생각한다.
IDE같은 경우 필자의 경우 파이썬은 파이참, 고랭은 고랜드 둘다 jetbrain회사 IDE를 쓰고 (학생인증용)
버전은 아래 그림을 참고하며 앞으로 공부를 진행하려고 한다.
시작에 앞서 일단 두 hello world에 대해 비교부터 하자
- Python
1
|
print("Hello, World!")
|
cs |
- Golang
1
2
3
4
5
6
7
|
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
|
cs |
차이가 명확하게 들어난다. 일단 Golang의 경우 패키지를 정의하고 라이브러리를 넣어준뒤 main함수안에 프린트로 출력하는 구조이다. 어디서 많이 본 구조 아닌가? 그렇다 프로그래밍 언어의 투탑 C언어, 자바랑 비슷하다. 특히 C와 많이 유사한데 단 C와 명백히 다른점이 하나 있는데 세미콜론(;) 안붙인다!! 물론 당연한 얘기지만 다른점도 많다 즉 (필자는 습관으로 붙이긴하다) 그래도 Python보다 어렵다. Hello World 출력문에서만 비교하자면 Python은 그냥 프린터 하나로만 출력한다. 왜? 고급 프로그래밍 언어로 플렛폼에 독립적이며 인터프리터식, 객체지향적, 동적 타이핑 대화형 언어(프롬프트)이기 때문이다. 컴파일러 처럼 전체 코드를 해석하는게 아니라 한줄한줄 해석하기 때문에 간단하게 표현할 수 있는 것이다.(python의 디자인철학 참고 바람) 앞에서 말했듯이 Golang은 마이크로서비스를 지향하는 언어이고 Python은 데이터사이언스에 특화되어 있다는 것을 기억하길 바란다. (특징이나 성능 차이는 다른 블로그가 많이 올려놨으니 참고하길 바란다.)
파이썬과 고에는 장기간에 걸쳐 각각의 사용 사례와 강점을 반영하는 많은 서드파티 소프트웨어의 라이브러리가 축적돼 있다.
파이썬은 오래 전부터 스크립팅 및 자동화, 웹 서비스 빌드, 복잡한 시스템 간의 사용하기 쉬운 인터페이스 구축 용도로 가장 많이 사용되는 언어다. 특히 마지막 범주는 파이썬이 데이터 과학과 머신러닝의 주도적 언어가 된 이유다. 파이썬은 첨단 데이터 분석과 머신러닝 모델에 사용되는 크고 복잡한 라이브러리와 워크플로우를 쉽게 상호 연결할 수 있게 해준다.
고의 성공 중심에는 비동기 프로그래밍 기능과 시스템 고유의 빠른 속도가 있다. 웹 서버, 네트워킹 애플리케이션, CPU에 구속되는 마이크로서비스, 시스템 유틸리티는 모두 고와 잘 맞는다. 도커와 쿠버네티스를 포함해 현대의 컨테이너 기반 애플리케이션 개발을 구동하는 소프트웨어의 대부분은 고로 작성됐다.
고와 파이썬을 두고 선택하는 방법 가운데 하나는 당면한 프로젝트와 비슷한, 고와 파이썬으로 작성된 기존 프로젝트를 살펴보는 것이다. 만들고자 하는 것을 다른 누군가가 이미 만들었을 가능성이 높으므로 언어뿐만 아니라 잘 맞는 지원 라이브러리도 찾을 수 있다.
마지막으로 파이썬과 고, 두 가지 모두로 작성하지 말라는 법은 없다. 애플리케이션의 성능에 민감한 부분에는 고를 사용하면서 개발자 편의성을 위해 파이썬 래퍼나 프론트엔드를 제공할 수 있다.
출처 {
http://www.itworld.co.kr/news/136275#csidxbd9626c92ae39e08439b7a30e16b70b
"고"할 것인가 "파이썬"할 것인가, 비교 선택 가이드 - ITWorld Korea
개발자를 위한 사용 편의성과 개발 속도 향상 측면에서 가장 뛰어난 두 가지 프로그래밍 언어는 파이썬(Python)과 고(Go)다. 현재 파이썬은 스크립팅, 데브옵스, 머신러닝, 테스트의 중심이며 고는
www.itworld.co.kr
}
틀린 내용과 피드백 있을 경우 제보바람