Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바의 정석 기초편 ch6
- 스프링 고급 - 스프링 aop
- 코드로 시작하는 자바 첫걸음
- 자바의 정석 기초편 ch2
- 스프링 db2 - 데이터 접근 기술
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch4
- 2024 정보처리기사 시나공 필기
- 자바의 정석 기초편 ch14
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch3
- 자바의 정석 기초편 ch8
- @Aspect
- jpa 활용2 - api 개발 고급
- 스프링 입문(무료)
- 스프링 mvc2 - 타임리프
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch9
- 스프링 db1 - 스프링과 문제 해결
- jpa - 객체지향 쿼리 언어
- 2024 정보처리기사 수제비 실기
- 자바의 정석 기초편 ch7
- 스프링 mvc1 - 서블릿
- 자바의 정석 기초편 ch11
- 게시글 목록 api
- 자바의 정석 기초편 ch1
- 타임리프 - 기본기능
- 자바의 정석 기초편 ch13
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch5
Archives
- Today
- Total
나구리의 개발공부기록
CHAPTER 03 - 기본 개발환경 구축 본문
2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/실기 11강 - 응용 SW 기초 기술 활용
CHAPTER 03 - 기본 개발환경 구축
소소한나구리 2024. 7. 14. 19:122024년도 수제비 실기책(6판) 내용
1. 개발 인프라 구축
1) 개발 환경 인프라 구축
- 소프트웨어 개발 프로세스를 지원하고 향상시키기 위해 필요한 기반이나 환경을 구축하는 과정
2) 개발 환경 인프라 구축 방식
구성방식 | 설명 |
온프레미스 (On-Premise 방식) |
- 외부 인터넷망이 차단된 상태에서 인트라넷망만을 활용하여 개발환경을 추축하는 방식 - 데이터와 정보의 외부 유출이 민감할 경우 해당 장비를 자체 구매하고 특정 공간에 개발환경을 구축 |
클라우드(Cloud) 방식 | - 아마존, 구글, 마이크로소프트 등 클라우드 공급 서비스를 하는 회사들의 서비스를 임대하여 개발환경을 구축하는 방식 - 해당 장비를 초기를 구매하지 않기 때문에 개발환경 투자비용이 적고 구축 시간이 빠름 |
하이브리드(Hybrid) 방식 | - 온프레미스와 클라우드 방식을 혼용하는 방식 |
3) 개발환경 인프라 구축 장비
(1) 스토리지 시스템
유형 | 설명 |
DAS (Direct Attached Storage) |
- 하드 디스크와 같은 데이터 저장 장치를 호스트 버스 어댑터에 직접 연결하는 스토리지 - 저장 장치와 호스트 기기 사이에는 네트워크 디바이스가 있지 말아야 하고 직접 연결하는 방식으로 구성된 기술 |
NAS (Network Attached Storage) |
- 서버와 저장 장치를 네트워크로 연결하여 구성하는 스토리지 - 구성 설정이 간편하며 별도의 운영 체제를 가진 서버 한 곳에서 파일을 관리하기 때문에 서버 간에 스토리지 및 파일 공유가 용이 - 저장 장치와 서버를 직접 연결하는 것이 아니라 네트워크를 통해 스토리지에 접속하고 파일 단위로 관리 |
SAN (Storage Area Network) |
- 서버와 스토리지를 저장 장치 전용 네트워크로 상호 구성하여 고가용성, 고성능, 융통성, 확장성을 보장하고 데이터를 블록(Block) 단위로 관리하는 스토리지 - DAS의 빠른 처리와 NAS의 스토리지 공유 방식의 장점을 합친 방식으로, 광케이블 및 광 채널 스위치를 통해 근거리 네트워크 환경을 구성하여 빠른 속도로 데이터를 처리할 수 있으며, 스토리지가 공유가 가능한 기술 |
(2) RAID(Redundant Array of Independent Disks; 복수 배열 독립 디스크)
- 하나의 대형 저장 장치 대신 다수의 저용량의 저장 장치를 배열로 구성하는 기술
- 여러 개의 하드디스크에 일부 중복된 데이터를 나눠서 저장하기 때문에 디스크 어레이(Dist Array)라고도 함
레벨 | 개념도 | 설명 |
RAID 0 | - 패리티(오류 검출 기능)가 없는 스트라이핑된 세트로 구성되는 방식 - 적어도 2개의 디스크 필요 - 개선된 성능에 추가적인 기억장치를 제공하는 장점이 있지만, 장애 시 데이터의 안전을 보장할 수 없는 단점이 있음 |
|
RAID 1 | - 패리티(오류 검출 기능)가 없는 미러링된 세트로 구성되는 방식 - 적어도 2개의 디스크 필요 - 디스크 2개에 동일한 데이터가 저장되고, 제공해야 할 논리 디스크 크기의 두 배 공간을 필요로 하기 때문에 비용 측면에서 단점이 있음 |
|
RAID2 | - 오류정정부호(ECC)를 기록하는 전용의 하드 디스크를 이용해서 안정성을 확보하는 방식 - 비트레벨의 스트라이핑과 해밍코드 패리티를 사용하여 하나의 멤버 디스크가 고장나도 ECC를 이용하여 정상적으로 작동할 수 있지만, 추가적인 연산이 필요하여 입출력 속도가 매우 늦음 |
|
RAID3 | - 데이터는 모든 디스크에 바이트 단위의 스트라이핑된 세트로 구성되고, 패리티 정보는 별도의 전용 디스크에 저장되는 방식 - 적어도 3개의 디스크 필요 - 한 개의 드라이브가 고장 나는 것을 허용하며, 순차적 쓰기 성능과 순차적 읽기 성능은 우수하지만 문제 해결이 어려워서 잘 사용되지 않음 |
|
RAID4 | - 데이터는 모든 디스크에 블록 단위의 스트라이핑된 세트로 구성되고 페리티 정보는 별도의 전용 디스크에 저장되는 방식 - 적어도 3개의 디스크 필요 - 읽기 성능은 좋지만 쓰기 성능은 나쁜 단점이 있음 |
|
RAID5 | - 패리티가 배분되는(Distributed) 스트라이핑된 세트로 구성된 방식 - 적어도 3개의 디스크 필요 - 모든 디스크에 나뉘어 저장되지만, 항상 균등하진 않고 패리티 정보도 모든 디스크에 나뉘어 저장 |
|
RAID6 | - 패리티가 배분되는(Distributed) 스트라이핑된 세트로 구성된 방식 - 적어도 4개의 디스크 필요 - 각 디스크에 패리티 정보가 두 번 독립적으로 분산되어 저장 |
4) 클라우드 기반 개발 인프라 구축
(1) 가상화(Virtualization) 개념
- 물리적인 리소스들을 사용자에게 하나로 보이게 하거나, 하나의 물리적인 리소스를 여러 개로 보이게 하는기술
- 대부분의 서버는 용량의 20%정도만을 사용하는데, 가상화를 통해 서버의 가동률을 60~70%이상으로 올릴 수 있음
(2) 가상화의 종류
종류 | 설명 |
플랫폼 가상화 | 하드웨어 플랫폼 위에서 실행되는 호스트 프로그램이 게스트 프로그램을 만들어 마치 독립된 환경을 만들어낸 것 처럼 보여주는 기법 |
리소스 가상화 | - 게스트 소프트웨어 위에서 사용자는 독립된 하드웨어에서 소프트웨어가 실행되는 것처럼 활용하는 기법 - 메모리, 저장 장치, 네트워크 등을 결합하거나 나누기 때문에 사용자는 가상화된 물리적 장치들이 어떤 위치에 있는지 알기 어려움 |
(3) 가상화 기술요소
기술요소 | 설명 |
컴퓨팅 가상화 (Computing Virtualization) |
- 물리적으로 컴퓨터 리소스를 가상화하여 논리적 단위로 리소스를 활용할 수 있도록 하는 기술 - 서버 가상화를 통해 하나의 시스템에서 1개 이상의 운영체제를 동시에 가동시킬 수 있으므로, 서버 이용률이 크게 향상 ex) 하이퍼바이저(Hypervisor) |
스토리지 가상화 (Storage Virtualization) |
- 스토리지와 서버 사이에 소프트웨어/하드웨어 계층을 추가하여 스토리지를 논리적으로 제어 및 활용할 수 있도록 하는 기술 - 이기종 스토리지 시스템의 통합을 가능하게 하는 기술 ex) 분산 파일 시스템 |
I/O 가상화 (I/O Virtualization) |
- 서버와 I/O 디바이스 사이에 위치하는 미들웨어 계층으로, 서버의 I/O 자원을 물리적으로 분리하고 케이블과 스위치 구성을 단순화하여 효율적인 연결을 지원하는 기술 ex) 가상 네트워크 인터페이스 카드 |
컨테이너 (Container) |
- 컨테이너화된 애플리케이션들이 단일 운영체제상에서 실행되도록 해주는 기술 - 하이퍼바이저 없이 운영체제가 격리된 프로세스로 동작하기 때문에 오버헤드가 낮음 ex) 도커(Docker) |
분산처리 기술 (Distributed Computing) |
- 여러대의 컴퓨터 계산 및 저장능력을 이용하여 커다란 계산 문제나 대용량의 데이터를 처리하고 저장하는 기술 |
네트워크 가상화 (Network Virtualization) |
- 물리적으로 떨어져 있는 다양한 장비들을 연결하기 위한 수단으로 중계 장치(라우터, 스위치 등)의 가상화를 통한 가상 네트워크를 지원하는 기술 ex) SDN, NFV |
5) 클라우드 컴퓨팅(Cloud Computing)
- 인터넷을 통해 가상화된 컴퓨터 시스템 리소스(IT 리소스)를 제공하고, 정보를 자신의 컴퓨터가 아닌 클라우드(인터넷)에 연결된 다른 컴퓨터로 처리하는 기술
- 구성 가능한 컴퓨팅 자원에 대해 어디서나 접근할 수 있음
(1) 클라우드 컴퓨팅 분류(사공하)
분류 | 설명 |
사설 클라우드 (Private Cloud) |
- 기업 또는 조직 내부에서 보유하고 있는 컴퓨팅 자원(IDC, 서버 등)을 사용하여 내부에 구축되어 운영되는 클라우드 - 자체 컴퓨팅 자원으로 모든 하드웨어, 소프트웨어, 데이터를 수용 - 직접적인 통제가 가능하며 보안성을 높일 수 있음 |
공용 클라우드 (Public Cloud) |
- 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원 서비스를 제공하는 클라우드 - 일정한 비용을 지불하고 하드웨어, 소프트웨어 등을 사용 - 확장성, 유연성 등이 뛰어남 |
하이브리드 클라우드 (Hybrid Cloud) |
- 기업 또는 조직 내부 자원을 이용한 사설 클라우드와 공용 클라우드를 모두 사용하는 클라우드 - 사설 클라우드의 약점인 구축 비용 문제와 공용 클라우드의 약점인 보안성 확보 문제를 해결 - 사용 업무의 중요도, 보안성 확보의 중요도 등에 따라 이용 형태 변경이 가능 |
(2) 클라우드 서비스 유형(인플소)
분류 | 설명 |
인프라형 서비스 (IaaS; Infrastructure as a Service) |
- 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스 - 컴퓨팅 자원에 운영체제나 애플리케이션 등의 소프트웨어 탑재 및 실행 - 하위의 클라우드 인프라를 제어하거나 관리하지 않지만 스토리지, 애플리케이션에 대해서는 제어권을 가짐 |
플랫폼형 서비스 (PaaS; Platform as a Service) |
- 인프라를 생성, 관리 하는 복잡함 없이 애플리케이션을 개발, 실행, 관리할 수 있게 하는 플랫폼을 제공하는 서비스 - SaaS의 개념을 개발 플랫폼에도 확장한 방식으로 개발을 위한 플랫폼을 구축할 필요 없이, 필요한 개발 요소를 웹에서 빌려 쓸 수 있게 하는 모델 - OS, 애플리케이션과 애플리케이션 호스팅 환경 구성의 제어권을 가짐 |
소프트웨어형 서비스 (Software as a Service) |
- 소프트웨어 및 관련 데이터는 중앙에 호스팅되고 사용자는 웹 브라우저 등의 클라이언트를 통해 접속하여 소프트웨어를 서비스 형태로 이용하는 서비스 - 주문형 소프트웨어라고도 함 |
2. 신기술 용어
1) 인프라 관련 신기술 용어
용어 | 설명 |
SDDC (Software Defined Data Center) |
모든 하드웨어가 가상화되어 가상 자원의 풀(Pool)을 구성하고, 데이터센터 전체를 운영하는 소프트웨어가 필요한 기능 및 규모에 따라 동적으로 자원을 할당, 관리하는 역할을 수행하는 데이터 센터 |
SDS (Software Defined Storage) |
- 서버와 전통적인 스토리지 장치에 장착된 물리적 디스크 드라이브를 가상화 기술을 적용하여 필요한 공간만큼 나눠서 사용할 수 있도록 논리적인 스토리지로 통합한 가상화 기술 - 컴퓨팅 소프트웨어로 규정하는 데이터 스토리지 체계이며, 일정 조직 내 여러 스토리지를 하나의 스토리지처럼 관리하고 운용하는 컴퓨터 이용 환경 |
HACMP (High Availability Cluster Multiprocessing) |
- 각 시스템 간에 공유 디스크를 중심으로 클러스터링으로 엮어 다수의 시스템을 동시에 연결하여 조직, 기업의 기간 업무 서버 등을 안정성을 높이기 위해 사용되는 고가용성 솔루션 - 여러가지 방식으로 구현되면 2개의 서버를 연결하는 것으로 2개의 시스템이 각각 업무를 수행하도록 구현하는 방식이 널리 사용됨 |
도커 (Docker) | - 컨테이너 응용 프로그램의 배포를 자동화하는 오픈소스 엔진 - 소프트웨어 컨테이너 안에 응용 프로그램들을 배치시키는 일을 자동화해주는 오픈 소스 프로젝트이자 소프트웨어 |
하이퍼바이저 (Hypervisor) |
하나의 호스트 컴퓨터상에서 동시에 다수의 운영체제를 구동시킬 수 있는 HW와 OS 사이의 SW 가상화 플랫폼 |
쿠버네티스 (Kubernetes) |
리눅스 재단에 의해 관리되는 컨테이너화된 애플리케이션의 자동 배포, 스케일링 등을 제공하는 오픈 소스 기반의 관리 시스템 |
서버리스 컴퓨팅 (Serverless computing) |
- MSA, BaaS, FaaS 등의 기술을 활용하여 서버가 없는 것과 같이 직접 해당 이벤트에 접근하여 처리하는 컴퓨팅 기술 - 각 서버를 접속하는 방식보다 연결 및 속도를 개선 |
2) 소프트웨어 관련 신기술 용어
용어 | 설명 |
인공지능 (AI; Artificial Intelligence) |
- 인간의 지적 능력을 인공적으로 구현하여 컴퓨터가 인간의 지능적인 행동과 사고를 모방할 수 있도록 하는 소프트웨어 - 인간의 지적 능력을 컴퓨터를 통해 구현하는 기술 |
기계학습 (ML; Machine Learning) |
- 인공지능의 분야 중 하나로, 인간의 학습 능력과 같은 기능을 컴퓨터에서 실현하고자 하는 기술 - 컴퓨터가 데이터를 통해 스스로 학습하여 예측이나 판단을 제공하는 기술 |
가상 현실 (VR; Virtual Reality) |
컴퓨터 등을 사용한 인공적인 기술로 만들어낸 실제와 유사하지만 실제가 아닌 어떤 특정한 환경이나 상황 또는 구현하는 기술 |
증강 현실 (AR; Augmented Reality) |
가상 현실(VR)의 한 분야로 실제로 존재하는 환경에 가상의 사물이나 정보를 합성하여 마치 원래의 환경에 존재하는 사물처럼 보이도록 하는 컴퓨터 그래픽 기술 |
혼합 현실 (MR; Mixed Reality) |
실세게의 물리적 환경과 가상환경을 혼합한 경험을 제공하는 하이브리드 현실 |
블록체인 (Blockchain) |
- 분산데이터베이스의 한 형태로 분산 노드의 운영자에 의한 임의조작이 불가능 하도록 고안되어 지속적으로 성장하는 데이터 기록 리스트인 블록을 연결한 모음 - P2P(Peer to Peer) 네트워크를 통해서 관리되는 분산 데이터베이스 기술 |
BaaS (Blockchain as a Service) |
- 블록체인의 기본 인프라를 추상화하여 블록체인 응용 프로그램을 만들 수 있는 클라우드 컴퓨팅 플랫폼 - 블록체인 개발환경을 클라우드로 서비스 |
CPS (Cyper-Physical System) |
가상 물리 시스템으로 인간의 개입 없이 대규모 센서/액추에이터를 갖는 물리적인 요소들과 통신 기술, 응용 / 시스템 소프트웨어 기술을 활용하여 실시간으로 물리적 요소들을 제어하는 컴퓨팅 요소가 결합된 복합시스템 |
디지털 트윈 (Digital Twin) | 물리적인 사물과 컴퓨터에 동일하게 표현되는 가상 모델로 실제 물리적인 자산 대신 소프트웨어로 가상화 함으로써 실제 자산의 특성에 대한 정확한 정보를 얻을 수 있고, 자산 최적화, 돌발사고 최소화, 생산성 증가 등 설계부터 제조, 서비스에 이르는 모든 과정의 효율성을 향상시킬 수 있는 모델 |
서비스 지향 아키텍처 (SOA; Service Oriented Architecture) |
- 서비스라고 정의되는 분할된 애플리케이션 조각들을 느슨하게 결합하고(Loosely-Coupled) 연결해 하나의 완성된 애플리케이션을 구현하기 위한 아키텍처 - 비즈니스 층, 표현 층, 프로세스 층으로 구성 |
디지털 변혁 (Digital Transformation) |
디지털 기술 기반으로 기업의 전략, 조직, 프로세스, 비즈니스 모델, 문화, 커뮤니케이션 등을 변화시키는 경영전략 |
마이크로서비스 아키텍처 (MSA; Microservices Architecture) |
하나의 큰 시스템을 여러 개의 작은 서비스로 나누어 변경과 조합이 가능하도록 만든 아키텍처 |
매시업(Meshup) | - 웹으로 제공하고 있는 정보와 서비스를 융합하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 만드는 기술 - 서로 다른 웹 사이트의 콘텐츠를 조합하여 새로운 차원의 콘텐츠나 서비스를 창출하는 웹 사이트 또는 애플리케이션을 의미 |
그레이웨어 (Grayware) |
- 바이러스나 명백한 악성 코드를 포함하지 않는 합법적 프로그램이면서도 사용자를 귀찮게 하거나 위험한 상황에 빠뜨릴 수 있는 프로그램 - 평범한 소프트웨어인지, 바이러스 인지 구분하기 어려운 중간 영역에 존재하는 프로그램 - 스파이웨어, 애드웨어, 장난 프로그램, 원격 액세스 도구 등 사용자가 원하지 않는 프로그램을 총징하는 이름 |
텐서플로(TensorFlow) | 구글의 구글 브레인 팀이 제작하여 공개한 기계 학습(Machine Learning)을 위한 오픈 소스 소프트웨어 라이브러리 |
파스타(PaaS-TA) | 국내 IT 서비스 경쟁력 강화를 목표로 개발되었으며 인프라 제어 및 관리 환경, 실행 환경, 개발 환경, 서비스 환경, 운영 환경으로 구성된 NIA주도로 개발된 개방형 클라우드 컴퓨팅 플랫폼 |
메타버스(Metaverse) | - 가상/초월과 세계/우주의 합성어로서 3차원 가상 세계를 뜻하는 용어 - 정치/경제/사회/문화의 전반적 측면에서 현실과 비현실 모두 공존할 수 있는 생활형/게임형 가상 세계 |
'2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비) > 실기 11강 - 응용 SW 기초 기술 활용' 카테고리의 다른 글
CHAPTER 03 - 기본 개발환경 구축(기출문제,예상문제), CHAPTER 04 - 단원 종합 정리 (1) | 2024.07.14 |
---|---|
CHAPTER 02 - 네트워크 기초 활용하기(기출문제,예상문제) (5) | 2024.07.14 |
CHAPTER 02 - 네트워크 기초 활용하기(3) (2) | 2024.07.13 |
CHAPTER 02 - 네트워크 기초 활용하기(2) (0) | 2024.07.13 |
CHAPTER 02 - 네트워크 기초 활용하기(1) (0) | 2024.07.10 |