본문

[AI 입문] 기초부터 시작하는 인공지능 여정

[AI 입문] 기초부터 시작하는 인공지능 여정은 AI의 기본 개념부터 심화 학습 방법, 그리고 개발 도구까지 폭넓게 다룹니다.

아래는 각 카테고리별 주요 내용입니다:

 

1. AI 및 언어 모델의 기본 이해:

- 자연어 처리(NLP): 컴퓨터가 사람의 언어를 이해하는 원리와 방법을 소개합니다. 일상 대화부터 복잡한 문서까지, 언어의 다양한 형태를 컴퓨터가 어떻게 처리하는지 탐구합니다.

- LLM (Large Language Model): 대규모 언어 모델인 GPT, Cohere, LLaMA 등의 개념과 작동 원리를 설명합니다. 이들이 어떻게 대량의 텍스트 데이터를 학습하여 자연스러운 대화, 글쓰기, 질문 응답 등을 가능하게 하는지 알아봅니다.

 

2. AI 학습 방법과 기술의 심화:

- 모델 개선 방법: AI 모델을 더 효과적으로 만드는 다양한 방법론을 다룹니다. 미세조정(Fine-Tuning)과 검색 기반 생성(RAG) 같은 기술을 통해, 모델이 더 많은 정보를 학습하고 더 정확한 결과를 도출하는 방법을 배웁니다.

- 파인튜닝과 지도 학습: 특정 작업이나 주제에 AI 모델을 어떻게 더 잘 맞추도록 학습시킬 수 있는지에 대한 과정을 소개합니다. 이는 모델의 범용성을 넘어 특수한 목적에 맞게 최적화하는 방법에 대한 이해를 돕습니다.

 

3. AI 개발에 사용되는 도구와 프레임워크:

- 기술 도구: 텍스트나 데이터를 AI 모델이 이해할 수 있는 형태로 변환하는 임베딩 기술, 그리고 이러한 데이터를 효율적으로 저장하고 검색할 수 있는 벡터 데이터베이스 시스템에 대해 설명합니다.

- 프레임워크 및 플랫폼: PyTorch, TensorFlow와 같은 AI 개발 프레임워크와 Hugging Face, LangChain과 같은 플랫폼을 통해, AI 모델을 어떻게 더 쉽게 구축하고, 학습하며, 평가할 수 있는지에 대한 지식을 제공합니다.


1. AI 및 언어 모델의 기본 이해:

- 자연어 처리(NLP; Natural Language Processing)

  - 컴퓨터가 인간의 언어를 이해하고 처리하는 기술

 

- LLM(Large Language Model)

  - 대규모 데이터셋에서 학습된 인공지능 언어 모델입니다.
  - 이 모델들은 텍스트를 이해하고 생성할 수 있는 능력을 갖추고 있어, 질문에 답변하거나, 글을 쓰는 등 다양한 언어 기반 작업을 수행할 수 있습니다.

  - (24년 3월 기준) LLM Model TOP5

    - 1. GPT (OpenAI): 다양한 애플리케이션에 사용되는 가장 유명한 모델 중 하나입니다.

      - 대화형 텍스트 생성에 중점을 두고 있으며, 일상적인 대화, 텍스트 생성, 그리고 다양한 질문에 대한 답변을 제공하는 데 탁월합니다.
    - 2. Cohere: 정확도와 견고성에서 높은 평가를 받는 모델로, 여러 회사에서 AI 경험 제공에 사용됩니다.
    - 3. LLaMA (Meta AI): 다양한 크기로 제공되며, GPT-3 모델보다 우수한 성능을 보여주는 연구용 모델입니다.

      - 연구 및 학술 커뮤니티에 더 널리 접근할 수 있도록 설계된 언어 모델입니다. 이는 고성능의 언어 이해 및 생성 작업에 사용됩니다.
      - 다양한 크기의 모델을 제공하여, 다양한 컴퓨팅 환경에 적용 가능합니다. 이는 고급 NLP 연구 및 언어 이해 작업에 주로 사용됩니다.
    - 4. Falcon (TII): 오픈 소스 LLM 중 하나로, 대부분의 사용 사례에 적합하게 미세 조정된 모델입니다.
    - 5. BLOOM: 70개국 이상의 협력을 통해 출시된 오픈 소스 모델로, 다양한 언어 및 프로그래밍 언어에서 사용 가능합니다.

