Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 친절한SQL튜닝
- 코드로배우는스프링웹프로젝트
- 티스토리 쿠키 삭제
- 선형대수
- 데비안
- 네트워크 설정
- 목록처리
- 스프링부트핵심가이드
- 구멍가게코딩단
- d
- 알파회계
- 자료구조와 함께 배우는 알고리즘 입문
- baeldung
- 리눅스
- 처음 만나는 AI수학 with Python
- 자료구조와함께배우는알고리즘입문
- 코드로배우는스프링부트웹프로젝트
- network configuration
- /etc/network/interfaces
- iterator
- 이터레이터
- 스프링 시큐리티
- ㅒ
- Kernighan의 C언어 프로그래밍
- 서버설정
- 처음 만나는 AI 수학 with Python
- 자바편
- 페이징
- resttemplate
- GIT
Archives
- Today
- Total
bright jazz music
1. Go 웹 프로그래밍 본문
//go: go.mod file not found in current directory or any parent directory; see 'go help modules'
//go env -w GO111MODULE=off 로 해결
// https://okky.kr/article/927026?note=2323727
//https://golang.org/doc/articles/wiki/#tmp_13
package main
//실행 가능한 프로그램이 되려면 패키지 이름은 항상 main이 되어야 한다.
//자바, 루비, 파이썬의 경우 웹애플리케이션을 실행하기 위해서는 서버에 적재하는 과정이 필요하다.
// 그러나 Go에서는 net/http 패키지 제공을 통해 컴파일과 동시에 작성한 코드를 단독 웹 애플리케이션으로서 적재할 수 있다.
import (
"fmt"
"log"
"net/http"
)
// "fmt" : 형식화 된 I/O를 허용하며 HTTP와 상호작용 하기 위한 메인 패키지이다.
func handler(writer http.ResponseWriter, request *http.Request) {
fmt.Fprintf(writer, "Hi there, I love %s!", request.URL.Path[1:])
}
//handler 함수는 이벤트 발생 시 연이어 호출되는 콜백 함수를 의미
//핸들러 함수의 파라미터:
// request 인터페이스는 request struct를 가리키며 요청으로부터 정보를 취한다. 취한 정보를 통해 HTTP응답을 만들기도 한다.
// 응답할 때는 ResponseWriter를 이용한다. Fprintf 함수는 ResponseWriter로 불리며 이 때 문자열 형태는 %s와 같이 명시한다.
func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe(":8080", nil))
// http.ListenAndServe(":8080", nil)
}
//모든 프로그램은 실행 가능한 파일로 컴파일 되어야 한다. 때문에 반드시 하나의 main함수가 필요하다.
go path 경로에 bin, pkg, src의 세 개의 디렉토리를 만든다. 그후 src에 진행할 프로젝트의 디렉토리를 만든다. 그리고 거기에 go 파일을 만들어 코드를 작성한다.
위 파일의 이름은 server.go이며, GOPATH의 src 디렉토리에 first_webapp이라는 디렉토리에서 생성하였다. 코드 작성을 끝낸 후에는 vs코드에서 F5를 눌러 프로그램을 실행한다.
참고서적: Go 웹프로그래밍
'Language > Go' 카테고리의 다른 글
Go - URL checker (Goroutine + channel) (0) | 2021.02.21 |
---|---|
Go - channel 2 (for loop 사용) (0) | 2021.02.20 |
GO - Goroutines 고루틴 기본 (0) | 2021.02.19 |
Go - URL Checker 하나 씩 순차적 (0) | 2021.02.19 |
Go - map 타입에 메소드 추가하기(Update, Delete) (0) | 2021.02.19 |
Comments