팰월드 하다보니 서버에 지금 몇명이 온라인 상태인지 알 수 없어서
디스코드 봇이 있나 하고 찾아봤는데 잘 만든 코드들이 오픈소스로 풀려있었습니다.
저야 익숙하니 상관없는데
가져다 쓰시는 분 대다수가 개발자가 아닙니다.
그런 분들한테
"conda 설치해서 Python 몇 버전을..."
"nvm 설치해서 NodeJS는 몇 버전을..."
"Java는... 이미 설치 되어 있으시다구요? 그럼 Java 11을 또 설치해서..."
이러면 시작부터 못하는 분들이 많아서
일요일 하루를 어린 뷕셩이 니르고져 홇배이셔도(?)
디스코드 봇을 창제하여 반포하시기에 이르는데...
https://github.com/juunini/palworld-discord-bot
쑻, 코이츠. 'Code' 의 진정한 치카라를 마다...
여러분 옛날에 콤푸타실에서 뻐-켓먼스터 할 때
GBA Emulator 돌릴 때 뭐 설치해서 쓰셨습니까?
디스켓(1.44MB)에 420KB 남짓한
.exe
파일 하나랑 옆에 파일 3개정도 같이 넣어가지 않으셨습니까?
거기다가 포켓몬스터 옐로우버전 롬파일도 같이 넣고
디스켓이란다. 게다가 1.44MB라니, 틀니 압수 경고다
GBA Emulator를 실행하는데
자바도 필요없고
파이썬도 필요없고
아무것도 필요 없습니다.
이제 다들 납득이 가십니까?
프로그래밍 언어는 크게 컴파일 언어와 인터프리터 언어로 나뉩니다.
컴파일 언어는 '빌드' 라는 행위로 실행파일을 만들어내는 언어고
인터프리터 언어는 만든 코드를 실행하기 위해 해당 언어의 인터프리터가 필요한 언어입니다.
야! 자바는 컴파일 언어인데 왜 실행하려면 자바가 필요하냐?! 그럼 자바는 인터프리터 언어냐?!
인터프리터 언어 맞는데요?
모르는 분들을 위해 Golang의 Hello World 예제를 보여드리면
대략 이렇습니다.
이렇게 빌드 된 파일은 실행할 곳에 가져다가 실행만 하면 됩니다.
실행할 곳에 Golang이 없어도 되죠.
아 그래요?
그런데 인터프리터 언어랑 컴파일 언어랑 대결 붙이면 반칙이니
잠깐 옆길로 새는 것 같지만 rust랑도 한번 붙여보겠습니다.
그런데 rust의 Hello World 예제를 빌드한 용량의 상태가?!
1.4MB vs 295K
아, 고랭도 플래그 붙여서 빌드하면 용량이 줄어들죠
(뒤에 짤랐는데 rustc에도 플래그 잔뜩 붙어있음)
손나 바카나?!
하지만 rust에는 치명적인 단점이 있는데,
빌드가 한 평생 걸린다는 점입니다.
빌드 시간과 용량&성능을 등ㄱ...ㅏ? 가 맞나?
암튼 그렇습니다.
하지만 C가 나타나면?
어... 16KB?
여러분 C 쓰세요
그럴거면 어샘블리로 하지 슈퍼마리오가 40KB다
https://www.youtube.com/watch?v=5ZXOV1ma35g
위 화면을 보시면 amd64 환경 우분투에서
이렇게 굉장히 쉽게 크로스 컴파일이 됩니다.
이거 되는 언어 있냐구? 칙쇼!
빌드 시간도 말도안되게 빠릅니다.
프로젝트가 얼마나 크든 몇 초 안에 다 돼요.
여기서 Golang의 특별함이 드러나는게
컴파일 언어로 작업하시는 분들 빌드 하고 나면 다들
화장실 갔다가
담배도 함 피고
커피도 마시러 어딘가 갔다가
바람 좀 쐬고 오면
아직 안끝나있습니다
아닌데! 나 자바 쓰는데 빌드 빨리 되던데!
자바로 빌드한거 JVM 있어야 실행되면...
그럼 그 빌드 반쯤은 압축으로 봐도 되지 않냐며
국내에서 취업할꺼면 자바, 파이썬, 노드 해라
맞는 말입니다.
근데 kubernetes 에코시스템들은 절대다수가 Golang을 쓰고
CNCF(Cloud Native Computing Foundation) 의 프로젝트들을 보면
다수가 Golang으로 만들어져 있습니다.
많이들 쓰는 Docker도 Golang으로 만들어져 있습니다.
이래도 마이너 언어 같나요?
여러분 회사에서 누구 도와준다고
코드 만들어서 줬는데
상대방이 개발자가 아니어서 그 분 자리 가서
"이거 쓰려면 파이썬이 있어야 하는데요, 여기 없으니 제가 설치해드릴게요. 여기 보시면 파이썬 cmd가 있을텐데 이거 누르셔서 이 경로로 이동하신 다음에 python main.py 라고 입력하시면..."
(뭐 아니면 .bat 파일 만들어서 줄 수도 있겠지마는 파이썬은 가서 설치해줘야 할겁니다)
이러고 있으면 도움 받는 사람도 속으로
'아 존123나 어렵네 그냥 손으로 할 걸'
이런 생각 하실 수도 있습니다.
그런데 여기서 개발한 언어가 파이썬이 아니라 고랭이다?
GOOS=windows GOARCH=amd64 go build -o awesome-golang.exe main.go
이렇게 빌드해갖고 저 파일 메신저로 던져주면서
"그 엑셀파일 있는 폴더에 이거 집어넣고 실행하세요"
유머 넘치는 글 잘 보고 갑니다 😂