https://www.thedatahunt.com/trend-insight/what-is-llm

 

 


2. AI 학습 방법과 기술의 심화:

- LLM에 외부 데이터 소스를 연동하는 법

  - LLM에 학습 과정에 포함되지 않은 지식을 주입하는 방법은 크게 2가지 입니다. (Fine-tuning vs RAG)

  - 1. Fine-Tuning: 새로운 지식에 관한 텍스트 데이터 소스를 이용해서 LLM의 파라미터를 Fine-Tuning 합니다.

  - 2. RAG(Retrieval-Augmented Generation): 새로운 지식에 관한 텍스트 데이터 소스를 Embedding해서 Vector Storage에 저장하고, 프롬프트 구성을 진행할때 외부 데이터 소스로부터 가져온 텍스트 데이터를 함께 이용해서 프롬프트를 구성한뒤 LLM으로부터 답변을 얻어냅니다.

RAG(Retrieval-Augmented Generation)

 

- 파인튜닝(fine tuning)

  - 특정 작업이나 도메인에 높은 적합성을 확보하기 위해, 이미 훈련된 대규모 언어 모델에 특정 데이터셋을 사용하여 추가적인 학습을 수행하는 작업

 

- Supervised fine-tuning
  - 사전 학습된 모델을 특정 작업이나 데이터 세트에 추가적으로 학습시키는 과정입니다. 이 과정은 지도 학습 방식을 사용하며, 모델은 특정 작업의 세부적인 특성을 학습하여 성능을 향상시킵니다. 이 방법은 학습 시간과 계산 자원을 절약하면서 고품질의 맞춤형 모델을 효율적으로 개발할 수 있는 장점을 가집니다.

  - Supervised fine-tuning을 이해하기 쉽게 설명하자면, 이미 어느 정도 기초 교육을 받은 학생이 특정 과목에 더 전문적인 지식을 얻기 위해 추가 수업을 받는 것과 비슷합니다. 
  - 예를 들어, 우리가 사전 학습된 모델을 고등학교 졸업한 학생이라고 생각해봅시다. 이 학생은 다양한 기본 지식을 갖고 있지만, 아직 전문 분야에 대한 깊은 지식은 없습니다. 이제 이 학생이 의학을 전공하고 싶다고 결정했다고 가정해보겠습니다. 의학과 관련된 추가 수업과 실습을 통해, 이 학생은 의학 분야에서 필요한 전문 지식과 기술을 습득하게 됩니다. 여기서 고등학교에서 배운 기본 지식은 모델이 대규모 데이터에서 사전 학습을 통해 얻은 일반적인 언어 이해 능력에 해당하고, 의학과 관련된 추가 수업은 특정 작업(예: 질문 응답, 문서 분류)에 맞게 모델을 세부 조정하는 과정에 해당합니다.

https://medium.com/neo4j/knowledge-graphs-llms-fine-tuning-vs-retrieval-augmented-generation-30e875d63a35

 

- RAG(Retrieval-Augmented Generation)

  - 검색 기반 답변 생성 모델: 정보 검색(IR)을 통해 얻은 데이터를 기반으로 텍스트 생성 모델을 보강하는 방법입니다.

  - 기존의 대규모 언어 모델(LLM)에 검색 기능을 결합한 것입니다. 이 방식은 주어진 질문에 대해 관련 문서를 검색한 다음, 그 문서들을 기반으로 답변을 생성합니다. 이는 모델이 단순히 기억에 의존하는 것이 아니라, 실시간으로 정보를 검색하여 더 정확하고 깊이 있는 답변을 제공할 수 있게 해줍니다.

  - p.s. 상세설명 https://python.langchain.com/docs/use_cases/question_answering/

