자유게시판

제목 최근 Go언어로 개발을 하고 있습니다. (Golang 쪼끔 사용기)
글쓴이 네이처그린 작성시각 2019/04/04 18:30:06
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 9736   RSS

안녕하세요,

여기서 도움을 엄청 많이 받았었는데, 회사도 커지고 직원도 보충되면서 어느세 선배가 되어버렸습니다 (ㅡ.,ㅡ_)

 

제 경우..코드이그나이터로 웹개발 뿐만 아니라 CLI에서 백그라운드로 DB작업까지 같이 하고 있습니다.

프로시저를 사용하면 작업의 수고스러움이나... 코드이그나이터를 몇년간 사용하면서 모아둔 온갖 라이브러리와 헬퍼들이 아까워서

CLI로 해보니 프로시저와는 큰차이없이 잘 돌아가더군요 ^^

이미 개발 인생의 절반을 코드이그나이터 덕분에 밥벌이 했습니다 ㅠ.ㅠ 너무 고마워여..

 

회사에서는 클래식 ASP, PHP5, PHP7 언어를 주로 사용중 입니다.

최근 여러가지 이유로 대체 언어나 프레임워크를 찾던중 파이썬 장고와 라라벨을 고려 중이었는데,

저는 혼자 팔콘 프레임워크를 테스트 중이었습니다 ㅋㅋ 역시 빠르더군요 !!

 

그 성능에 매료되어 찾다보니 dev.to나 레딧에서 백엔드 용으로 극찬하길래 Google의 Go언어까지 오게되었는데, 1개월 동안 현업에서 매우 잘 사용 중입니다.

10점 만점에 7점을 주고 싶습니다.

1점은 제가 못해서,

1점은 그간 코드이그나이터의 기능들을 못쓰게 된점,

1점은 타입 사용을 강력히 권고/강제하기 때문에 적응이 어려운점 입니다.

 

먼저, 컴파일을 해야 하는 언어답게 디버깅과 오류 검사/수정이 명확하고 빨리 된다는점이 이렇게 편할줄 몰랐습니다.

평생 스크립트 언어만 할 줄 알았는데 말이죠...

 

두번째는 저희 회사는 echo라는 Go언어 경량 프레임워크를 사용 중입니다. 다른 프레임워크나 순정 라이브러리도 같을텐데..

컴파일 후에 OS에 맞는 실행파일 (exe)이 생성됩니다.

이 실행파일과 View 파일만 있으면 어느 환경에서든 IIS, NGINX, APACHE, DOCKER등의 서버 세팅없이 웹서비스를 구동 할 수 있습니다.

백엔드 스크립트는 컴파일되어서 약간의 보안성도 향상된 느낌(?) 입니다.

개발 환경에서는 nginx의 기능(라우팅, SSL, 리버스 프록시 등)을 go로 모두 대체 했습니다.

 

세번째는 한글변수명, 한글함수명, 한글파일명, 한글폴더명 사용이 됩니다 ㄷ.ㄷ..

호불호가 명확히 갈리는 사항이긴 하지만,

저희 경우 "사용자별_월간_판매(국내/국외)" 이런식으로 프로세스 구분이 되는게 많다보니 DB에서 테이블명, 칼럼명도 한글로 사용하는게 종종 있습니다.

UTF-8이 당연시 되는 세상에,

한/영 전환이 귀찮다고 하지만, 나중에 있을 유지보수 생각을 하면...결코 손해보는게 아니라고 생각됩니다.

그 와중에...혹시나 해서 해보니 fuction 이름까지 한글로 구동이 잘 되더군요;; (실제 몇몇 API에 파일 이름이 받.go / 주.go도 있습니다 ㅋㅋ)

덕분에 요즘 프로그램 구현 난이도가 확 줄어드는 느낌을 많이 받습니다.

 

혹시나 CI3 버전이 여러가지 이유로 적합하지 않아서 라라벨을 고려 중이시라면, 

제 경우 PHP를 왜 이렇게 써야하는지? 정도의 의문이 들정도여서...

또는 대세 언어인 파이썬 - 장고, 플라스크로 환경 구축을 해보다 env와 pip, 들여쓰기에 스트레스 받으셨다면, 

CI4 정식 버전이 나올동안(?) Go언어를 사용 해보시는 걸 추천드립니다.

 

그럼 이만...

(코드이그나이터 작업하다 막히면 다시 돌아오겠습니다 ㅠ.ㅠ)

 

 다음글 개인적으로 오더들어온 일에 궁금합니다. (5)
 이전글 이제 곧 여름이 오겠죠? (4)

댓글

kaido / 2019/04/04 18:37:55 / 추천 0

프레임워크가 다르다 한들 같은 PHP 하늘 아래 라이브러리이로다. 

이런 철학을 굳게 믿었습니다.

팔콘을 만나기 전까진요 ㅡ,.ㅡ

