Glossary

용어 정리

A

AWS

AWS(Amazon Web Services)는 아마존닷컴의 클라우드 컴퓨팅 사업부이며 현재 클라우드 컴퓨팅 분야에서 압도적인 세계 1위를 차지하고 있으며 2022년부로 16주년을 맞는 다국적 기업이자 역사상 가장 큰 IT 및 클라우드 기업 중 하나이다. 아마존 웹 서비스는 다른 웹 사이트나 클라이언트측 응용 프로그램에 대해 온라인 서비스를 제공하고 있다. 이러한 서비스의 상당수는 최종 사용자에 직접 공개되는 것이 아니고, 다른 개발자가 사용 가능한 기능을 제공하는 플랫폼을 제공하는 PaaS이다.

API Gateway

API 게이트웨이 는 실제 백엔드 서비스 또는 데이터와 접속하고 API 호출에 대한 정책, 인증 및 일반 액세스 제어를 적용하여 중요한 데이터를 보호하는 트래픽 관리자입니다. API 게이트웨이는 백엔드 시스템 및 서비스에 대한 액세스를 제어하는 방법이며 외부 클라이언트와 백엔드 서비스 간의 통신을 최적화하여 클라이언트에게 원활한 경험을 제공하도록 설계되었습니다. API 게이트웨이는 서비스의 확장성과 고가용성을 보장합니다. 요청을 적절한 서비스로 라우팅하고 요청자에게 응답을 다시 보내는 기능을 담당합니다.

D

Relational Database

관계형 데이터베이스(Relational Database)로 풀이되는 RDB는 말 그대로 관계형 모델을 기반으로 하는 데이터베이스이다. 이를 유지하고 관리하기 위한 시스템을 RDBMS (Relational Database Management System) 이라고 부른다.

  • 2차원 데이터로 표현된다 (행/열)
  • 상호관련성을 가진 테이블의 집합으로 구성된다
  • 테이블 사이의 관계를 외래키로 나타낸다
  • 스키마 변경이 어렵다
  • Vertical Scalable 하지만, Horizontal scale은 어렵다
  • 메인테넌스 코스트 / 사용 요금이 비싸다
  • SQL을 사용해 데이터를 질의한다
  • ACID 성질을 갖는다

NoSQL Database

Non-SQL 이라고도 하고, Not only SQL 의 약자라고도 한다. 관계형이 아닌 데이터 모델을 총칭하고, 도큐먼트 모델 / 키-값 모델 / 그래프 모델 / 와이드 컬럼 모델 등 다양한 데이터 모델이 있다.

  • 양한 방식으로 데이터를 표현한다
  • 테이블(혹은 컬렉션 혹은 또 다른 명칭) 사이에 딱히 명시된 제약이나 규칙이 없다
  • 스키마가 고정적이지 않고, 매우 유연하다
  • Horizontal Scale이 쉽다
  • 코스트 저렴 / 오픈소스도 많다
  • 연산이 빠르고 빅데이터 & 실시간 연산에 적합하다

도큐먼트 모델은 레코드 하나를 오브젝트(도큐먼트) 형식으로 표현한다. 자유로운 스키마 구조를 가지며 구조가 확정되지 않은 데이터를 밀어넣고, 자유롭게 작업하기 좋다. (MongoDB) 그래프 모델은 데이터를 버텍스와 엣지로 그래프에 표현하는 방식이다. 데이터 사이의 유기적인 관계를 표현하기에 적합하다. (Neo4j) 키/값 모델은 하나의 키에 값을 맵핑하는 해시 구조의 데이터 모델이다. 빠르게 데이터에 접근할 수 있는 장점이 있다. (redis) 와이드 컬럼 모델은 테이블 형태를 취하지만 행마다 갖는 컬럼의 형태가 고정되어 있지 않은 데이터 모델이다.

F

FaaS

