본문 바로가기

go3

[4] Go yaml - yaml 파일을 Go로 쉽게 읽기 프로그램의 외부 시스템이 변경하게 되면 이를 적용해야 하는데, 코드에 그대로 반영할 수는 없으니 외부 설정 파일을 생성해서 이를 읽어 시스템에 반영하게 됩니다. 예를 들면, DB 서버의 ip 주소나 포트 같은 것들을 매번 코드상에서 변경해주는건 이상하니 전역으로 config 변수를 설정해서 주입해주는 것입니다. 이러한 외부 설정 파일은 ini, yaml, json 형식으로 작성되는데 자주 사용되는 yaml 형식의 파일을 Go에서 읽어서 사용하는 예시를 이 글에서 소개하겠습니다. yaml 예시 database: Type: mysql User: Riverandeye Password: hello Host: 1.2.3.4:5 Name: todo TablePrefix: todo_ server: RunMode: d.. 2020. 10. 3.
[3] Go 웹 프레임워크 Gin Gin은 Golang으로 작성된 웹 프레임워크로, Node로 치면 Express 같은 미들웨어 지향 API를 제공합니다. Gin 이전에 martini라는 웹 프레임워크가 있었기 때문에 martini-like api 라고 하는데, 오픈소스인 httprouter 를 도입하여 그 성능을 높였다고 합니다. httprouter에 대한 세부 분석은 다음 기회에 다루겠습니다. 지원하는 핵심 기능들은 다음과 같습니다 - Radix tree 기반의 라우팅으로 메모리 소요가 적으며 reflextion이 필요 없어 API 성능이 예측 가능합니다. - 미들웨어를 지원하여 개별 HTTP Request에 수행되는 비즈니스 로직을 분리할 수 있습니다. - 요청에 대한 Panic 을 Recover하기 때문에 안정적인 서빙이 가능합니.. 2020. 10. 3.
[1] Golang 개념 및 기초 해당 게시물은 이 책 및 공식 블로그를 참고하여 작성되었습니다. 개인 학습 목적으로 작성되어 제가 필요하고 되짚어야 할 부분만 기록했기 때문에 생략이 많습니다. 모든 것을 다 정리하지는 않고, 정말 기초가 되는 부분들만 작성하였습니다. The Go Project  Go Project는 소프트웨어의 복잡도를 극복하기 위해 설계된 언어이다. 소프트웨어의 복잡도는 배로 늘어나서, 문제를 해결하기 위해 시스템의 복잡도를 높이면 다른 영역에도 영향을 미치게 된다. 문제를 해결하고 설정을 더하는 동안 단순성을 간과할 수 있는데, 길게 보면 단순한 것 만큼 소프트웨어의 좋은 해결책이 없다. 소프트웨어가 단순해지려면 작업들이 프로젝트의 핵심 아이디어에 집중해야 하며, 프로젝트가 변모하는 방향성을 올바르게 파악해야 한.. 2020. 8. 20.