팔콘. 참 빠르고. 또 빠르고. 강력한 기능들을 내포 하고있습니다.

심지어 PHP의 영역을 살짝 벗어나서 동작하다보니, 네이티브  PHP 를 능가하는 부분도 있습니다.

이 좋은 팔콘이 왜 국내에서 활성화가 안되는지 약간 의문이긴 합니다.

아마도 메뉴얼이 불친절해서 아닐지 싶...

한번 팔콘 포럼을 만들까 고민도 하고 있긴 합니다 ㅋㅋ

 

모던 하게 컴포저 넣고 개발을 하면 사실 뭘로 개발 하든 상관없긴 합니다.

이제 컨트롤러에다 전부 때려 넣고 개발을 안할테니 말이죠.

약간만 손봐주면 팔콘이든 CI이든 라라벨이든 어디든 넣을수 있게 개발 하는게 모던한 개발이라고 생각 합니다.

가리비 / 2019/04/04 23:33:11 / 추천 0
받.go 주.go ㅋㅋㅋ
네이처그린 / 2019/04/04 23:49:20 / 추천 0

팔콘의 개인적인 느낌은, 성능이나 기능보다..

깃헙에 해결 안된 이슈들 보면서 알게모르게 느껴지는 불안감?이..

무턱대고 쓸수 있을까? 싶기도 했습니다 ㅎㅎ...

한대승(불의회상) / 2019/04/05 09:14:30 / 추천 0
해~해~해~(go~go~go~)
kaido / 2019/04/08 09:40:19 / 추천 0

아참 팔콘은 사용하기 불안하다고 하셨는데, go 로 바꾸는데에는 불안감은 없으셨나요?

사실 기존의 라이브러리들을 사용 할수 없다 = 다시 만들어야 한다

이 부담감이 작지는 않을것 같습니다.

 

네이처그린 / 2019/04/09 14:41:17 / 추천 0

장단점은 분명히 있긴 합니다 ^^;

팔콘을 저평가 하는건 절대 아니구용, (제 실력에 무슨...그저 감사하게 사용해야져)

전부는 아니지만 일부 기능과 마이크로서비스로 바꿀수 있는 곳은 Go로 전환중인데, 말씀처럼 필요한 언어/기능을 적재적소 사용하는게 옳다고 봅니다. 개발 시간이 무한정 있는 것은 아니니까요 ^^

 

Go를 쓰면 아직도 강 타입이 짜증나긴 합니다 -_-, 웹개발 할때 json_encode도 너무나 그리울때가 있습니다.

그외 문자열 처리나 헬퍼로 만들어둔 JS스크립트들도 아쉽긴 한데, Go에서 모지라게 구현되거나 한 것도 아니라서용

 

서비스가 대부분 온전히 웹으로 운영되기보다는 대부분이 백그라운드에서 특정시간/이벤트로 DB 연산이 많습니다.

처음에 프로시저로 개발 되었다가 연산이 복잡해지면서 코드이그나이터 + 스케줄러로 사용중이나, 1개 기능에 다중 서버에 접근하는 등의...스케일이 커지면서 이런 부분은 완전히 분리를 해야 겠더라구용

팔콘을 염두한것도 이것 때문이었는데요, 제 입장에서는 최종적으로 팔콘보다 언어를 바꾸는 감수를 하면서 Go를 선택 하였습니다.

(무엇보다도 IDE에서 완전한 코드검수, 디버깅이 보장되어서 였습니다.)

 

다중/병렬처리는 덤이면서, 컴파일된 파일만 잘 운영되면, 서버나 환경설정이 필요없어 무척 만족하고 있습니다.

조만간 이런 TASK기능 들은 Serverless 쪽으로 옮겨갈까도 고민 중입니다.

kaido / 2019/04/09 15:04:19 / 추천 0

사람 생각 하는건 누구나 같은듯 합니다 ㅎㅎ

저도 php 연구는 마무리 짓고 go 를 보든 다른거를 보든 할까 생각중이긴 했거든요

 

문제는 플랫폼을 옮기면서 생기는 문제가 얼마나 생길까? 이라는 주제인데..

곰곰히 생각해보면 새로 만드는건 사실 그리 큰 문제는 안됩니다

기존에 있는걸 그대로 만드는건 그리 어려운 일이 아닌데다, 생각보다 시간이 오래 걸리지도 않습니다.

오히려 없는 기능을 만드는게 시간 걸리죠 ㅡ,.ㅡ

더구나 백엔드 기능이 모듈 분리 부터 시작 해서 API 가 나오고 나서부터는 마이크로서비스로 바뀌다 보니, 크게 보면 새로 만드는건 매 마찬가지...

 

그렇다면 진짜 문제는 무얼까? 하고 고민 해보면... go 한다고 돈 준다는 기업이 적어서 그런듯 합니다 ㅎ

무엇이든 일단 활성화가 되어야 사용해 먹죠.