🥞 BE
home

Ch2. 실습환경 구축

리눅스 파티션이란? 주 영역 파티션 (Primary Partition), 확장 파티션 (Extended Partition), 논리 영역 파티션(Logical Partition)의 개념과 사용 방법
Primary는 4개까지, Extended는 단 1개만 생성 가능합니다. 그리고 Primary와 Extended는 도합 4개까지 생성이 가능합니다. Extended는 그 자체만으로는 기능을 하지 못합니다. Extended내에 Logical 파티션을 생성하고 그 Logical을 활용하도록 하는 역할입니다. Primary 파티션3개 + Extended에 생성된 Logical 파티션2개 형식으로 최대 파티션 개수를 초과한 5개의 파티션을 활용 가능한 것입니다.
소프트웨어 가상화 기술의 개념과 호스트 OS 타입, 하이퍼바이저 타입, 컨테이너 타입
가상화는 소프트웨어 기반, 즉 가상으로 애플리케이션, 서버, 스토리지, 네트워크 같은 어떤 사물을 표현하기 위한 과정입니다.
가상화의 종류에는 호스트, 하이퍼바이저, 컨테이너가 있는데 호스트OS타입은 베이스가 되는 호스트OS위에 게스트OS가 구동되는 방식입니다. 장점은 가상의 하드웨어를 에뮬레이팅 하기 때문에 호스트 OS에 크게 제약이 없다는 것이고 단점은 OS위에 OS가 얹히는 방식이기에 오버헤드가 클수 있다는 것입니다. 하이퍼바이저 타입은 호스트OS없이 하드웨어에 하이퍼바이저를 설치하여 사용하는 방식입니다. 장점은 별도의 호스트OS가 없기 때문에 오버헤드가 적고, 하드웨어를 직접 제어하기에 효율적으로 리소스를 사용할 수 있다는 것이고 단점은 관리를 위한 컴퓨터나 콘솔이 필요하다는 것입니다. 하이퍼바이저는 전가상화와 반가상화로 다시 분류 됩니다. 컨테이너 가상화는 호스트OS 위에 컨테이너관리 소프트웨어를 설치하여 논리적으로 컨테이너를 나누어 사용합니다. 컨테이너 가상화는 오버헤드가 적어 가볍고 빠른 장점이 있습니다.
클라이언트/서버 환경의 개념과 역할
C/S(클라이언트/서버)환경은 클라이언트와 공유 호스트 서버 사이의 공동 멀티 프로세싱 환경을 말합니다. 클라이언트는 시스템과 사용자 사이에 인터페이스를 제공하는 역할을 합니다. 즉, 사용자와 서버 사이의 중재자역할이며 서버에 서비스를 요청합니다. 서버는 클라이언트에 서비스를 제공하고 C/S네트워크의 복잡성을 숨깁니다. 또한 데이터 액세스를 제어하여 대규모 데이터베이스를 관리하는 역할을 하며 클라이언트 컴퓨터가 외부 세계를 액세스할 수 있도록 하는 게이트웨이로 동작합니다.
프로비저닝의 개념과 방식
프로비저닝은 “제공하다”라는 뜻의 provide에서 유래된 말이며 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말합니다. 서버자원 프로비저닝, OS프로비저닝, 소프트웨어 프로비저닝, 스토리지 프로비저닝, 계정 프로비저닝 등이 있습니다. 또한 수동으로 처리하는 ‘수동 프로비저닝’과 자동화 툴을 이용해 처리하는 ‘자동 프로비저닝’이 있습니다.
서버 스프롤(Server sprawl)와 마이크로서비스 아키텍쳐
서버 스프롤은 마이크로서비스의 가장 일반적인 배포 모델 중 하나로 한 서버에 하나의 마이크로서비스 인스턴스를 배포하는 것을 말합니다. 마이크로서비스는 대형 소프트웨어 프로젝트의 기능들을 작고 독립적이며 느슨하게 결합된 모듈로 분해하여 서비스를 제공하는 아키텍처 입니다. 각 개별 모듈은 개별적인 작업을 담당하며 간단하고 보편적으로 액세스 할 수 있는 API를 통해 다른 모듈과 통신합니다. 장점으로 마이크로서비스는 단일 모듈의 장애에 대해 전체 어플리케이션은 큰 영향을 받지 않으며 기능단위로 서비스가 되기에 새로 조인한 개발자가 기능을 더 쉽게 이해할 수 있다는 것입니다. 단점으로는 분산시스템 개발은 일반 개발보다 복잡하고 모든 것이 독립적인 서비스이기 때문에 각 모듈간의 인터페이스를 신중하게 처리해야 한다는 것과 Multiple Databases 및 트랜잭션 관리가 어려울 수 있다는 것입니다.
REST(Representational State Transfer) API
REST는 http기반으로 필요한 자원에 접근하는 방식을 정해놓은 아키텍처입니다. REST에는 4개의 속성이 존재하는데 첫 번째는 서버에 있는 모든 resource는 각 resource 당 클라이언트가 바로 접근 할 수 있는 고유 URI가 존재한다는 것입니다. 두 번째는 모든 요청은 클라이언트가 요청할 때마다 필요한 정보를 주기 때문에 서버에서는 세션 정보를 보관할 필요가 없는 것입니다. 세 번째는 HTTP 메소드를 사용한다는 점입니다. 모든 resource는 일반적으로 http 인터페이스인 GET, POST, PUT, DELETE 4개의 메소드로 접근 되어야한다는 것입니다. 네 번째는 서비스 내에 하나의 resource가 주변에 연관 된 리소스들과 연결되어 표현이 되어야 한다는 점입니다.