본문 바로가기

Gin

(6)
Go언어 - Gin Framework(5강 JSON/XML응답) JSON / XML 응답이 섹션에서는 요청 헤더에 따라 애플리케이션이 HTML, JSON 또는 XML 형식으로 응답 할 수 있도록 애플리케이션을 약간 리팩터링합니다.1. 재사용 가능한 함수 만들기Route Handler에서 지금까지는 Gin의 컨텍스트 중 HTML을 사용했습니다. 항상 HTML페이지를 보여줄 때는 괜찮지만, 요청에 따라 응답 형식을 변경하고 싶을 때에는 렌더링을 처리하는 단일 함수로 리팩토링해야합니다(?). 이렇게 함으로써 Route Handler는 유효성 검사(validation) 및 데이터 추출(data fetching)에 집중하도록 할 수 있습니다. Route Handler는 응답 형식에 관계없이 동일한 유효성 검사, 데이터 추출 및 처리를 수행해야합니다. 이 부분이 완료되면 데이터..
Go언어 - Gin Framework(4강 개별 Article 화면 구성) 개별 Article 화면 구성 현재까지 구성한 앱에서는 Article을 클릭했을 때 링크가 작동하지 않았습니다. 이번에는 각 Article에 대한 핸들러와 템플릿을 추가하도록 하겠습니다.1. Route 설정router.GET("/article/view/:article_id", getArticle)main함수의 Route 설정 부분에 위구문을 추가합니다. 위 라우터는 패턴과 맞는 요청에 대해 경로를 일치시키고, 경로 마지막부분을 route 파라미터인 article_id에 저장합니다. 이 라우터에서는 handler함수로 getArticle을 정의합니다. main.go 전체 코드 모습package main import ( //"net/http" "github.com/gin-gonic/gin" ) var rou..
Go언어 - Gin Framework(3강 Article List) Article List 표시이 섹션에서는 index 페이지에 모든 article list를 표시하는 기능을 추가합니다.1.Router 설정원문에 따르면 응용 프로그램이 커질 것을 대비하여 별도의 Router파일에서 경로를 정의하는 방식으로 구성하였는데, 무슨 문제인지 제 실습 중에는 routes.go파일에 따로 코드를 분리하니 에러가 발생했습니다. 그래서 route 를 main() 함수 내부에 구성하도록 하겠습니다. 단, route handler 함수만 별도로 분리해 내도록 하겠습니다.(handlers.article.go) main.go파일은 아래와 같이 코딩합니다.package main import ( //"net/http" "github.com/gin-gonic/gin" ) var router *gi..
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", }, ..
golang gin 웹앱 heroku에 배포하기 오늘은 gin framework으로 만든 앱을 heroku에 배포하기까지 실행해보겠습니다. python 앱의 경우 pythonanywhere라는 무료 가능한 사이트가 있어서 좋았는데, 비슷한 걸 찾다보니 heroku에서 무료 배포가 가능했습니다. Heroku는 git과 연동되어 운용되니 Git도 설치가 필요합니다. 사전 준비 1. Git 설치 2. Heroku 설치 3. Gin 설치 방법 1. Git Repository 생성 Github에 가입하였다면, Repository 관리 페이지로 가서 새로운 Repository를 생성해줍니다. 별다른 설정사항 손댈 필요 없이 적당한 이름을 부여하고, Public으로 생성합니다. 2. 생성한 repository 로컬 pc에 다운로드 pc에 생성하고 github으로 ..
Go언어-Fyne Text Editor 만들기 package main import ( "fmt" "image/color" _ "unicode/utf8" "fyne.io/fyne" "fyne.io/fyne/app" "fyne.io/fyne/canvas" "fyne.io/fyne/layout" "fyne.io/fyne/theme" "fyne.io/fyne/widget" ) func main() { f := app.New() //f.Settings().SetTheme(theme.LightTheme()) f.Settings().SetTheme(theme.DarkTheme()) w := f.NewWindow("") //상단에 넣을 위젯 및 레이아웃 - NewFormLayout qry := widget.NewEntry() btn_go := widget.NewB..