어떤 서비스나, 제품의 소프트웨어를 개발할때 설계가 굉장히 중요하고 설계을 어떻게 잡느냐에 따라 생산성과 비용이 판이하게 달라집니다. 그러한 아키텍쳐 관점 중의 하나가 바로 클린아키텍쳐인데요. Go 언어에서는 어떻게 적용하고 구성하는지 알아보도록 하겠습니다. Clean Architecture Go 언어에서 Clean Architecture는 Robert C. Martin의 'Clean Architecture' 책에서 제시한 소프트웨어 아키텍쳐의 일종입니다. 이 아키텍쳐는 의존성 역전 원칙(Dependency Inversion Principle)을 중심으로 구성되어 있고, 비즈니스 로직과 프레임워크 또는 라이브러리와 같은 기술적 세부 사항을 분리하는 것을 강조합니다. Clean Architecture는 다..
지난 시간에 Gorm과 MariaDB를 연동해보았었는데요, 아직 안 보신 분은 빠르게 아래 글을 읽고 오시고 시작하도록 하겠습니다. https://hero-space.tistory.com/138 Go와 Database 연동은 Gorm으로 시작! 백엔드 서버를 개발 할때, 데이터의 저장은 DB를 연동해서 하는 것이 일반적인데요. DB의 종류도 SQL로 할 꺼냐, NoSQL로 할꺼냐의 근본적인 결정도 있지만 SQL의 경우 데이터의 모델을 정의하고 이 hero-space.tistory.com 오늘은 Migration에 대해서 설명하면서 진행해보고 진행하면서 발생한 이슈에 대해서 설명드리도록 하겠습니다. AutoMigration 이 머지? DB라는 것은 서비스를 운영하면서 굉장히 중요한 요소입니다. 따라서 DB..
지난 시간에 Go와 Database의 연동을 Gorm을 하기 위해 데이터 베이스를 생성해주고, 모델을 만들어 인터페이스로 묶어 연결시켜주었는데요, 아직 못 보신 분은 아래 글을 빠르게 읽고 넘어가도록 하겠습니다. https://hero-space.tistory.com/138 Go와 Database 연동은 Gorm으로 시작! 백엔드 서버를 개발 할때, 데이터의 저장은 DB를 연동해서 하는 것이 일반적인데요. DB의 종류도 SQL로 할 꺼냐, NoSQL로 할꺼냐의 근본적인 결정도 있지만 SQL의 경우 데이터의 모델을 정의하고 이 hero-space.tistory.com Echo : High Performance, Extensible, Minimalist Go Web Framework https://echo...
백엔드 서버를 개발 할때, 데이터의 저장은 DB를 연동해서 하는 것이 일반적인데요. DB의 종류도 SQL로 할 꺼냐, NoSQL로 할꺼냐의 근본적인 결정도 있지만 SQL의 경우 데이터의 모델을 정의하고 이에 따라 이를 쉽게 처리해줄 수 있는 프로그래밍 스킬이 필요한데 이것이 바로 ORM(Object-relation mapping) 입니다. ORM을 사용할 경우 실질적으로 프로그래밍 언어에서 사용할 수 있는 가상 객체 데이터베이스를 생성하는데, 이 가상 객체 데이터베이스는 클래스(혹은 스트럭쳐)와 매핑됩니다. 결과적으로 개발자는 객체를 다루는 것처럼 데이터를 다룰 수 있으며, 데이터베이스를 코드에 자연스럽게 녹여낼 수 있게 됩니다. RDBMS 란? Relational Database Management S..
저는 백엔드 서버를 만들기 위해 주로 Golang을 사용해서 프로타이핑을 해보고 실제 프로덕션에 적용여부를 결정하는데요, golang의 경우 아직까지는 자바의 스프링에 비해 대중성이 떨어지긴 하나, 메이저 서비스에서 조금씩 golang으로 변화되며 google에서 밀어주는 언어이다보니 단순히 프로토타이핑 뿐 아니라 프로덕션 레벨로서 입지를 갖춰가기 시작하고 있습니다. 저 역시 실제 서비스를 위해 백엔드로 golang으로 구현했는데요 물론 대규모 트래픽을 요하는 서비스는 아니기 때문에 프로덕션 레벨로 걱정되는 부분이 있더라도 적용해서 실제 서비스하는데 문제가 없다는 판단을 했습니다. 저는 아래와 같은 구조로 백엔드를 구축했습니다. 백엔드 개발을 위한 프레임워크 Firebase authentication E..
구글에서 firebase라는 serverless 솔루션을 어느정도 사용까지 무료로 제공하고 있는데요, Application을 만들면서 서버가 필요할때 가장 필수 적인 기능들을 손쉽게 이용할 수 있어서 많은 개발자분들이 이용하고 있습니다. https://firebase.google.com/ Firebase Firebase는 고품질 앱을 빠르게 개발하고 비즈니스를 성장시키는 데 도움이 되는 Google의 모바일 플랫폼입니다. firebase.google.com 이 글에서는 파이어베이스 프로젝트 생성 및 연동 보다는 생성과 연동되어 있다고 가정하고, 데이터가 쌓여졌을때 어떻게 golang으로 쿼리를 해서 가져오는가에 대해서 설명하도록 하겠습니다. 콘솔에 로그인을 해서 생성된 프로젝트를 누르면 위와 같은 화면을..
Today, I would like to indicate how to use library in Go.There are few types of libraries. Basically, library consists of two types like static library and shared library. I do not explain all of the types what it is. Just think about what library you have to choose. Assuming my project is based on go files and run on independent container which is required libraries in order to run an executabl..
Every language requires to make dependency for building and exists various tools. Golang is needed to make dependency for building with several files. It doesn't matter with a few files, but if you want to add up to 3rd library and maintain the source in git, you should check dependency. Let's you give an example to understand better. If you want to gorilla/mux package(https://github.com/gorilla..