Load balancers

1. load balancing 로드 밸런싱은 네트워크 트래픽을 여러 서버에 분산시키는 프로세스입니다. 이렇게 하면 단일 서버에 너무 많은 수요가 발생하지 않습니다. 작업을 고르게 분산함으로써 로드 밸런싱은 애플리케이션 응답성을 향상시킵니다. 또한 사용자를 위한 응용 프로그램 및 웹 사이트의 가용성을 높입니다. No load Balancing load Balancing 로드 밸런싱은 네트워크 트래픽을 여러 서버에 분산시키는 프로세스. 단일 서버에 너무 많은 수요가 발생하지 않도록 작업을 고르게 […]

Test-Driven Development

1. TDD의 이해 XP(eXtreme Programming) 창시자 중 한 명이며, TDD를 주도한 켄트 벡은 TDD를 소개한 자신의 책에서 “프로그램을 작성하기 전에 테스트를 먼저 작성하는 것” 이라고 테스트 주도 개발을 정의했습니다. 최초에는 테스트 우선개발이라고 불렸으나 지금은 테스트 주도개발 이라고 불리고 있습니다. TDD는 아래와 같은 차이로 이해할 수 있습니다. “문서로 만들어 머리로 생각하고 눈으로 확인할 것인가?“ “예상 결과를 코드로 표현해놓고 해당 코드가 자동으로 […]

Domain Driven Design – 2부 (Tactical Design)

2부. Tactical Design Tactical Design Tool 들은 세부적인 사항을 구현하는 것을 위해 필요하며, 주로 Bounded Context 내의 구성 요소들을 관리합니다. 이것은 개발상의 실제적인 표준을 제공하는데 services, entities, repositories, factories 와 같은 소프트웨어 디렉토리 구조들에 익숙한 개발자들이 많을 것인데, 이 모든 것은 전부 DDD에서 나온 개념입니다. 이러한 Tactical Design은 Strategic Design과 달리 개발을 진행하는 과정에서 계속해서 바뀌고 개선됩니다. Model Driven Design […]

Domain Driven Design – 1부 (Strategic Design)

Domain Driven Design 도메인 주도 디자인이란 도메인이 중심이 되는 개발 방식을 말하며, 요구 사항을 모으는 것부터 low_level 디자인까지 소프트웨어 개발의 라이프사이클 전체를 포함하는 방법론 이라고 할 수 있습니다. DDD의 목적은 소프트웨어의 연관된 부분들을 연결하여 계속 해서 진화하는 모델을 만들어 나가 복잡한 어플리케이션을 쉽게 만들어 가는 것에 있습니다. 즉, Loose Coupling과 High Cohesion으로 보다 가벼운 설계로 소프트웨어의 위기와 커뮤니케이션 문제를 해결하기 […]

AWS Route 53을 이용한 도메인 적용

1. DNS(Domain Name Server) DNS는 사람이 읽을 수 있는 도메인 이름(예:www.haru.com)을 컴퓨터나 스마트폰 등 다양한 디바이스에서 읽을 수 있는 IP주소(예:192.168.x.x)로 변환하는 역할을 한다. DNS는 도메인 이름을 -> IP 주소로 변환하는 역할 인터넷 상의 모든 컴퓨터는 IP Address라는 숫자를 사용해 서로를 찾고 통신한다. DNS가 없었다면 웹 사이트에 접속하기 위해 웹 서버의 IP Address를 알아야만 웹 페이지에 접속가능하다. DNS서비스가 있기 때문에 긴 […]

VS Code로 Python 코드 원격 디버깅하기

디버깅을 편리하게 수행하기 위해 보통 Visual Studio Code와 같은 코드 에디터를 사용합니다. 하지만 코드를 원격 서버에 배포한 후에는 어떻게 디버깅을 해야 할까요? 원격 서버에 VS Code와 같은 에디터가 설치되어 있지 않아도 디버깅 할 수 있는 방법은 없을까요? 이번 글에서는 매우 많은 사람들이 이용하는 VS Code에서 원격 서버에 있는 Python 코드를 디버깅하는 방법을 알아보려고 합니다. 원격 디버깅 시작하기 1. 확장 프로그램 […]

AWS EC2 ME 조치 자동화하기

ME 자동화 조치, 꼭 필요한가? AWS에서는 고객들이 사용 중인 EC2 인스턴스를 재부팅하는 등 자체적으로 유지관리 조치를 수행합니다. AWS에서 수행하는 유지관리의 종류는 아래와 같습니다. Instance stop(인스턴스 중지): 예약된 시간에 인스턴스가 중지됩니다. 인스턴스를 다시 시작하면 새 호스트로 마이그레이션됩니다. 이러한 유형은 Amazon EBS가 지원하는 인스턴스에만 적용됩니다. Instance retirement(인스턴스 만료): 예약된 시간에 인스턴스가 Amazon EBS에서 지원되는 경우 중지되거나 인스턴스 스토어에서 지원되는 경우 종료됩니다. Instance […]

Ansible로 AWS EC2 컨트롤하기

Ansible은 왜 사용할까? Ansible은 ssh를 이용하는 프로비저닝 자동화 도구입니다. Ansible은 ssh 접속을 통해 수십대, 수백대의 원격 서버에 접속해서 동일한 프로비저닝 작업을 동시에 수행할 수 있는 훌륭한 도구입니다. Ansible의 대표적인 장점이라면 아래와 같이 꼽을 수 있을 것 같습니다. 에이전트가 필요 없음 yaml 언어로 쉽게 작성할 수 있는 플레이북 python으로 개발됨 Ansible은 원격 서버에 에이전트를 설치하지 않아도 Ansible에서 제공하는 기본 모듈만으로 정말 […]

DB Cluster parameter group 과 DB Instance parameter group 의 차이점 및 활용

서론 안녕하세요 베스핀글로벌입니다 🙂오늘 전해 드릴 기술 내용은 많은 분들께서 관심 있어 하실 Aurora Parameter에 관한 내용입니다! 많은 고객님들께서 aurora cluster parameter group 과 instance parameter group의 차이가 정확히 무엇인지 궁금해 하십니다. 두 parameter group 에 동일한 parameter도 존재한다면 어떤 값이 우선적으로 적용이 되는지 헷갈리는 점이 있기 때문에 이번 글을 준비해 보았습니다.. Cluster parameter vs Instance parameter DB Cluster parameter […]

github-action 으로 ec2 에 배포하기

Github Actions는 Github 저장소를 기반으로 Github에서 제공하는 Workflow 자동화 도구 입니다. Workflow는 Github Repository에 있는 소스들의 build, test, release, deploy 을 flow에 정의된 순서대로 실행 할 수 있도록 지원합니다. 이 Workflow는 설정된 Runner 위에서 실행이 되며 Github에서 두 종류의 Runner를 제공합니다. Github-hosted Runner(Github에서 지원하는 가상머신), Self-Hosted Runner(사용자가 직접 호스팅하는 환경)가 있습니다. Github-hosted Runner는 Microsoft Azure 기반의 가상머신으로 Linux/Windows를 지원하며 Dv2 […]