IT 인프라
1. 서버와 클라이언트
- 서버: 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 장치
- 서버컴퓨터: 응용프로그램을 가지고 있다가 클라이언트 컴퓨터에서 요청하면 보냄
- 클라이언트: 네트워크를 통하여 서버에 접속해 정보를 확인하거나 서비스를 이용하는 장치
- 클라이언트 컴퓨터: 서버 컴퓨터에 응용프로그램을 요청한 뒤 서버에서 보내주면 실행
서버의 역할 및 종류

- Client : 서버에 요청하는 주체
- Request : 콘텐츠 요청
- Server : 웹 서버, 웹 애플리케이션 서버, 캐시 서버, 리버스 프록시 서버, DB 서버에서 찾아서 응답을 함
- Response : HTML, Css, JS, 텍스트, 이미지, 동영상 형태로 응답

웹 서버(정적 콘텐츠) 전달 과정
- 클라이언트가 콘텐츠 요청
- 웹 서버에서 콘텐츠 탐색
- HTML, Css, JS, 텍스트, 이미지, 동영상 형태로 전달 및 응답
- 클라이언트에서 응답 받은 콘텐츠 조회
- 웹서버에서 요청 내용 및 응답 내용을 기록 (Log)
애플리케이션 서버(동적 콘텐츠) 전달 과정
- 클라이언트가 동적 콘텐츠 요청
- 웹 서버에서 콘텐츠 탐색
- 웹 서버에서 애플리케이션 서버에 콘텐츠 요청
- 애플리케이션 서버에서 요청내용 확인
- 애플리케이션 서베에서 웹서버에 콘텐츠 전달
- 애플리케이션 서버에서 요청 내용, 응답내용 기록 (Log)
- 애플리케이션 서버에서 전달받은 동적 콘텐츠를 클라이언트에 응답
- 웹 서버에서 요청 내용, 응답내용 기록 (Log)

데이터베이스 서버 전달 과정
- DB 서버: 애플리에키션의 정보를 저장해서 운영 관리할 수 있는 데이터 베이스를 구동하는 서버
- 클라이언트가 웹 서버에 콘텐츠 요청
- 웹 서버에서 콘텐츠 탐색
- 웹 서버에서 애플리케이션 서버에 콘텐츠 요청
- 애플리케이션 서버에서 클라이언트 요청 내용 확인
- 애플리케이션 서버에서 DB 서버에 데이터 조회 요청
- DB 서버에서 애플리케이션 서버에 데이터 조회 결과 전달
- 애플리케이션 서버에서 웹 서버에 콘텐츠 전달
- 웹 서버에서 클라이언트로 응답
- 클라이언트에서 콘텐츠 조회
리버스 프록시 서버 전달 과정
- 리버스 프록시 서버: 클라이언트 요청을 처리할 수 있는 애플리케이션 서버 선택 후 전달
- 뒤에 있는 서버가 클라이언트에게 요청을 할 수 있는 상태인지 확인 후, 요청을 함
- 클라이언트에서 리버스 프록시 서버에 요청
- 리버스 프록시 서버는 웹 서버A를 선택함
- 웹 서버 A는 애플리케이션 서버C에 요청
- 애플리케이션 서버C는 DB서버에 요청
- DB서버는 애플리케이션 서버C에 응답
- 애플리케이션 서버C는 웹 서버A에 응답
- 웹 서버 A는 리버서 프록시 서버에 응답
- 리버스 프록시 서버는 클라이언트에 응답
- 클라이언트에서 응답받은 콘텐츠 조회
포워드 프록시 서버 (캐시서버) 전달 과정

