스프링클라우드 관련 용어 정리

뿌이·2022년 2월 9일
0

스프링 클라우드

목록 보기
7/32

클라우드

인터넷 기반의 컴퓨팅, 즉 인터넷 상의 가상화된 서버에 프로그램을 두고
필요할때마다 컴퓨터나 스마트폰 등에 불러와 사용하는 서비스이다.
인터넷 통신망 어딘가에서 구름에 싸여 보이지 않는 컴퓨팅 자원(CPU, 메모리, 디스크 등)을
원하는 대로 가져다 쓸 수 있다.

로컬 또는 개인용 컴퓨터에서 파일 및 데이터에 액세스하는 대신 인터넷 지원 디바이스에서 온라인으로 액세스하므로 언제 어디에서나 필요한 정보를 사용할 수 있습니다.

SaaS -  Software as a Service

software를 service로 이용하겠다 라는 뜻
Cloud환경에서 동작하는 응용프로그램을 서비스 형태로 제공하는 것을 Saas라고 합니다.

SaaS는 클라우드 서비스 형태 중 가장 완성된 형태의 클라우드 서비스이다.
SaaS를 이용할 경우 사용자는 인프라 구축, 개발 환경 세팅 및 소프트웨어 개발에 소요되는 비용을 절약할 수 있기 때문에 자체적으로 소프트웨어를 개발하는 것 대비 초기 비용을 대폭 줄일 수 있다.

하지만, 인터넷 연결 상태에 따라 서비스의 성능이 달라질 수 있고, 제공 업체가 이미 만들어 놓은 소프트웨어 그대로 사용해야 하기 때문에 불필요한 기능이 비용에 포함되어 있기도 하다.
‘마이크로소프트365’나 ‘구글doc’등이 SaaS에 해당된다.

내가 사용료를 내고 프로그램을 관리하는게 아니라, 그냥 사용하면 되는 ..
소프트웨어를 서비스처럼 사용하는게 SaaS

OAuth 2.0

대부분의 서비스는 인증(Authentication)과 리소스에 대한 권한부여(Authorization)기능이 필요합니다.
인증과 권한부여 기능은 다양한 방법으로 제공되고 있는데 대표적인 방법으로 OAuth를 사용하고 있습니다. Facebook, Google, Twitter 등 대형 서비스에서 널리 사용되고 있기 때문에 많은 개발자에게 친숙한 방법

인증 및 권한부여를 위해서 OAuth 프레임워크의 현재(2017.03.13) 버전은 2.0이며 해당 버전의 스펙 문서는 RFC 6749에서 확인할 수 있습니다. 
OAuth 2.0은 인증 및 권한부여에 관한 기본적인 흐름(flow)뿐만 아니라 목적에 맞게 확장할 수 있도록 설계 되어 있다.

OAuth는 서버와 클라이언트 사이에 인증을 완료하면 서버는 권한부여의 결과로써 
`access token`을 전송합니다. 
클라이언트는 `access token`을 이용해서 접근 및 서비스를 요청할 수 있습니다. 
서버는 `access token` 기반으로 서비스와 권한을 확인하여 접근을 허용할지 말지를 결정하고, 
결과 데이터를 클라이언트에게 보내줍니다. 
서버는 `access token`을 기반으로 클라이언트를 확인하여 서비스하기 때문에, 
세션(session)이나 쿠키(cookie)를 이용해 클라이언트의 상태정보를 유지할 필요가 없습니다.

Access Token

엑세스 토큰(Access Token)은 로그인 세션을 위한 보안자격(security credentials)을 가지고 있으며,
이는 사용자/사용자 그룹/사용자 권한/특별한 경우 응용프로그램을 식별

스프링 부트

스프링 프레임워크 기반 프로젝트를 어려운 설정이나, WAS에 대한 설정 없이
바로 개발에 들어갈 수 있도록 만든 프레임워크이다.

  • 스프링 프레임워크를 사용하려면 많은 XML 설정 파일들을 장성해야하고, 기존에 사용했던 설정들을
    copy and paste하거나 검색을 통해 일일이 설정을 해야하나 스프링 부트를 사용하면 복잡한 설정 없이
    쉽고 빠르게 프레임워크를 사용할 수 있다.

스프링 클라우드

스프링 클라우드란 스프링 프레임워크 환경에서 마이크로서비스아키텍처(MSA)를 구축할 수 있도록 도와주는
Spring Boot기반의 프레임워크다.
쉽게말해 분산환경 시스템을 구축하는데 도움을 주거나 관리할 수 있는
프로젝트(Spring cloud는 Spring community인 spring.io에서 오픈소스 프로젝트여서 프로젝트라고 일컬음) 들을 의미

쿠버네티스

