golang - Web Package 관련 참고

jsbak·2021년 9월 27일
0

Go lang

목록 보기
2/2

Golang Weg package analysis

net/http

type Client struct 라는 구조체가 존재하는데 이는 클라이언트의 요청에 대한 redirect가 발생 했을 때 이용하는 부분인 것 같다.

Client 구조체의 메서드를 이용하는 경우는 우리가 새로 요청을 보낼때 사용하는 부분 인거 같다.

gorilla/mux

Golang 에서는 css 같은 static file 의 경로를 따로 지정해줘야 css, js 같은 파일을 읽어 올 수 있다. !!!
참고링크 : Gorilla Mux를 사용하여 GoLang에서 정적 파일 제공
참고링크2 : Gorilla Mux Github

이 기사에서는 Gorilla Mux를 사용하여 GoLang에서 정적 파일을 매우 쉽게 제공하는 방법을 이해할 것입니다. Gorilla Mux와 GoLang의 HTTP 모듈을 사용하여 파일 시스템에서 직접 정적 파일을 제공할 수 있습니다.

http.FileServer정적 파일을 사용자에게 제공하는 데 사용할 수 있는 핸들러입니다. FileServer 는 루트에 있는 파일 시스템의 내용으로 HTTP 요청을 처리하는 핸들러를 반환합니다.

예제 코드

package main

import (
    "log"
    "net/http"

    "github.com/gorilla/mux"
)

func main() {

    log.Println("Server will start at http://localhost:8000/")

    route := mux.NewRouter()

    fs := http.FileServer(http.Dir("./public/"))
    route.PathPrefix("/public/").Handler(http.StripPrefix("/public/", fs))

    log.Fatal(http.ListenAndServe(":8000", route))
}

public 폴더에 파일이 저장되어 있다고 가정하면 이제 브라우저에서 파일을 요청할 수 있습니다.
예를 들어 저장된 파일 이 공용 폴더의 script.js 인 경우 요청 URL은 다음과 같습니다.

http://localhost:8000/public/script.js

공용 폴더 내부에 폴더가 있는 경우 해당 폴더를 경로에 포함해야 합니다.

http://localhost:8000/files/js/script.js

사용자 지정 미들웨어에서 정적 경로를 지정할 수도 있습니다. 예를 들어 파일이 /files경로 로 제공되기를 원하는 경우 입니다. 다음 코드를 사용하여 그렇게 할 수 있습니다.

package main

import (
    "log"
    "net/http"

    "github.com/gorilla/mux"
)

func main() {

    log.Println("Server will start at http://localhost:8000/")

    route := mux.NewRouter()

    fs := http.FileServer(http.Dir("./public/"))
    route.PathPrefix("/files/").Handler(http.StripPrefix("/files/", fs))

    log.Fatal(http.ListenAndServe(":8000", route))
}

Express에서 수행하는 대신 프로덕션 환경에서 정적 파일을 제공하기 위해 역방향 프록시 또는 타사 CDN을 사용하는 것이 좋습니다.

더 많은 GoLang 튜토리얼을 확인하세요.

Golang DB package

PostgreSQL

go ORM
G-ORM 공식 문서 : 여기 가면 mysql, postgresql 어떻게 쓰는지 검색하면 다 나옴.
ORM 하기 위한 MinGW gcc++ 설치
ORM 하기 위한 MinGW gcc++ 설치2 WIN64

MySql

sqlite

profile
끄적끄적 쓰는곳

0개의 댓글