https://neo4j.com/developer-blog/knowledge-graphs-llms-multi-hop-question-answering/

 

 


3. AI 개발에 사용되는 도구와 프레임워크:

- 벡터 데이터베이스(Vector DB) == 벡터 스토어(Vector Store)

  - 고차원 벡터 공간에서의 효율적인 검색을 지원하여, 자연어 질문이나 이미지 등을 벡터로 변환하고, 이러한 벡터들 사이의 유사성을 기반으로 정보를 검색

  - 이미지 검색 시스템에서 각 이미지를 벡터로 변환하여 저장하고, 사용자의 쿼리에 가장 유사한 이미지를 빠르게 찾아내는 데 사용합니다.

  - (2024년도 3월 기준) 대표적인 벡터 저장소(vector store)

    - Elasticsearch with the Vector Search plugin, Milvus, Faiss (Facebook AI Similarity Search), ChromaDB, Pinecone 등

 

 

- 임베딩(Embedding)

  - 사람을 글을 읽을때 텍스트를 바로 읽어서 이해한다면, 인공지능 모델들은 텍스트를 직접적으로 입력으로 처리하는 것이 아니라 벡터로 수치화한 뒤에 처리한다. (문서, 문장, 단어 등)

  - 이때 텍스트를 컴퓨터가 이해할 수 있도록 벡터화하는 과정을 '임베딩'이라고 한다.

  - 아래 예시와 같은 식으로 실수가 나열된 값인 벡터로 변환해서 입력을 사용한다.

  - (2024.3 기준) 대표적인 임베딩 모델
    - BERT(Bidirectional Encoder Representations from Transformers), GPT-3(Generative Pre-trained Transformer 3), Transformer-XL, Amazon Titan

  - 임베딩 예시
    - 사과 > (단어 임베딩) > 벡터: [0.12, 0.34, 0.75, -0.12]
    - 안녕하세요 > (문장 임베딩) > 벡터: [0.88, 0.13, 0.754, -0.42]
    - '서울 청년 정책이...중략' > (문서 임베딩) > 벡터: [0.66, 0.33, 0.22, -0.99]

 

- Chunk

  - 데이터나 텍스트를 작은, 관리하기 쉬운 부분으로 나눈 하나의 덩어리

  - Chunking

    - 분할 작업(Chunk)을 수행하는 과정으로, 데이터를 의미 있는 단위로 나누어 처리하는 기술.

    - NLP(자연어 처리)에서 chunking은 문장을 명사구, 동사구 같은 의미 있는 조각으로 분리해 정보 추출이나 문서 분석을 용이하게 한다.

https://aws.amazon.com/ko/what-is/langchain/

 

- 데이터 셋(dataset)
  - 특정 작업이나 연구를 위해 수집되고 정리된 데이터의 집합으로, 머신러닝 모델을 훈련시키거나 통계적 분석을 수행하는 데 필수적인 요소
    - 데이터셋이란 머신러닝, 통계, 데이터 분석 등에서 사용되는 관련 데이터의 모음입니다. 이 데이터는 숫자, 단어, 이미지 등 다양한 형태로 존재할 수 있으며, 특정 주제나 목적을 가지고 정리된 정보의 집합입니다. 예를 들어, 언어 모델을 훈련시키기 위한 데이터셋은 수많은 문장이나 단락으로 구성될 수 있고, 이미지 인식 모델을 위한 데이터셋은 다양한 이미지 파일을 포함할 수 있습니다.
    - 데이터셋은 머신러닝 모델을 훈련시킬 때 '학습'에 사용되는 데이터를 제공하며, 이를 통해 모델은 주어진 입력에 대해 올바른 출력을 예측하는 방법을 학습합니다. 예를 들어, 이미지 분류 작업을 위한 데이터셋은 각 이미지가 어떤 카테고리에 속하는지의 정보(레이블)와 함께 제공되어, 모델이 이미지를 보고 어떤 카테고리인지 분류할 수 있도록 학습됩니다.

https://indiaai.gov.in/article/training-data-used-to-train-llm-models

