1. 내용정리
서버와 클라이언트
서버 : 클라이언트에게 네트워크를 통해 정보나 서버를 제공하는 장치 (요청받는 것을 전달)
클라이언트 : 네트워크를 통해 서버에 접속해 정보를 확인하거나 서비스를 이용하는 장치 (요청)
==> request, response 를 반복하면서 운영이 된다
1. 서버와 하드웨어
서버의 종류
- 웹 서버 : 자신이 요청받은 데이터(정적 데이터)가 있으면 클라이언트에게 전달(응답 내용 기록 log)
- 애플리케이션 서버 : 동적 콘텐츠(소스코드, 동영상 등)을 클라이언트에게 전달
- DB 서버 : 클라이언트 정보를 조회하고 전달
- 리버스 프록시 서버 : 클라이언트와 다른 서버가 과부화를 받지 않도록 데이터를 주고 받을 수 있도록 전달
- 포워드 프록시(캐시) 서버 : 여러 서버들을 거쳐서 계속 같은 데이터를 받을 때 이 서버가 데이터를 저장해 두었다가 요청이 오면 전달
서버 하드웨어
- 서버 하드웨어 폼팩터 : 여러개의 서버를 꼽아서 사용하는 것 (랙 마운트 형, 블레이드 형, 타워형 등...)
- 서버 하드웨어 종류 : (Main Frame -> UNIX ->
서버 소프트웨어
서버: OS : Z/os, UNIX, ORACLE
- 오픈소스 : debian, ubuntu, linux, window, apache etc...
2. 네트워크
네트워크 : 그물처럼 연결된 상태
- 회선 교환 방식(circuit Exchange Method) : 데이터 교환하기 위해 1:1 연결 통로를 만들어 데이터 교환이 완료될 때까지 회선을 계속 사용하는 방식
- 패킷 교환 방식(Packet Exchange Method) : 데이터를 패킷이라는 작은 단위로 나누고
헤더(송수신 포트번호, 패킷 순서번호, 데이터 시작 위치, 데이터 양 등) 을 붙어 데이터를 교환하는 방식
단, 필요한 만큼만 회선을 이용하며 같은 회선을 다른 사용자도 이용할 수 있고, 패킷 손상 시 손상된 패킷만 다시 보냄
네트워크 프로토콜과 계층
- 프로토콜(Protocol) : 패킷 전송 위한 규칙
- HTTP(Hpytertext Transfer Protocol) : 웹서버, 웹 브라우저가 패킷 교환할 때 사용하는 프로토콜
(DNS, FTP, SSL/TLS, TCP, UDP, IEEE etc..)
- 계층(Layer) 송신 기기, 수신기기 사시에 주고 받는 데이터는 계층 별로 처리
- 계층 종류 (TCP/IP 계층, OSI 참조 모델)
각각 L1, L2, L3, L4, L7 으로 현장에서는 사용하고 있다
- 네트워크 기기 : 계층 별로 사용하는 네트워크 기기의 종류
각 계층별 사용하는 기기
L1 :
NIC (Netowork Interface Card) => PC, 서버를 네트워크에 연결해주는 하드웨어 (무선 동글이)
허브 (Hub) => 전달받은 패킷(비트)의 복사본을 포트에 연결되 다른 모든 기기로 전송
단, 연결된 기기들이 네트워크 대역폭(Bandwidth)을 나누어 사용하기 때문에 전송 속도 느려짐
AP(Access Point) => 패킷을 전파로 바꾸어 송출하는 기기, 무선, 우션 사이의 다리 역할 (wifi 공유기 등)
L2 :
MAC Adress (Media Access Control Address) => 컴퓨터들이 서로 데이터를 전송하기 위해 사용하는 물리적 주소로 NIC에 저장되어 있음 기기를 구별하기 위한 식별번호 같은 것
이더넷(Ethernet) => 네트워크 환경에서 데이터를 주고 받기 위한 가장 대표적인 기술 규격, 1980년에 상용화 UTP(Unshielded Twisted Pair) => 케이블로 단말기와 네트워크 기기를 연결함
L2 스위치(Switch) => 단말기가 보낸 패킷(프레임)의 헤더에 있는 MAC Address를 보고 같은 네트워크의 다른 단말기로 패킷을 전송, 이더넷(Ethernet) 규격을 사용하기에 이더넷 스위치라고도 부름
L2 Switch table에 MAC address 주소가 저장되어 있기 때문에 전달 할 수 있음
L3 :
IP Address (Internet Protocol Address) => 서로 다른 네트워크에 연결되어 있는 컴퓨터들이 데이터를 전송하기 위해 사용하는 논리적 주소로 OS상에서 설정한 주소임
• Public IP Address : 공인 IP 주소, 네트워크와 외부의 네트워크가 통신하기 위해 사용(아파트 이름)
• Private IP Address : 사설 IP 주소, 같은 네트워크 안에서 통신하기 위해 사용(아파트 동 호수)
라우터(Router) => 단말기가 보낸 패킷(IP 패킷)의 헤더에 있는 IP Address를 보고 다른 네트워크의 다른 단말기로 패킷을 전송(라우팅)
라우터에도 라우팅 테이블에 주소를 저장해 놓고 있다
FPGA(Field Programmable Gate Array) => 프로그래밍 가능한 집적 회로 반도체, 용도에 따라 프로그래밍 통해 기능을 변경이 가능함(여러번 변경 가능)
ASIC(Application-Specific Integrated Circuit) => 특정 용도를 위한 주문형 집적회로 반도체(한번 제작시 기능 수정 불가)
L3 스위치(Switch) => 라우터에 L2 스위치를 추가한 네트워크 기기. 다수의 포트가 있어 여러 단말기를 연결할 수 있으며 IP 패킷 라우팅도 가능
• MAC Address Table과 Routing Table을 조합한 정보를 FPGA, ASIC과 같은 패킷 전송 처리 전용 하드웨어에 기록한 다음 스위칭 혹은 라우팅 함
L4:
L4 스위치(Switch) => IP주소와 포트 번호를 참조하여 트래픽을 분산해 서버로 전송하는 로드 밸런싱 기기
• 로드 밸런싱(Load Balancing) : 들어오는 트래픽을 둘 이상의 서버로 분산해서 전송하여 부하를 분산하는 것
• 트래픽(Traffic) : 서버와 네트워크 장치에서 일정 시간 내에 흐르는 데이터의 양
•방화벽(Firewall) => IP주소와 포트 번호를 참조하여 통신을 허가하거나 차단하는 기기 , 미리 정의된 보안 규칙에 따라 들어오고 나가는 트래픽을 제어할 수 있음
L7:
L7 스위치(Switch) => IP 주소와 포트 번호 + 애플리케이션 콘텐츠 정보들을 참조해서 로드 밸런싱 하는 기기 • 애플리케이션 콘텐츠 정보 : URL, 파일명, 콘텐츠의 문자열 등
• 웹방화벽(WAF : Web Application Firewall) => 웹 애플리케이션 서버를 안전하게 보호하는 기기 • 클라이언트와 서버 사이에서 교환되는 데이터를 애플리케이션 레벨(7계층)에서 상세히 검사하고 조치함
• 블랙리스트, 화이트리스트, 웹 트래픽 분석 등 다양한 보안 기능 제공
• 블랙리스트 : 리스트에 있는 IP는 제외하고 모두 통신 허용 • 화이트리스트 : 리스트에 있는 IP만 통신 허용
웹 트래픽 분석 => 사용자가 서버로 보내는 트래픽을 분석하여 정책에 따라 조치함
• XSS(Cross-Site Scripting) : 애플리케이션에 악성 스크립트를 심어두고 사용자가 접속하면 공격해서 정보 갈취
• SQL Injection : 악성 SQL을 실행하여 데이터베이스 정보를 조작(데이터 수정 혹은 삭제)
네트워크 형태
LAN(Local Area Network) : 근거리 통신망, 가정이나 기업 내부 등 한정된 범위의 네트워크 클라이언트 기기와 L2 스위치로 구성
WAN(Wide Area Network) : 원거리 통신망, 물리적으로 거리가 매우 떨어진 곳의 네트워크를 연결
인터넷(Internet) : 모든 컴퓨터를 하나의 통신망 안에 연결하고자 하는 International Network(다수의 WAN)
월드와이드웹 (World Wide Web) : 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 공간
• LAN 환경에 L3 스위치를 추가해서 구성
VPN(Virtual Private Network) : 인터넷 상에서 가상의 전용선을 만들어 통신할 수 있게 하는 기술
• 특정 네트워크들만을 위한 전용 WAN으로 Peer to Peer, 1:1로 연결하고 이 구간의 통신은 암호화함
• 기업 본사 LAN과 지사 LAN을 연결할 때 인터넷을 거치지 않고 이 두 네트워크만의 전용 WAN을 VPN으로 구성
VPN 사용 예시 #1 : 터널베어라는 VPN을 사용해 한국에서 아르헨티나의 서비스에 접속 가능
• VPN 사용 예시 #2 : 집 혹은 카페와 같은 외부에서 기업 내부의 애플리케이션(사내 그룹웨어)에 안전하게 접속 가능
DMZ(DeMilitarized Zone) : 비무장지대, 외부 네트워크(외부망)와 내부 네트워크(내부망)의 중간 지점 • 내부망에는 존재하나 외부망에서 접근할 수 없는 영역으로, 외부망에 있는 해커의 공격으로부터 기업의 중요한 서버와 클라이언트를 보호하기 위해 사용
스토리지
스토리지 개념 및 종류
스토리지 : 저장장치를 다수 장착한 대용량 고속 저장장비, 서버 및 클라이언트와 네트워크로 연결해 사용
저장장치 : 컴퓨터의 데이터를 저장하기 위한 비 휘발성의 기억 장치
- 데이저 저장 뿐만 아니라 데이터 공유 목족으로 사용됨
- 서버에 장착된 디스트 용량 부족 시 다수의 사라믇ㄹ과 데이터 공유할 필요가 있을 경우 스토리지 활용
- 데이터 관리 및 보호를 위한 별도의 소프트웨어 탑재
• 스토리지 데이터 저장 방식 : RAID( Redundant Array of Independent Disk)
- 여러 개 디스크 중 일부에 데이터를 중복 저장하는 기술
- 여러 개 디스크를 하나의 디스크 모듈로 사용, 디스트 읽기/쓰기 성능향상, 장애 발생시 원활한 복구 위해 사용
• RAID 0 : 데이터를 여러 디스크에 분산 저장하여 하나의 디스크처럼 사용, 성능이 좋지만 장애 시 데이터는 모두 손실됨
• RAID 1 : 데이터를 다른 디스크에 동일하게 중복 저장하여 안정성이 높지만 비용이 많이 듬
• RAID 5 : 디스크에 패러티 정보를 저장해 장애 시 패러티를 토대로 복구할 수 있음, 일정 수준의 성능과 안정성 확보
• RAID 6 : RAID 5 방식에 패러티를 하나 더 추가하여 안정성을 더욱 향상시킨 방법
• RAID 1+0 : RAID 0의 높은 성능과 RAID 1의 뛰어난 안정성을 합친 형태 => 0의 고성능, 1의 복구 능력을 합친 상태
쓰기는 디스크 2개 성능, 읽기는 디스크 4개 성능발휘
전체 용량의 50%만 사용 가능 ,최소 4개 디스크 필요
==> 실무에서는 과거 5를 가장 많이 사용했으나 최근, 디스크 가격이 많이 내려와서 1을 많이 사용함
JBOD : Just a Brunch of Disks(Drives), 2개 이상의 디스크를 하나의 디스크처럼 만들어 주는 것(Non-RAID)
• 여러 디스크의 용량을 단순히 이어 붙인 것으로, RAID 0과 같이 다수의 디스크를 사용한다고 성능이 향상되지 않음
=> 과거 디스크 용량이 작을 때 개별 디스크 용량보다 더 큰 용량 데이터를 저장하기 위해 사용
• 스토리지 종류 :
DAS(Direct Attached Storage), 직접 연결한 스토리지 (ex. 외장하드 같은 것)
• 서버와 클라이언트가 전용 케이블로 연결한 스토리지
• 전송 속도가 빠르고, 스토리지와 연결된 서버에서 개별적인 파일 시스템을 사용해 관리
NAS(Network Attached Storage)
• 데이터 공유를 위한 파일 서버 용도로 주로 사용되며 파일 스토리지라고도 불림
• 스토리지 전용 OS로 데이터를 관리하는 독립적 다기능 스토리지
NAS 자체가 메인보드, CPU, RAM, 스토리지를 갖춘 하나의 서버 역할을 수행하기에 파일 공유 뿐만 아니라 다양한 서버 용도로 사용할 수 있음(멀티미디어 파일 재생, 웹사이트 운영 등) • 스토리지가 하나의 네트워크 공유 드라이브로 독립적으로 동작
단점 : 클라이언트가 데이터에 접근하기 위해서는 반드시 네트워크 스위치를 거쳐 NAS에 접근해야 하기에 DAS보다 데이터 전송 속도가 느림
• 서버 역시 데이터에 접근하기 위해서는 반드시 네트워크 스위치를 거쳐 NAS에 접근해야 하기에 DAS보다 데이터 전송 속도가 느림
SAN(Storage Area Network)
• 대용량의 데이터를 네트워크를 통해 빠른 속도로 전송할 수 있는 고성능 스토리지 • 일반적인 이더넷 네트워크(UTP 케이블, LAN)가 아닌 FC(Fiber Channel 광케이블)을 사용해 SAN으로 연결하며, 고성능을 요구하는 시스템의 전용 스토리지로 사용
클라이언트에서 스토리지에 데이터를 읽거나 쓰기 위해서는 반드시 서버가 필요(서버 종속성 스토리지) • FC 네트워크는 이더넷 네트워크보다 성능이 뛰어남 -> NAS보다 데이터 전송 속도가 빠름
데이터 유형 : 정형 데이터, 비정형 데이터
• 정형(Structured) 데이터 : 미리 정해 놓은 형식과 구조에 따라 고정된 필드에 저장된 텍스트 형태의 데이터
• 비정형(Unstructured) 데이터 : 식별 가능한, 미리 정의된 구조가 없는 사진, 음성, 동영상, PDF파일 등의 데이터
백업 개념 및 종류
백업(Backup) : 데이터를 임시로 다른 장치에 저장하여 문제가 있을 때 복구(Recovery)할 수 있도록 준비해 두는 것
• Full Backup : 백업 주기 마다 데이터 전체를 백업
• Incremental Backup : 첫째 날에 데이터 전체를 백업하고, 그 다음부터는 증가된 데이터만 백업
• 스냅샷 : Snapshot, 마치 사진 찍듯이 특정 시점에 스토리지의 파일 시스템을 포착해 보관하는 기술
• Copy-on-write 스냅샷 : 쓰기(Write) 작업 발생 시 복제(Copy) 후 해당 복제본 새로운 공간에 덮어씀
• Redirect-on-write 스냅샷 : 쓰기(Write) 작업 발생 시 새로운 공간으로 쓰기 위치를 재지정(Redirect) •데이터가 변경될 때 그곳에 바로 데이터 쓰기 수행 / 쓰기 1
데이터베이스
데이터베이스 개념 및 주요 용어
데이터베이스 : 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합, 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음
DBMS :Database Management System, 사용자들이 DB안에 있는 데이터를 접근할 수 있도록 해주는 소프트웨어
관계형 DBMS : Relational DBMS, RDBMS / 테이블이라는 최소 단위로 구성하며 이 테이블은 열과 행으로 이루어짐
• SQL : Structured Query Language / 구조적 데이터 질의 언어, 데이터베이스에서 데이터를 조회하기 위한 언어
데이터베이스 주요 용어: OLTP, DW, DM, OLAP
OLTP : Online Transaction Processing 온라인 트랜잭션(거래) 처리
DW : Data Warehouse 거대한 데이터 저장소
Data Mart : 용도별로 구분하여 저장한 데이터 저장소 OLAP : Online Analytical Processing 온라인 분석 처리
오픈 소스 DB, 상용 DB, NO SQL : MariaDB, MYSQL, ORACLE etc.
NoSQL : 대용량 데이터를 분산 처리하기 위한, SQL이 아닌 또 다른 기술을 채택한 오픈소스 데이터베이스
'kt aivle' 카테고리의 다른 글
kt aivle 3기 [14주차] - 가상화클라우드 (0) | 2023.06.26 |
---|---|
kt aivle 3기 [13주차] - 웹 서비스 개발 기초 (0) | 2023.04.25 |
kt aivle 3기 [12주차] - 미니프로젝트 6차 & Aivle day1 (0) | 2023.04.23 |
kt aivle 3기 [11주차] - AICE 시험 대비 + 미니프로젝트 5차 (0) | 2023.04.18 |
kt aivle 3기 [10주차] - 미니프로젝트 4차 (0) | 2023.04.12 |