결국 컨테이너를 관리하기 위한 툴

도커는 컨테이너를 배포 하기위해 쓰이는데, 여러개의 컨테이너를 동시에 켜야 한다면, 수동으로 해줘야한다.
그래서 많은 컨테이너를 갖고잇을 때 수동으로 일일히 킬 수 없어서 나온게 쿠버네티스!

역할

  1. (컨테이너를 모니터링 해줌 : 컨테이너가 많은경우 쿠버네티스가 매우 유용)
    만약 많은 컨테이너중에 하나라도 죽으면 도커는 서버 재가동을 수동으로 해야하지만
    쿠버네티스는 죽은 서버를 찾아내서 바로 자동으로 재시작을 해줌
  1. 쿠버네티스는 자동으로 컨테이너도 생성해줌!
    만약 많은 사람들이 갑자기 웹사이트에 접속했는데 트래픽이 걸릴거같으면 자동으로 컨테이너를 생성해줌;;
    쿠버네티스가 알아서 알맞은 수를 찾아서 컨테이너 숫자를 줄였다가 늘렸다가 해준다.

  2. 서버를 끌 일이 X
    컨테이너에 신규버전을 업데이트를 한다 생각하면, 원래는 잠시 서버를 껐다가 신규버전 올리고 재시작 했어야 하지만, 쿠버네티스는 서버를 끄지않고도 자동으로 업데이트를 해서 서버를 끌 일이 없음!!!!
    이게 쿠버네티스를 쓰는 이유

하지만 많은 컨테이너를 운영하고 잇지 않다면 굳이 쿠버네티스를 사용할 이유는 없다.

이스티오

이스티오(Istio)는 서비스 메시가 더 복잡해지기 전에 이를 관리하는 기술
2017년 5월에 Google, Lyft, IBM에서 내놓은 서비스 메쉬(Service Mesh) 솔루션입니다.
서비스 메쉬는 마이크로서비스아키텍처(MSA) 구조에서 각 서비스들간의 트래픽을 제어하는 역할을 합니다.

주요 기능

  • 서비스간의 트래픽이나 API 호출을 컨트롤
  • 통신사이의 트래픽을 암호화하고 인증과 권한제어가 가능함.
  • 트래픽 정책이나 자원 제어
  • 서비스들에 대한 tracing, monitoring, logging을 자동으로 수행

Keycloak

레드햇이 만든 SSO 오픈소스
인증과 인가표준(SAML, OAuth 2.0 등)을 제공

형상관리 도구 종류

  • Git
    분산형 버전관리 시스템 . Repository의 완전한 복사본을 로컬에 저장할 수 있다.
    처리속도가 빠르지만 대용량 코드 관리에 부적절\
  • SVN
    상관리/소스관리 툴의 일종. 중앙관리만을 지원. 다른 사용자의 커밋과 엉키지 않으며,
    커밋 실패 시 롤백 기능을 지원.
    안정성에 있어 CVS보다 상대적으로 좋지 않다
  • CVS
    90년에 출시된 무료 서버-클라이언트 형상관리 시스템. 파일 전체를 저장하는 것이 아니라 변경사항만을
    저장함으로 용량을 적게 차지하지만 속도가 상대적으로 느리다.
  • Perforce
    빠른 속도, 빠른 Merge가 가능하며 큰 리소스 관리에 좋다.
    하지만 유료이고 파일명이 바뀌면 히스토리 추적이 곤란
  • SourceSafe
    등 이 있다.

형상관리란?

소스코드 변경사항, 변경사항을 '버전'이라는 개념을 통해 관리하는 기능을 포함해
프로젝트와 관련된 모든 변경사항을 관리하는 것

minimum viable product

최소기능제품이라는 뜻
좀 더 간단하게는 '최소 기능 제품' 혹은 '최소 요건 제품' 정도로 생각하면 될 것 같다.
여기서 말하는 최소 기능이란 고객이 꼭 필요로 하는 기능들이다.

최소 기능 제품이라고 해서 대충 껍데기만 있는 제품을 말하는게 아니라
고객이 실제 실행하려는 비즈니스가 올바로 동작하는 최소한의 기능을 갖춰야 한다.
MVP를 통해 고객에게 필요한 기능을 빠르게 제공함과 동시에, 고객으로부터 피드백을 받을 수 있다.

MVP패턴이란?

MVP 패턴은 MVC 패턴에서 Controller를 제거하고 Presenter를 추가한 것 입니다.
Controller 대신에 Presenter로 대체한 이유는 View와 Model의 의존성을 없애기 위함
mvp 설명 잘해놓은 블로그 참조하면 더 많이 알 수 있음!

profile
기록이 쌓이면 지식이 된다.

0개의 댓글