- 데이터 프레임

  - Python의 Pandas 라이브러리로 사용할 수 있는 테이블 형태의 데이터 (Python의 엑셀과 같은것-)

 

- 코사인 유사도(cosine similarity)
  - (24년 2월 기준) 벡터 간의 유사도를 구할 수 있는 가장 대표적인 방법
  - 두 벡터 간의 코사인 각도라는 개념을 이용해서 벡터간 유사도를 측정하는 방법
    - 임베딩을 통해 컴퓨터가 알아볼 수 있는 벡터로 변환
    - 변환된 벡터들끼리 가장 유사한 벡터를 찾으면, 두 문장은 가장 유사한 의미를 가진 문장

https://en.wikipedia.org/wiki/Cosine_similarity
https://www.learndatasci.com/glossary/cosine-similarity/

 

- 랭체인(LangChain)
  - 대규모 언어모델을 사용하여 어플리케이션 생성을 간소화하도록 설계된 SW 개발 프레임워크입니다.
  - LangChain은 API를 통해서 언어모델을 호출하는 것뿐만 아니라 외부 데이터를 인식하거나 타 시스템에 상호작용하는 어플리케이션 개발을 도와줍니다.
  - 랭체인의 장점

    - 1. 손쉬운 구현

      - 복잡한 LLM을 간단한 몇줄의 코드로 손쉽게 구현할 수 있습니다.

      - 다양한 LLM 모델을 아주 쉽게 갈아 끼울 수 있음

      - 다양한 툴과의 편리한 연동 도 가능하고, Vector Stores를 활용하면 자연어를 벡터 형태로 저장, 관리할 수 있도록 지원하는 부분도 있습니다.

    - 2. 긴 컨텍스트의 지식 주입 가능

      - Document Loaders를 활용해서 PDF나 텍스트 파일과 같은 문서도 간단하게 추출할 수 있습니다.

      - GPT-3.5의 4096 토큰 제한으로 인해 긴 컨텍스트의 내용을 처리하기 힘들다는 문제점이 있는데 랭체인을 이용하면 더긴 컨텍스트의 정보로 LLM과 상호작용할 수 있습니다.
    - 3. 출처 확인 가능

      - LLM의 많은 부분이 블랙박스와 확률적으로 동작하기 때문에 LLM이 만들어낸 텍스트가 왜그렇게 생성되는지 확인하기 어렵고 할루시네이션 (Hallucination) 문제가 발생할 위험성이 있지만, 랭체인을 이용하면 명확한 출처와 함께 LLM이 텍스트를 생성할 수 있습니다.

  - langchain 실습: https://python.langchain.com/docs/get_started/quickstart

https://www.langchain.com/

 

 

- 양자화(Quantization)
  - LLM(대규모 언어 모델)에서 언급되는 "양자화"는 모델의 크기를 줄이고, 실행 속도를 향상시키며, 배포를 용이하게 하는 기술입니다. 기본적으로, 양자화는 모델의 매개변수(가중치)를 더 적은 비트로 표현하는 과정을 말합니다.
  - 일반적으로, 신경망 모델의 매개변수는 32비트 부동소수점 형식으로 저장됩니다. 하지만 양자화를 통해 이 매개변수를 16비트, 8비트, 심지어는 더 낮은 비트 수의 정수로 변환할 수 있습니다. 이렇게 하면 모델의 메모리 사용량이 줄어들고, 연산 속도가 빨라지며, 모바일 기기나 엣지 디바이스 같은 자원 제한적인 환경에서도 모델을 실행할 수 있게 됩니다.
  - 양자화는 특히 대규모 언어 모델 같은 복잡한 모델을 실제 애플리케이션에 효율적으로 배포하고자 할 때 중요한 기술입니다. 모델의 성능을 크게 훼손하지 않으면서도 실행 효율성을 크게 향상시킬 수 있기 때문입니다. 양자화는 모델을 실제 환경에 적용하는 과정에서 중요한 역할을 합니다.

 