FaaS(Function-as-a-Service)는 개발자가 자체 인프라를 유지관리할 필요 없이 애플리케이션 패키지를 기능으로 빌드, 실행, 관리할 수 있게 해주는 일종의 클라우드 컴퓨팅 서비스입니다.

K

kafka

Apache Kafka(아파치 카프카)는 LinkedIn에서 개발된 분산 메시징 시스템이다. 대용량 실시간 로그처리에 특화되어 기존 메시징 시스템보다 TPS(Transaction per Second)가 우수하다. 서비스 제공자가 퍼블리시(Publish)한 이벤트를, 필요한 소비자가 구독(Subscribe)하여 활용하는 Pub/Sub 기반 아키텍처가 특징이다.

L

Load Balancer

로드밸런서는 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭한다. 클라이언트와 서버풀(Server Pool, 분산 네트워크를 구성하는 서버들의 그룹) 사이에 위치하며, 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 해준다.

  • L4 로드밸런서는 네트워크 계층(IP, IPX)이나 트랜스포트 계층(TCP, UDP)의 정보를 바탕으로 로드를 분산한다. IP주소나 포트번호, MAC주소, 전송 프로토콜에 따라 트래픽을 나누는 것이 가능하다.
  • L7 로드밸런서의 경우 애플리케이션 계층(HTTP, FTP, SMTP)에서 로드를 분산하기 때문에 HTTP 헤더, 쿠키 등과 같은 사용자의 요청을 기준으로 특정 서버에 트래픽을 분산하는 것이 가능하다.

M

Monolithic

MSA와 반대되는 개념으로 설명하기 위한 전통적인 아키텍처를 지칭, 소프트웨어의 모든 구성요소가 한 프로젝트에 통합 되어 있는 형태

MSA

MicroService Architecture 마이크로서비스 아키텍처에 대한 정확한 정의는 없다. 하지만 마이크로서비스란 작고, 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스로 구성된 프레임워크라고 할 수 있다. 마이크로서비스는 완전히 독립적으로 배포가 가능하고, 다른 기술 스택(개발 언어, 데이터베이스 등)이 사용 가능한 단일 사업 영역에 초점을 둔다.

Maven

Maven은 자바용 프로젝트 관리도구로 Apache Ant의 대안으로 만들어졌다. 프로젝트의 작성부터 컴파일, 페트스 등 프로젝트 라이프사이클에 포함되는 각 테스트를 지원해 준다.

R

Region

아마존 웹 서비스의 데이터 센터를 리전(region)이라고 부른다.

  • 아시아 태평양 (6개 리전)
    • 아시아 태평양 (도쿄), 일본
    • 아시아 태평양 (서울), 대한민국
    • 아시아 태평양 (싱가포르)
    • 아시아 태평양 (뭄바이), 인도
    • 아시아 태평양 (시드니), 오스트레일리아
    • 중국 (베이징)

S

Software Architecture

소프트웨어 구조 또는 소프트웨어 아키텍처(software architecture)는 소프트웨어의 구성요소들 사이에서 유기적 관계를 표현하고 소프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙이다.

Strangler pattern

특정 기능을 새로운 애플리케이션 및 서비스로 점진적으로 교체하여 레거시 시스템을 단계적으로 마이그레이션한다. 레거시 시스템의 기능이 교체되면 결국 새 시스템이 기존 시스템의 모든 기능을 대체하여 기존 시스템을 중단하고 서비스 해제할 수 있다. 백 엔드 애플리케이션을 새로운 아키텍처로 점진적으로 마이그레이션하는 경우 이 패턴을 사용한다.

다음 경우에는 이 패턴이 적합하지 않을 수 있다.

  • 백 엔드 시스템에 대한 요청을 가로챌 수 없는 경우
  • 대량 교체의 복잡성이 낮은 소규모 시스템의 경우

Scale-Up

서버 자체의 성능을 확장하는 것을 의미한다.
ex) CPU를 i3 -> i7으로 업그레이드

Scale-Out

기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 증설하여 운영하는 것을 의미한다.