lambda 3

세번째 글 - 패키지 만들기

애플리케이션이 해야 할 일이 많아지고 규모가 커지게 되면 코드를 분리해야 하는 경우가 생깁니다. 우리가 지금까지 만들었던 것처럼 main.go라는 파일 안에 모든 로직들을 넣을 순 없게 됩니다. 그래서 패키지화라는 과정을 통해 애플리케이션의 로직을 비슷한 역할을 하는 코드들끼리 모아 둡니다. 파이썬에서는 디렉터리를 만들고 __init__. py라는 파일을 만들어서 패키지화를 할 수 있습니다. 비슷한 방법으로 Go 언어 역시 패키지화를 할 수 있습니다. 하지만 Go 언어에서의 패키지화는 개인적으로는 파이썬 보다 훨씬 편하다고 생각합니다. 그리고 Go 언어가 가지는 여러 가지 특징 중 하나가 손쉬운 패키지화라고도 생각합니다. 이번 글에서는 우리가 앞에서 다뤘던 애플리케이션을 패키지화해서 관리하는 방법에 대해..

IT/GoLang 2021.06.26

두번째 글 - 함수 사용하기

오늘은 Go 언어의 함수에 대해 살펴보겠습니다. 사실 언어를 공부하게 되면 제일 먼저 학습하게 되는 것이 변수 선언 같은 것일 텐데요, 여기서는 조금 다르게 함수를 먼저 살펴보겠습니다. 지난번에 만들었던 Hello Workd on API Gateway의 코드(https://fallwalker.tistory.com/4) 를 바탕으로 함수를 만들어서 여러 개의 Path를 처리할 수 있도록 해보겠습니다. URI 별로 분기 하기 우리가 만든 Go 애플리케이션은 람다로 실행되고 앞단의 HTTP 요청은 API Gateway가 처리해 주기 때문에 Header와 Path와 같은 HTTP와 관련된 데이터들은 인자로 받을 수 있습니다. handler() 함수에서 인자로 받고 있는 events.APIGatewayProxyR..

IT/GoLang 2021.06.20

첫번째 글 - Hello World on API Gateway

Go 언어는 Go 루틴, 고계함수, Interface 등과 같이 Go 언어를 Go 언어 답게 만들어 주는 몇가지 기능들이 있습니다. 사실 이런 것들이 Go 언어를 어렵고 복잡하게 만들기도 하지만 그만큼 강력하게 만들어 주기도 하죠. 하지만 이런 특징적인 기능들 없이 기본적인 기능들만 잘 활용해도 Go 언어를 이용해서 다양한 애플리케이션을 만들 수 있습니다. 특히 AWS Lambda 서비스와 함께 동작하면 간단하면서도 확장성 높은 API 서버 혹은 배치 작업들을 만들어 낼 수 있죠. 이번 시리즈의 목표도 그렇습니다. Go 언어를 Go 언어 답게 만들어 주는 특징적인 기능들을 빼고, 기본적인 문법들과 패턴들을 이용해서 나에게 필요한 애플리케이션을 만들어 보는 시리즈 입니다. 하나의 글 마다 목표로 하는 애플..

IT/GoLang 2021.06.06