- SOTA(State-of-the-art)

  - '현재 최고 수준의 결과'를 가진 모델로, 현재 수준에서 가장 정확도가 높은 모델을 의미

  - LLM SOTA: (24년 2월 기준) OpenAI, AOAI(Azure OpenAI), PaLM(Google), Claude(Anthropic)


- Data lake

  - 대규모 데이터를 원본 형태로 저장할 수 있는 유연한 저장소로, 빅데이터 분석 및 머신 러닝에 활용

  - 다양한 형태의 대규모 데이터 저장: 조화되지 않은 데이터, 반구조화된 데이터, 구조화된 데이터

  - AWS S3, Google Cloud Storage, Azure Data Lake Storage 등

https://www.qlik.com/us/data-lake

 

- Amazon Redshift

  - AWS가 제공하는 대규모 데이터 웨어하우스 서비스로, 페타바이트 규모의 데이터 저장 및 분석을 지원합니다. SQL 기반 쿼리 사용, 컬럼 기반 저장 방식, 데이터 압축 기술로 빠른 분석 성능을 제공하며, 사용자는 필요에 따라 리소스를 확장할 수 있습니다. 보안, 비용 효율성, AWS 및 다양한 데이터 분석 도구와의 호환성이 특징입니다.

  - https://aws.amazon.com/ko/solutions/guidance/devops-on-amazon-redshift/?did=sl_card&trk=sl_card

Amazon Redshift에서 개발 및 운영(DevOps)을 실행하기 위한 모범 사례


- FastAPI
  - Python 기반의 웹서버를 빠르게 생성하기 위한 오픈소스: 비동기 지원 고성능 파이썬 웹 프레임워크
  - FastAPI를 생성하면 빠르게 웹서버를 생성할 수 있음

    - 예시
      - ㅇㅇㅇ아파트 == (로컬)서버
      - ㅇㅇ동 ㅇㅇ호 == FastAPI
  - 실습: https://github.com/i-am-shuan/LLM-telegram-chatbot/blob/main/README.md

ChatGPT로 질의응답 및 DALLE.2 모델기반 그림을 그려주는 Telegram AI Chatbot


- Python REPL
  - Python REPL은 "Read-Eval-Print Loop"의 약자로, 사용자로부터 명령을 받아 읽고(Read), 해당 명령을 실행(Eval), 결과를 출력(Print)하는 반복(Loop) 과정을 말합니다. REPL은 개발자가 프로그래밍 언어를 대화식으로 탐색하고 실험할 수 있는 간단하고 효율적인 방법을 제공합니다.
  - Python에서 REPL은 보통 Python 인터프리터를 실행함으로써 접근할 수 있습니다. 터미널이나 명령 프롬프트에서 `python` 또는 `python3` 명령어를 입력하면 Python의 REPL 환경이 시작됩니다. 이 환경에서는 Python 코드를 한 줄씩 입력하고 바로 결과를 볼 수 있으며, 이는 학습, 빠른 테스트 실행, 라이브러리 탐색, 단편 코드 실험 등에 유용합니다.
  - REPL 환경은 프로그래밍의 즉각적인 피드백을 제공하여 개발 과정을 더 빠르고 직관적으로 만들어 줍니다.

 

- pytorch

  - 딥러닝 및 머신러닝 모델을 설계하고 훈련하기 위한 오픈소스 라이브러리 (FAIR; Facebook AI Research)

 

- tensorflow

  - 구글이 개발한 오픈소스 머신러닝 및 딥러닝 프레임워크

 

- 허깅페이스(Hugging Face)
  - 허깅페이스는 깃헙(GitHub)과 같이 코드를 호스팅하는 플랫폼의 기능을 일부 제공하지만, 주로 인공지능, 특히 자연어 처리(NLP) 분야에서 사용되는 머신러닝 모델과 데이터셋을 공유하고 협업하는 데 중점을 둔 서비스입니다. 허깅페이스는 오픈소스 기여, 모델 및 데이터셋 공유, 그리고 머신러닝 커뮤니티 간의 협력을 촉진하는 것을 목적으로 하며, 특히 Transformers 라이브러리로 잘 알려져 있습니다. 이 라이브러리는 다양한 자연어 처리 작업을 위한 사전 훈련된 모델을 제공합니다. 따라서 허깅페이스는 깃헙처럼 코드 공유 플랫폼의 역할을 하기도 하지만, 주로 AI 및 머신러닝 모델과 데이터셋에 특화된 플랫폼으로 이해하는 것이 더 정확합니다.

