챗봇 구축을 위한 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 →

젠킨스 Master/Slave 분산 빌드 환경 구축하기

  1. Master + (Slave) Agent Jenkins 는 보통 모든 작업을 수행할 수 있는 단일 Master로 구성한다. 작업 부하를 분산하기 위해 Master + (Slave) Agent 구성도 가능하다. Master 는 프로젝트(작업)을 등록하고, 관리하기 위한 GUI와 API를 제공하고, Agent는 작업 실행만 담당하게 된다. Agent를 사용하는 이유에는 Master가 실행중이지 않은 다른 보안 환경에서 작업을 수행하거나 배포하기 위함도 있다.
  2. Master/Agent 구성 방법 Master 에서 Agent 연결하기 먼저 Master가 Agent가 실행되고 있는 네트워크상에 접근할 수 있어야 한다.
Read more →

앵귤러 두걸음(Angular Two Steps)

앵귤러 첫걸음 두걸음 이 글은 ‘앵귤러 첫걸음(저자: 조우진)’ 책을 읽고, 초반 부분만 정리한 내용입니다. 개인적으로 앵귤러로 개발하면서 굉장히 도움을 많이 받은 책입니다. 하지만 앵귤러를 처음 시작하는 분들께서는 살짝 어렵게 느껴질 수 있을것 같습니다. 그래도 저는 이 책을 통해서 첫걸음보다는 두걸음 이상 걷게 되었다고 생각합니다. 직접은 아니지만 이렇게라도 저자께 감사하다는 말씀 드리고 싶습니다. 📖 일단 시작하기 타입스크립트 타입은 언제 선언하는가? (철학) 필요한 지점에 타입 정보를 기술하자 타입스크립트를 사용한다고 해서 자바스크립트 코드의 모든 부분에 타입 정보를 일일이 추가할 필요는 없다 타입 선언 정보 타입스크립트는 자바스크립트 언어 명세에 없는 타입 정보를 타입 선언 파일(Typescript Declaration file) 형식으로 타입 정보만 추가로 내포 확장자는 d.
Read more →