AWS Lambda, API Gateway, Cloudwatch로 서버리스(serverless) API 구축 팁(13)

AWS Lambda와 API Gateway, Cloudwatch를 이용해 서버리스 API를 구축하면서 알아두면 도움이 될만한 내용 중 첫번째. AWS Lambda는 다양한 프로그래밍 언어를 지원하며, 이 포스트는 Python을 기준으로 작성되었다. Lambda 함수를 설정할 때와 handler 함수의 특징을 설명하고, 외부 라이브러리를 설치하고 패키징 후 배포하는 방법을 다룬다.
Read more →

Python3, pathlib 모듈에 대해서

pathlib 모듈은 파일 시스템을 객체 기반으로 다루기 위해 PEP428에서 시작 되었고, Python3.4에서 공식 빌트인 모듈로 추가 되었다. 파일 시스템을 객체 기반으로 다뤘을 때 장점은 datetime, time, ipaddress 모듈처럼 추상화된 인터페이스를 사용했을 때 얻는 이점과 동일하다. pathlib 모듈은 OS에 상관없이 경로를 나타내고, 다룰 수 있는 클래스들을 정의하고 있다. 이 클래스는 크게 PurePath와 Path로 나뉠 수 있다. PurePath는 실제 파일 I/O와 관계없이 순수한 경로 연산만 담당하고, Path는 Concret path 라고도 부르며 시스템 I/O 연산까지 수행할 수 있다.
Read more →

챗봇 구축을 위한 Serverless 서비스, AWS Lex 개념과 구성 요소

개인적인 학습 배경 이야기 서버리스(Serverless)는 일반적인 웹서버나 WAS(Web Application Server) 또는 Database 같은 백엔드를 구성할 때 직접 물리적인 서버 구축부터 설치, 운영까지 담당하지 않고, 클라우드 환경에서 제공하는 관리형 서비스를 이용하거나 함수(Function, 기능 로직) 단위로 실행할 수 있는 서비스형 환경을 의미한다. 대표적인 예로 AWS Lambda는 FaaS(Function as a Service) 형태의 서버리스에 속하고, AWS S3 나 DynamoDB 도 서버리스라고 할 수 있다. 개인적인 생각으로 서버리스는 변화가 빠른 시대에 사용자들의 여러가지 요구사항을 빠르게 반영하고, 새로운 시도할 때 모든 것을 A부터 Z까지 만들수 없기 때문이지 않을까 생각한다.
Read more →

젠킨스(Jenkins)에서 파이썬 가상환경(venv) 세팅 가이드 (feat. pyenv)

젠킨스(Jenkins)에서 파이썬(Python)을 이용한 작업 스케줄을 등록할 때 빈번하게 설정하는 파이썬 가상 환경(venv) 세팅 가이드 (feat. pyenv)
Read more →

RabbitMQ 동작 이해하기

AMQP를 구현한 RabbitMQ 내부 구성과 동작 방식을 이해함으로써 실전에서 RabbitMQ를 운영하기 위한 기초를 다진다.
Read more →

Ubuntu 에서 RabbitMQ 설치하기

RabbitMQ 서버를 설치하는 가이드 이며, 공식 사이트를 바탕으로 Ubutu 16.04 환경에서 설치
Read more →

Django에서 pytest로 테스트하기 위한 기본기

Django 프로젝트에서 Pytest를 이용해 유닛 테스트를 작성하기 위해 사용하는 pytest-django 플러그인의 기본 사용법
Read more →

분산 비동기 작업 처리를 위한 Celery 첫걸음

Celery를 이용해 비동기 작업을 처리하기 위한 Celery 개념과 기초 사용법
Read more →

자바스크립트 테스트 프레임워크 간단 비교

테스트 프레임워크 선택 Jest Delightful JavaScript Testing 페이스북에서 만들었다. (Jasmine 기반) 고통 없는(Painless), 즐거운(Delightful) 자바스크립트 테스트 고통 없는 테스트는 없다 자바스크립트 테스트는 어렵다 웹사이트를 테스트하는 것은 매우 어렵다 테스트 대상이 제한적이고, 구현이 복잡하며 느리고 들어가는 공수가 많다 적절한 전략과 올바른 도구를 조합하면, 거의 모든 범위를 테스트할 수 있다 Sinon.js 와 동일한 Assertion, Mocking, Spying 기능을 제공한다 테스트 커버리지 리포팅 툴인 Istanbul 을 내장하고 있다 Mocha Jamine과 다르게 서드파티 Assertion, Mocking, Spying 도구를 사용한다 그만큼 유연하고, 확장성이 뛰어남 Jasmine 오랜 시간 사용자와 커뮤니티에 의해 생성된 방대한 자료 거의 모든 버전에서 Angular 지원 테스팅 도구가 제공하는 것들 (Jest 와 Sinon을 사용한 예제로 구성)
Read more →

Python3 Formatted String Literals (aka f-string)

PEP 498 – Literal String Interpolation | Python.org in Python 3.6 ‘f’ 또는 ‘F’ 를 앞에 붙인 문자열 리터럴 bar = 'World' f'Hello {bar}' # 'Hello World' Formatted String Literals 또는 f-sting 이라고 부른다 중괄호 {}로 감싸진 필드 안에 변수가 치환되며, 일반적인 파이썬 표현식도 실행된다. 심지어 Lambda 도 사용할 수 있다 bar = ['a', 'b', 'c'] # 파이썬 표현식 실행 f'{(",".join(bar))}' # 'a,b,c' # Lambda 표현식 f'{(lambda x: x*2)(3)}' # '6'
Read more →