https://huggingface.co/

 

- Multimodal
  - LLM(Large Language Models) 분야에서 Multimodal 이란 용어는 여러 종류의 입력 데이터(예: 텍스트, 이미지, 오디오, 비디오 등)를 동시에 처리할 수 있는 모델이나 시스템을 의미합니다. 간단히 말해, Multimodal은 다양한 형태의 정보를 이해하고 통합할 수 있는 기술의 범위를 지칭합니다.
- 이를 이해하기 쉽게 예로 설명하자면, 인간이 세상을 경험하는 방식을 생각해 볼 수 있습니다. 우리는 보고, 듣고, 말하고, 읽고, 쓰는 등 여러 가지 방식으로 정보를 받아들이고 소통합니다. 예를 들어, 친구와 대화할 때, 우리는 그들이 하는 말뿐만 아니라 표정, 몸짓, 그리고 주변 환경의 시각적 요소들도 함께 해석합니다. 이 모든 다양한 정보 형태를 통합하여 우리는 상황을 더 잘 이해하고, 보다 적절하게 반응할 수 있습니다.
  - Multimodal 모델에서도 비슷한 원리가 적용됩니다. 이 모델들은 단순히 텍스트 정보만을 처리하는 대신, 이미지, 오디오, 비디오 등과 같은 다른 형태의 데이터를 함께 처리하여 더 풍부하고 정확한 정보 이해 및 생성을 목표로 합니다. 예를 들어, 이미지에 대한 설명을 생성하거나, 비디오 내용에 기반한 질문에 답변하는 등의 작업을 수행할 수 있습니다.
  - 결론적으로, Multimodal은 다양한 데이터 유형을 종합적으로 이해하고 처리할 수 있는 기술을 말하며, 이는 LLM 분야에서 보다 복잡하고 다양한 형태의 인간과 컴퓨터 간 상호작용을 가능하게 합니다.

 

- T5(Text-to-Text Transfer Transformer)
  - Google Research의 팀에 의해 개발된 자연어 처리(NLP) 모델입니다. T5는 다양한 NLP 작업을 텍스트-투-텍스트의 형태로 변환하여 처리하는 것을 목표로 합니다. 이는 기계 번역, 요약, 질문 응답(QA), 텍스트 분류 등과 같은 다양한 작업을 동일한 모델 구조와 학습 접근 방식으로 처리할 수 있음을 의미합니다. 
  - NLP(Natural Language Processing): 컴퓨터가 인간의 언어를 이해하고 해석하여 처리할 수 있도록 하는 기술 분야
  - T5 모델의 특징
    - 통합된 접근 방식: T5는 모든 NLP 작업을 입력 텍스트에서 출력 텍스트로의 변환 과정으로 취급합니다. 이 접근 방식은 모델이 다양한 종류의 작업을 유연하게 처리할 수 있도록 합니다.
    - 사전 학습과 미세 조정: T5는 대규모 텍스트 코퍼스에서 사전 학습을 거친 후, 특정 작업에 대해 미세 조정됩니다. 이 과정은 모델이 일반적인 언어 이해를 습득하고, 특정 작업에 대해 최적화되도록 합니다.
    - 실험적 방법론: T5 개발 팀은 모델 사이즈, 학습률, 데이터 세트 등 다양한 변수들이 성능에 미치는 영향을 폭넓게 실험했습니다. 이는 모델 설계와 학습 전략에 대한 깊은 통찰을 제공합니다.
  - 관련된 서비스들
    - T5 모델은 다양한 NLP 기반 서비스와 제품에 활용됩니다. 여기에는 기계 번역 서비스, 자동 요약 도구, 챗봇, 가상 비서, 검색 엔진 최적화 도구, 감정 분석 서비스 등이 포함됩니다. 구체적으로 Google Cloud의 Natural Language API, Google 번역기, 다양한 써드 파티 개발자 도구와 서비스가 T5 또는 유사한 아키텍처를 기반으로 구축되어 있습니다.


