상세 컨텐츠

본문 제목

[Nomad Coin] Explorer - #5.5 Refactoring

Go/Blockchain

by Gopythor 2022. 7. 18. 03:06

본문

728x90
반응형

#5.5 Refactoring

  • Go로 server-side렌더링 웹사이트를 만들 줄 아는 건 좋다.
  • 컴퓨터에 아무 것도 설치하지 않고 할 수 있다는 것은 엄청난 것이다.
  • 모든게 standard library에 포함되어 있다.
  • 간단한 prototype을 만들고 싶다면, 모든 것을 하나의 go 파일로 끝낼 수 있다.
  • templates나 partials을 어떻게 하는지도 배웠다.
  • 그러나 이 frontend에서 프로젝트를 더 진행하지는 않을 것이다.
  • form을 만들어야 하고, url을 만들어야 하고, GET, POST 처리도 해야되고 template도 렌더링해야하고.
  • 그말은 곧 html을 만들어야 한다는 것이다.
  • 아직 Blockchain과 소통할 다른 방법이 필요한 상태이다.
  • 시각적으로 진행해볼 것인데 JSON REST API를 만들어 볼 것이다.
  • main.go를 정리해볼 것이다. 
  • 다음 섹션에서 main.go는 JSON API가 될 것이다.
  • template들을 explorer폴더로 이동시켜라
  • explorer에 explorer.go라는 새 파일을 만든다.
func start() {
	templates = template.Must(template.ParseGlob(templateDir + "pages/*.gohtml"))
	templates = template.Must(templates.ParseGlob(templateDir + "partials/*.gohtml"))
	http.HandleFunc("/", home)
	http.HandleFunc("/add", add)
	fmt.Printf("Listening on http://localhost%s\n", port)
	log.Fatal(http.ListenAndServe(port, nil))
}
  • main.go의 main 부분을 잘라내고 start라는 function을 explorer에 만든다.
  • 코드를 복사/붙여넣기를 하고도 어디가 왜 못 됐는지 알 수 있다. 그래서 어떤 걸 고쳐야 하는 지 알 수 있다.
var templates *template.Template
  • 이 부분을 붙여준다.

  • home, add 그리고 constant들이 존재하지 않다.
  • constant, structures, home, add를 여기다 넣는다.
  • blockchain도 import되고 있고
  • function이름을 StartExplorer라고 짓지 않은 이유가 있다. 왜냐하면 StartExplorer functino을 호출할 파일인 main.go에서는 explorer.StartExplorer() 같은 식으로 보일 것이다. explorer라는 단어가 두 번 반복된다. 그래서 그냥 Start라고 지은 것이다.
func main() {
	explorer.Start()
}
  • main은 간단해졌고, 모든 로직은 explorer.go에서 이루어지고 있다.
  • template도 explorer.go로 옮겼고, main.go도 모든걸 전달했다.

  • "templates/pages/*.gohtml"이 없다는 에러이다.
  • 경로만 바꿔주면 된다.
const (
	port        string = ":4000"
	templateDir string = "explorer/templates/"
)
  • explorer만 앞에 써주면 된다.

강의 출처 : 노마드코더 노마드 코인

728x90
반응형

관련글 더보기

댓글 영역