지난 시간에 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..
API Gateway를 제대로 써보기 위해서 API를 정의하고, 하나씩 생성하면서 알아보고 있는데요. 지난 시간에 /books 라는 POST 용 API를 생성하고 Lambda 함수와 연결 시켜보았습니다. 이 상태에서 한번 테스트를 해볼까요? API Gateway는 자체에서 테스트 할 수 있도록 지원 하고 있습니다. 이렇게 테스트 라고 적혀 있는 블록을 선택해서 들어가서 가운데 하단에 테스트라고 파란색으로 보이는 버튼을 한번 눌러봅시다. 아직 아무것도 세팅하지 않은 상태에서 Lambda 까지 잘 연결되느냐만 보기 위함입니다. 상태 코드는 200이고 296ms 가 걸렸으며 응답본문은 statusCode:200에 body 에 Hello from Lambda 라고 되어있습니다. 전 시간에서 booksPost라고..
지난 시간에 서버를 개발하기 위해서 먼저 AWS의 서비스 중 API Gateway를 이용해서 REST API를 정의해보는 것을 진행할 건데요. 전에 API Gateway에서 간략하게 다시한번 확인하고 오시기 바랍니다. https://hero-space.tistory.com/116 AWS API Gateway 제대로 써보자 1 Serverless Architecture 방식으로 서버를 개발하고 구축하기로 결정했다면 어떤 클라우드를 기반으로 할지 정해야하는데, 저는 고민없이 AWS를 사용하고자 했습니다. 아무래도 GCP / Azure / AWS 이 3가지 hero-space.tistory.com 특히 지난 시간에 정의 했던 REST API의 URI와 Method 그리고 각 파라메터를 정의하고 리턴처리까지 할..
Serverless Architecture 방식으로 서버를 개발하고 구축하기로 결정했다면 어떤 클라우드를 기반으로 할지 정해야하는데, 저는 고민없이 AWS를 사용하고자 했습니다. 아무래도 GCP / Azure / AWS 이 3가지의 클라우드가 비교 대상이었으나 이미 소규모의 웹페이지를 lightsail 이라는 AWS 서비스 중 하나 이용하고 있기 때문이기도 하고 아마존 자체의 쇼핑몰 자체도 분석해보적이 있어 참 많은 서비스들을 지원하는 걸로 알고 있었고 좀더 친숙했기 때문인데요, 그럼 AWS에서 제공하는 굉장히 다양하고 많은 서비스 중에서 내가 하고자하는 서버의 개발에 필요한 것은 무엇일까요? 리서치해보면 API Gateway, Lambda, Amplify, Cognito, DynamoDB, Simple..
백엔드 개발을 지향하시는 분들이나 또는 클라이언트 개발을 하시는 분이 서버를 개발할때 먼저 생각하는 것들이 서버를 어떤식으로 설계하고 구체화할지에 대한 것입니다. 로컬에서 개발을 하더라도 퍼블릭하게 데모를 하거나 PoC를 하고싶다면 클라우드 또는 호스팅하는 서버를 집에 설치해서 셋업을 해야하는데요. 그만큼 백엔드를 개발하는 것과, 개발한 구현체를 디플로이를 어떻게 할거냐도 어떤 솔루션이나 서비스를 만들때 고민해야하는 것 중 하나입니다. 그중에서 오늘은 이러한 서버별 특징과 장단점 그리고 역사에 대해서 먼저 집고 가도록 하겠습니다. Serverless의 개념 서버가 없다는 뜻이지만, 보이지 않는 곳에 물리적인 서버가 있지만 관리하는 리소스가 최소화되어 서버가 없는 거 처럼 느끼는 것 IaaS Infrast..