본문 바로가기

Programming/Golang40

Go언어 - Gin Framework (2강 HTML Template 구성) 이것저것 하다보니 일관된 포스팅 하기가 힘드네요...^^;; 오늘은 Gin Framework 강좌를 따라해볼까 합니다. 원 Tutorial은 여기를 참고했습니다. 파일 구성은 아래와 같이 구성하는 것으로 시작합니다. 1. main.gopackage main import ( "net/http" "github.com/gin-gonic/gin" ) func main() { r := gin.Default() r.LoadHTMLGlob("templates/*") r.GET("/", func(c *gin.Context) { // OK 이면 index.html파일에 JSON데이터를 넘겨서 보여줌 c.HTML(http.StatusOK, "index.html", gin.H{ "title": "Home Page", }, .. 2020. 12. 13.
Go언어 - Lorca GUI 간단한 메모장 이번에는 모듈 구분을 하여 코드를 좀 다듬어보려고 합니다. 아직 Lorca는 예제가 많지도 않고, 튜토리얼이 있는 상태도 아니어서 혼자 여러가지 방식을 시도해 보는 중입니다. 어쨌든 목적은 Control, View와 Function을 다른 파일에 나누어 구성하는 것입니다. 1. lorca_ex.go(Control파일) 앱의 시작부분으로 Control에 해당하는 역할을 합니다. 함수 바인딩을 이곳에서 정의합니다. 그리고 index.html을 불러와서 data에 저장한 뒤 url.PathEscape메서드에 string형태의 인자로 넘겨주는 방식으로 수정해 주었습니다. package main import ( "io/ioutil" "net/url" "github.com/zserge/lorca" ) var ui .. 2020. 12. 9.
Go언어 - Lorca GUI 라이브러리 Go 언어로 구현된 라이브러리들도 상당히 많습니다. (https://github.com/avelino/awesome-go#gui). 이전에 Fyne, Gotk3, andlabs/ui, sciter 에 대해서 포스팅한 적이 있는데요...최대한 설치할 것들이 적고 쉽게 구축 가능한 라이브러리들을 찾아보고 있었습니다. 그러던 중 Lorca라는 것을 발견했는데요. 오늘은 이 Lorca 를 한번 사용해보겠습니다. Lorca는 HTML 문법을 사용하여 매우 쉽게 UI를 구성할 수 있다는 장점이 있습니다. 비슷하게는 Webview가 있는데, 가볍고 build된 파일도 용량이 매우 작지만 설치시 조금 애로가 있을 수 있고, 세부설정도 Lorca보다는 조금 어렵다고 합니다. 반대로 얘기하면, Lorca는 설정할 수 있는.. 2020. 12. 8.
Go언어- Gin Framework(1강 설치) Golang에는 웹 프레임워크가 여러가지 있습니다. 제가 공부했던 책에서는 Beego가 추천되었는데, 그 외에도 Revel, Martini, Buffalo, echo, iris 등 여러가지가 있습니다. 요즘은 gin이라는 프레임워크가 대세인 것 같아서 설치해볼까 합니다. https://github.com/gin-gonic/gin(Gin 소스 페이지) 우선 아래 명령어로 Gin을 설치합니다. go get -u github.com/gin-gonic/gin 그리고 프로젝트를 생성해보겠습니다. 적당한 폴더를 하나 만들어 주고 Go 파일을 하나 작성해줍니다. 저는 그냥 main.go로 만들었습니다. package main import "github.com/gin-gonic/gin" func main() { r :.. 2020. 12. 8.
Go언어 - MySQL 연동 package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func checkError(err error) { if err != nil { panic(err) } } func main() { var name, email, phone string db, err := sql.Open("mysql", "root:1234@tcp(127.0.0.1:3306)/testdb") checkError(err) defer db.Close() fmt.Println("connect success") rows, err := db.Query("SELECT name, email, phone FROM members where id=?", 6) che.. 2020. 12. 6.
Go언어 - 소스코드 모듈화 보통 프로그램이 커질수록 파일을 기능별로 분리 관리를 하죠. Go 언어에서도 파일 분리/관리 방법이 있습니다만 오늘은 이것 때문에 삽질을 좀 많이 했네요. 역시 기초부터 제대로 공부하고 써먹어야한다는 생각을 절실히 체감하는 오늘입니다. 1. 같은 package 안에서는 함수, 메서드 등의 이름 첫글자가 소문자여도 사용이 가능합니다. (non-public) 폴더 구분없이 파일만 구분해서 사용하고 싶을 경우, 같은 패키지(현재 main)으로 하고, 함수이름 첫글자 소문자(my_plus)일 경우 문제없이 인식 가능합니다. (import 같은 기능 필요 없음) 2. 다른 패키지로 관리할 때, 즉 폴더별로 관리할 경우 주의해야 할 사항이 몇가지 있어서 정리를 할까 합니다. 1) 함수, 메서드 등의 이름 첫글자가 .. 2020. 12. 6.