- Tenant

  - 클라우드 환경에서 자원을 공유하는 독립적인 사용자 또는 조직 단위
예를 들어, 클라우드 서비스를 이용하는 여러 회사가 있을 때, 각 회사는 '테넌트'로 간주됩니다. 이들은 같은 인프라(서버, 스토리지 등)를 공유하지만, 각자의 데이터, 설정, 사용자 관리 등은 완전히 독립적입니다. 이런 방식으로, 여러 테넌트가 같은 환경을 사용하면서도 서로 영향을 주지 않고, 자원을 효율적으로 활용할 수 있습니다. 요약하자면, '테넌트'는 멀티테넌시 환경에서 자원을 공유하면서도 서로 독립적으로 운영될 수 있는 개별 사용자나 조직을 지칭하는 용어입니다.

 

-  멀티테넌시(Multi-Tenancy)

  - 단일 인스턴스의 소프트웨어 응용 프로그램이 여러 사용자(테넌트)에 의해 공유되어 사용될 수 있게 하는 아키텍처를 말합니다. 이 구조에서 각 테넌트는 마치 자신만의 독립된 소프트웨어 인스턴스를 사용하는 것처럼 느끼지만, 실제로는 다른 테넌트와 물리적 인프라(서버, 스토리지 등)와 애플리케이션 인스턴스를 공유합니다.

  - 멀티테넌시의 주요 이점은 자원의 효율적 사용입니다. 하나의 애플리케이션 인스턴스와 인프라를 여러 테넌트가 공유함으로써, 각 테넌트는 비용을 절감하면서 필요한 서비스를 받을 수 있습니다. 또한, 서비스 제공자는 유지보수와 업그레이드를 한 번만 수행하면 모든 테넌트에 적용되므로 운영의 효율성이 높아집니다.

  - 멀티테넌시는 클라우드 서비스, SaaS(소프트웨어 as a 서비스) 애플리케이션 등 다양한 IT 서비스에서 널리 사용됩니다. 각 테넌트는 개별적인 데이터, 설정, 사용자 관리 권한을 갖지만, 기본적인 애플리케이션 코드와 하드웨어 자원은 다른 테넌트와 공유하는 구조입니다.

 

- 랜딩존(Landing Zone)

  - 클라우드 환경에서 안전하고 효율적으로 자원을 배포하고 관리하기 위한 기본 구성 요소와 가이드라인을 제공하는 아키텍처입니다. AWS, Azure, Google Cloud Platform 같은 클라우드 서비스 제공업체들은 각각의 랜딩존 솔루션을 제공하며, 이는 조직이 클라우드를 사용하여 애플리케이션과 서비스를 빠르게 배포하고 운영할 수 있도록 지원합니다.
  - 랜딩존은 보안, 네트워킹, 인증 및 권한 부여, 로깅 및 모니터링과 같은 핵심 요소를 포함하며, 이를 통해 기업은 클라우드 환경을 보다 효과적으로 관리하고 규모에 맞게 확장할 수 있습니다. 또한, 랜딩존은 멀티 계정 전략, 조직의 정책과 규정 준수 요구사항을 지원하는 구조를 제공함으로써, 보안과 거버넌스를 강화하는 데 중요한 역할을 합니다.

 

- provisioning

  - 리소스를 사용자 요구에 맞게 설정하고 배포하는 과정 (sw, hw, network 설정, 시스템 구성, 서버 할당, 사용자 계정생성 등)

 

- 모더레이션 필터(Moderation Filter)

  - 온라인에서 부적절한 콘텐츠를 자동 또는 수동으로 검토하여 필터링하는 기술

공유

댓글