본문 바로가기

Programming Language5

[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.
[2] Go mod - Go의 패키지 관리 시스템 처음 무작정 개발에 달려들었을 때 가장 어려웠던 부분이 패키지 관리였습니다. 다른 언어처럼 임의의 폴더에서 실행파일 main.go 를 구성하고 프로젝트를 실행했는데 모듈이 import 되지 않아서 매우 답답했었습니다. 아니 분명 저기 상대경로로 표시해줬는데 안된다고? (매우 속터짐) 처음에는 go get 을 이용해서 막무가내로 글로벌로 패키지를 설치했고 import path에 항상 full path를 제공해야 하기 때문에 아 원격지에 구성된 모듈을 매번 업데이트해야 하겠구나 라고 생각해서 매번 커밋하고 push하고 go get -u 패키지로 업데이트하고.. 그런 미련한 짓을 반복했었습니다. 알고보니 GOPATH를 매 개발하는 프로젝트에서 환경변수로 설정을 해야 해당 프로젝트 내에서 모듈을 찾을 수 있었던.. 2020. 9. 25.
[1] Webpack 을 이용한 TypeScript 번들링 웹팩을 이용해서 그래픽스 라이브러리를 타입스크립트로 번들링하고, 개발 환경을 편리하게 구성하기 위해 웹팩에 대해 공부한 기록을 담았습니다. 웹팩이란 웹팩은 HTML, CSS, JS, 등의 웹 어플리케이션에 필요한 자원을 개별 모듈로 정의하고, 이를 조합해서 하나의 HTML CSS JS 로 합쳐주는 모듈 번들러 입니다. 웹팩을 사용하면 얻게되는 장점이 무엇일까요? 우선 모듈화를 통해 JS파일을 모듈화하여 코드의 가독성을 높일 수 있습니다. 브라우저는 HTTP 요청을 동시에 6개까지 수행할 수 있는데요 (크롬 기준) 모든 모듈 파일을 하나로 합침으로써 네트워크 자원을 아끼며 로딩 속도를 더욱 빠르게 하며 자동화 도구들을 통해 웹 개발을 편하게 수행할 수 있습니다. 또한 모듈화를 이용하여 Lazy Loadin.. 2020. 9. 21.