2023-02-15-TIL

Today I Learned

Go Clean Architecture

무엇이 Go스러운걸까? Go스럽다는 말이 과연 절대적인 가치일까? 이 말은 세부적인 코드의 부분부분에서는 맞는 말이기도 하다. 하지만 전체적인 애플리케이션 아키텍처에 있어서는 언어가 아키텍처를 주도하기는 어렵다. 언어의 고유한 특징이 어느 정도 반영되겠지만, 애플리케이션의 목적에 따라서 전체적인 아키텍처는 유사성을 띌 수 밖에 없다. 예를 들어, 엔터프라이즈 웹 애플리케이션의 경우, MVC, Layered Architecture 등 스프링이 강제하는 틀을 결국 따라가게 되는 경우가 많다.

  • https://github.com/bxcodec/go-clean-arch/tree/master/domain
  • https://medium.easyread.co/golang-clean-archithecture-efd6d7c43047
  • https://urunimi.github.io/architecture/go/clean-arch-go/
  • https://evrone.com/go-clean-template
  • https://www.mitrais.com/news-updates/the-benefits-of-using-clean-architecture-in-golang/
  • https://www.c-sharpcorner.com/article/clean-architecture-in-asp-net-core-web-api/
  • https://learn.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/common-web-application-architectures

Middleware Patterns in Go

  • https://drstearns.github.io/tutorials/gomiddleware/
  • https://umi0410.github.io/blog/golang/how-to-backend-in-go-middleware/
  • https://bourbonkk.tistory.com/63
  • https://www.joinc.co.kr/w/man/12/golang/middleware

Dependency Injection in Go

  • https://syntaxsugar.tistory.com/entry/Golang-Dependency-Injection
  • https://medium.com/avenue-tech/dependency-injection-in-go-35293ef7b6
  • https://blog.logrocket.com/go-dependency-injection-wire/

X-Request-ID

  • https://http.dev/x-request-id
  • https://stackoverflow.com/questions/25433258/what-is-the-x-request-id-http-header
  • http://daplus.net/http-x-request-id-http-%ED%97%A4%EB%8D%94%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C/

Go Web Frameworks: Gin vs Echo

  • https://blog.logrocket.com/5-top-go-web-frameworks/
  • https://blog.outsider.ne.kr/1371
  • https://mattermost.com/blog/choosing-a-go-framework-gin-vs-echo/
  • https://yuiltripathee.medium.com/go-gin-vs-echo-comparison-edf1536e2e25

Go Error Best Practices

  • https://levelup.gitconnected.com/go-error-best-practice-f0864c5c2385
  • https://blog.logrocket.com/error-handling-golang-best-practices/
  • https://go.dev/doc/effective_go

Go Testing Best Practices

  • https://climbtheladder.com/10-golang-testing-best-practices/
  • https://blogs.halodoc.io/golang-unit-testing/
  • https://medium.com/@matryer/5-simple-tips-and-tricks-for-writing-unit-tests-in-golang-619653f90742
  • https://fossa.com/blog/golang-best-practices-testing-go/
  • https://blog.devgenius.io/5-tips-for-better-unit-testing-in-golang-b25f9e79885a
  • https://blog.logrocket.com/a-deep-dive-into-unit-testing-in-go/
  • https://www.digitalocean.com/community/tutorials/how-to-write-unit-tests-in-go-using-go-test-and-the-testing-package