- 포워드 프록시 서버: 미리 데이터를 저장해 뒀다가 요청이 오면 데이터 전달
- 보통 기업에서는 한 서버가 아닌 다양한 서버로 관리하게 된다
- 역할 별로 서버를 나눠 놓음
- 클라이언트에서 리버스 프록시 서버로 요청
- 리버스 프록시 서버는 웹 서버A를 선택
- 웹 서버 A는 애플리케이션 서버C에 요청
- 애플리케이션 서버C는 DB서버에 요청
- DB 서버는 애플리케이션 서버C에 응답
- 애플리케이션 서버C는 캐시 서버에 응답
- 캐시 서버에서 저장
- 캐시 서버는 웹 서버 A에 응답
- 웹 서버A는 리버스 프록시 서버에 응답
- 리버스 프록시 서버에서 클라이언트로 응답
- 클라이언트에서 콘텐츠 조회
2. 서버 하드웨어와 소프트웨어
- 서버 하드웨어: MainFrame, UNIX, x86,
- 서버 하드웨어 제조사: HPE, Dell Tech, Lenovo
- 서버 소프트웨어: (오픈소스, 상용 소프트웨어)
- 필요 조건: OS: UNIX, LINUX, Windows Server
서버 하드웨어 폼팩터
- 랙마운트형 서버 (랙서버)
- 1U 서버
- 가장 작은 형태의 랙 서버
- 공간을 효율적으로 활용하고 더 많은 서버를 한 랙에 설치할 수 있음
- 2U 서버:
- 1U에 비해 높이가 두배로 큼
- 더 많은 하드웨어 구성요소를 수용할 수 있도록 하고 확장성을 제공
- 4U 서버:
- 더 큰 용량과 확장성 제공
- 더 많은 하드웨어를 수용하고 높은 처리능력과 저장공간을 제공한다.
- 블래이드형 서버: 랙마운트형 서버를 더 얇고 케이스가 없는 형태의 서버
- 타워형 서버: 일반 데스크탑PC와 유사한 형태의 서버로 워크스테이션이라 부름
3. 네트워크
네트워크 개념
-
회선 교환 방식: 데이터를 교환하기 위해 1:1로 연결된 데이터 통로를 만들고 데이터 교환이 완료될 때까지 회선으 계속 사용하는 방식
-
패킷 교환 방식: 데이터를 패킷이라는 작은 단위로 나누고 헤더라는 정보를 붙여서 데이터를 교환하는 방식
-
패킷은 손상될 경우, 전체가 아닌 손상된 것만 다시 보냄
- 헤더: 송수신 포트번호, 패킷 순서 번호, 데이터 시작 위치, 한번에 전송할 수 있는 데이터 양
- 패킷: 소포, 택배 물품에 헤더라는 송장을 붙여 보내는 개념
네트워크 프로토콜과 계층
- 프로토콜: 패킷을 전송하기 위한 규칙, 정해진 규칙을 따르기 때문에 통신이 가능해짐
- HTTP: 웹서버와 웹브라우저가 패킷을 교환할 때 사용하는 프로토콜
이 외에도 DNS, FTP, SSL/TLS, UDP, SNMP, IEEE, ARP 등 매우 많은 프로토콜 존재
- 계층: 송신기기와 수신기기 사이에 주고 받는 데이터는 각 계층 별로 처리됨
- 계층별로 처리: 한 계층에서 처리가 완료되면 임무를 다음 계층으로 전달
- 대표적인 2가지 계층 (OSI, TCP/IP

- 주로 사용하는 계층 5단계

네트워크 기기, 형태
네트워크 기기: L1
- NIC: PC나 서버를 네트워크에 연결해주는 하드웨어 (유선 / 무선)
PC나 서버의 슬롯에 장착형, USB 포트형, 메인보드의 슬롯에 장착하거나 온보드로 부착된 형태가 있음
- 허브: 전달받은 패킷의 복사본을 포트에 연결된 다른 모든 기기로 전송
- AP: 패킷을 전파로 바꿔서 송출하느 기기, 무선과 유선 사이의 다리 역할을 수행함
네트워크 기기: L2
-
MAC adrress: 컴퓨터들이 서로 데이터를 전송하기 위해 사용하는 물리적 주소로 NIC에 내장
기기만의 고유번호, 식별번호 등 기기를 구분하기 위한 주소로 사용됨
-
이터넷: 네트환경에서 데이터를 주고받기 위한 가장 대표적인 기술 규격
UTP 케이블로 단말기와 네트워크 기기를 연결함 (랜선)
-
L2스위치: 단말기가 보낸 패킷의 헤더에 있는 MAC Address를 보고 같은 네트워크의 다른 단말기로 패킷을 전송하고 이더넷 규격을 사용하기에 이더넷 스위치라고도 부름
네트워크 기기: L3
- IP Address
- 서로 다른 네트워크에 연결되어 있는 컴퓨터들이 데이터를전송하기 위해 사용하는 논리적 주소로 OS상에서 설정한 주소
- Public IP Address
- 공인 IP 주소
- 네트워크와 외부의 네트워크가 통신하기 위해 사용
- Private IP Address
- 사설 IP 주소
- 같은 네트워크 안에서 통신하기 위해 사용
- 라우터: 단말기가 보낸 패킷의 헤더에 있는 IP Address를 보고 다른 네트워크의 다른 단말기로 패킷을 전송 (포트도 적음)
네트워크 기기: L4
L4 스위치: IP 주소와 포트 번호를 참조하여 트래힉을 분산해서 서버에 전송하는 로드 밸런싱 기기
-
로드 밸런싱: 들어오는 트래픽을 둘 이상의 서버로 분산해서 전송하여 부하를 분산하는 것
-
트래픽: 서버와 네트워크 장치에서 인정 시간 내에 흐르는 데이터 양
-
방화벽: IP주소와 포트번호를 참조하여 통신을 허가하거나 차단하는 기기
네트워크 기기: L7
-
L7 스위치: IP 주소와 포트 번호 + 애플리케이션 콘텐츠 정보를 참조해서 로드 밸런싱하는 기기 (URL, 파일명, 콘텐츠 문자열)
-
웹방화벽: 웹 어플리케이션 서버를 안정하게 보호하는 기기
- 클라이언트와 서버 사이에 교환되는 데이터를 어플리케이션 레벨에서 상세히 검사하고 조치함
- 블랙리스트, 화이트리스트, 웹 트래픽 분석 등 다양한 보안 기능 제공
- 블랙리스트: 리스트에 있는 IP를 제외하고 모두 허용
- 화이트리스트: 리스트에 있는 IP만 통신 허용
네트워크 형태
LAN
- 근거리 통신망
- 가정이나 기업 내부 등 한정도니 범위의 네트워크
- 클라이언트 기기와 L2 스위치로 구성함
WAN
- 원거리 통신망
- 물리적으로 거리가 매우 떨어진 곳의 네트워크를 연결
- LAN 환경에 L3 스위치를 추가해서 구성함
VPN
- 인터넷 상에서 가상의 전용선을 만들어 통신할 수 있게 하는 기술
- 한국에서 아르헨티나의 서비스로 접속할 수 있음
- 집이나 카페에서 기업 내부의 어플리케이션에 접속 가능
DMZ
- 비무장지대
- 외부 네트워크와 내부 네트워크의 중간 지점
- 내부망에는 존재하나 외부망에서 접근할 수 없는 영역으로 외부망에 있는 해커의 공격으로부터 기업의 중요한 서버와 클라이언트를 보호하기 위해 사용
4. 스토리지
스토리지 개념 및 종류
스토리지
- 저장장치를 다수 장착한 대용량 고속 저장 장비
- 서버 및 클라이언트와 네트워크로 연결해서 사용
- 데이터 저장 뿐 아니라 데이터 공유 목적으로 사용됨
- 서버에 장착된 디스크 용량이 부족할 경우, 다수의 사람들과 데이터를 공유할 필요가 있을 경우, 스토리지 활용
- 데이터 관리 및 보호를 위한 별도의 소프트웨어 탑재
스토리지 저장 방식
- RAID
- 여러 개의 디스크 중 일부에 데이터를 중복 저장하는 기술
- RAID 0
- 데이터를 여러 디스크에 분산 저장
- 같은 용량의 디스크로 구성
- 빠른 성능 / 장애시 데이터 모두 손실됨
- RAID 1
- 데이터를 다른 디스크에 동일하게 중복 저장
- 최소 2개 디스크 필요, 필요한 용량의 2배 준비
- 장애 대비에 유리하나 비용이 비쌈
- RAID 5
- 디스크마다 패러티를 토대로 복구할 수 있음
- 일정 수준의 성능과 안정성 확보
- RAID 6
- RAID 5 방식에 패러티를 하나 더 추가하여 안정성을 더욱 향상시킨 방법
- 성능은 5보다 조금 떨어짐
- 디스크 최소 4개 필요
- RAID 1+0
- RAID 0의 높은 성능과 RAID 1의 뛰어난 안정성을 합침
- 최소 4개 디스크 필요
스토리지 종류
-
DAS: 직접 연결한 스토리지
- 서버와 클라이언트가 전용 케이블로 연결한 스토리지
- 전송 속도가 빠름
-
NAS
- 데이터 공유를 위한 파일 서버 용도로 주로 사용
- 독립적 다기능 스토리지
- 클라이언트가 데이터에 접근하기 위해 네트워크 스위치를 거쳐 NAS에 접근 => DAS보다 전송 속도가 느림
-
SAN
- 대용량의 데이터를 네트워크를 통해 빠른 속도로 전송할 수 있는 고성능 스토리지
스토리지 유형
-
파일 스토리지
- 데이터를 파일과 폴더로 이루어진 계층 구조에 저장
- 전통적 방식
- 양이 많을 수록 성능이떨어짐
-
블록 스토리지
- 데이터를 일정한 크기의 블록으로 나눠서 분산 저장
- 비용이 많이 들고 메타데이터 처리에 한계가 있어 비정형 데이터 처리에 불리함
-
오브젝트 스토리지
- 오브젝트라는 개별 데이터 단위로 분산 저장
- 오브젝트에 메타데이터가 포함되어 있어 신속한 검색 가능
- 비정형 데이터 저장에 맞음
- 오브젝트 수정이 불가능해 정형 데이터는 맞지 않음
저장장치
- 컴퓨터의 데이터를 저장하기 위한 비 휘발성 기억장치
- Tape, HDD, SDD
백업 개념 및 종류
백업
- 데이터를 임시로 다른 장치에 저장하여 문제가 있을 때 복구할 수 있도록 준비해 두는 것
- Full Backup: 백업 주기 마다 데이터 전체를 백업
- Incremental Backup: 첫째 날에 데이터 전체 백업, 그 다음 부터 증가된 데이터만 백업
스냅샷
- 마치 사진 찍듯이 특정 시점에 스토리지의 파일시스템을 포착해 보관하는 기술
- copy-on-write 스냅샷: 쓰기 작업 발생시 복제 후 해당 복제본을 새로운 공간에 덮어씀
- Redirect-on-write 스냅샷: 쓰기 작업 발생시 새로운 공간으로 쓰기 위치를 재지정
5. 데이터베이스
데이터베이스 개념 및 주요 용어
개념
- 데이터베이스
- 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합
- 응용 시스템의 통합된 정보들을 저장하여 운영할 수 있는 공용데이터들의 묶음
- DBMS: 사용자들이 DB안에 있는 데이터를 접근할 수 있도록 해주는 소프트웨어
- RDBMS: 테이블이라는 최소 단위로 구성하며 이 테이블은 열과 행으로 이루어짐
오픈소스 DB vs 상용 DB, DB Engine Ranking
데이터베이스 유형
- 오픈소스 DB
- 상용 DB
- NoSQL
- 대용량 데이터를 분산 처리하기 위한 SQL이 아닌 또 다른 기술을 채택한 오픈소스 데이터베이스
DB IDE
- IDE
- DB엔지니어, DBA, 개발자가 사용하는 DB 개발 도구
- 상용 IDE
- GUI 지원, 다중 DB 지원, Query 자동완성, 관리자를 위한 기본 모니터링 도구 제공
6. 온프레미스
온프레미스 개념과 3Tier 아키텍처
온프레미스
- 기업이 자체 시설에서 보유하고 직접 유지 관리하는 프라이빗 데이터 센터
3 Tier 아키텍처
- 애플리케이션 운영 환경이 컴퓨팅, 네트워크, 스토리지로 구성된 아키텍처
가상화 기술: 서버, 데스크탑, 네트워크, 스토리지
가상화
- 물리적인 하드웨어가 보유한 자원 효율성을 향상시키기 위해 사용하는 기술
- (서버 가상화, 데스크탑 가상화, 네트워크 가상화, 스토리지 가상화)
- 서버 가상화: 하이퍼바이저를 통해 가상머신을 생성, 여러개의 OS를 운영하는 기술
- 데스크탑 가상화: 데이터는 서버에 저장하고, 서버에서 클라이언트에 업무 환경만 제공해 주는 기술
- 네트워크 가상화: 물리적 네트워크를 하나의 가상 네트워크로 구성해 사용하는 기술
- 스토리지 가상화: 물리 서버의 디스크와 스토리지를 하나의 가상 스토리지 풀로 묶어 사용하는 기술
HCI, SDDC
HCI
- 컴퓨팅, 스토리지, 네트워크를 가상화시켜 단일 시스템으로 운영
- 기존 3-Tier 대비 병목 구간을 제거하여 자원 확장 시 성능이 선형적으로 늘어남
- 병목현상이 발생하여 => 2-Tier로 데이터 분산 처리로 병목 구간 제거
SDDC
- 데이터 센터 구성요소의 모든 것을 소프트웨어로 통합 관리
- SCD + SDS + SDN + Management Platform 모두 포함되어야 진정항 SDDC임
7. 클라우드
클라우드 개념 및 종류
클라우드의 개념
- IT 인프라 자원을 직접 보유해서 사용하는 것이 아닌, 다른 기업의 IT인프라 자원을 빌려서 쓰는 것
- 자원을 빌려 쓴 것 만큼 사용료 지불 => 클라우드 비용
- 호스팅
- 웹 호스팅
- IDC의 특정 서버 자원을 빌려씀 (남들과 공유)
- 서버 호스팅
- IDC의 특정 서버 자체를 빌려씀 (나만 쓰는 것, 장기렌트 개념)
- 코로케이션
- 내가 가진 서버를 IDC의 랙에 설치하고 IDC가 제공하는 네트워크 및 관리 서비스를 받는 것 -> IDC의 공간과 네트워크 자원을 빌리는 개념임
클라우드의 종류
- IaaS: IT인프라 자원 전체를 빌려다 씀, OS 및 각종 소프트웨어 설치 필요
- AWS, Azure, GCP, NCP, KT Cloud, NHN Cloud
- PaaS: 이미 설치된 OS(플랫폼)을 빌려다 씀, 어플리케이션 설치 필요
- AWS Elastic Beanstalk, Azure SQL DB, Google BigQuery
- SaaS: 소프트웨어 빌려다 씀
- Microsoft 365, Google Workspace, Adobe CC, Zoom, Groupware
클라우드 형태
- 온프레미스: 기업이 직접 IT인프라를 운영
- 퍼블릭 클라우드: 다른 기업의 IT인프라를 빌려다 씀
- 프라이빗 클라우드: 기업이 보유한IT 인프라를 클라우드 서비스처럼 기업 내에서만 활용
- 하이브리드 클라우드: 프라이빗 + 퍼블릭
- 멀티 클라우드: 퍼블릭 + 퍼블릭
클라우드 기술 및 용어
- 컨테이너: 리눅스 기반 애플리케이션 운영을 위한 프로세스 격리 기술
- 컨테이너 런타임: 컨테이너를 다루는 도구
- 도커: 컨테이너 기술을 누구나 쉽게 사용할 수 있도록 만든 컨테이너 런타임 중 가장 유명한 오픈소스 프로젝트
- 쿠버네티스
- 다수의 컨테이너를 효율적으로 운영, 관리하기 위한 도구
- 구글이 오픈소스로 공개
- 현재 기업 환경에 맞는 유료 쿠버네티스 서비스가 다수 존재
- 파드: 컨테이너들의 모음
- 노드: 파드가 운영되는 물리 서버 또는 가상머신, 워커 노드라고 부름
- 클러스터: 노드의 집합
- 마스터: 다수의 워커 노드들 및 그 하위의 파드와 컨테이너를 관리하는 노드