데일리루틴

TIL 0729 CS 3of5 네트워크

loveistheway 2024. 7. 30. 06:38

클라이언트와 서버

- 클라이언트 : 네트워크에 서비스를 요청하는 쪽

- 서버 : 서비스를 요청받고 제공해주는 쪽 

 

ㅇ 배달앱으로 주문을 한다면 핸드폰이 클라이언트, 배달앱 회사가 서버이다.

ㅇ 게임프로그램을 pc에 다운받는다면 pc가 클라이언트, 게임회사가 서버이다.

 

서버는 실물컴퓨터이다. 한 대일 수도 있고 여러 대일 수도 있다.

 

서버의 종류

- 웹 서버 : 웹브라우저에서 요청한 웹페이지를 제공하는 서버. (Apache, GWS 등)

- 데이터베이스 서버 : 데이터베이스만을 위한 서버. (MySQL, Oracle DB 등)

- 애플리케이션 서버 : 웹서버와 데이터베이스서버 사이의 미들웨어. http를 통해 실질적으로 사용자들에게 서비스를 제공함.

- 클라우드 서버 : 실사용자가 원격으로 사용할 수 있는 서버 (구글클라우드, AWS 등)

- 프록시 서버 : 클라이언트의 요청을 본서버 대신 처리해주는 서버. 접속 과부하를 방지하고 처리속도를 향상시킬 수 있다.

 

------------------------------------------------------------------------------------------------------------------------------------

 

데이터베이스

 

- 데이터베이스 : 정보를 구조화하여 관리하는 시스템

 

- 테이블 (entity) : 한 테이블이 한 개체를 나타냄.

- 필드 (field=column=열) : 테이블에서 세로줄. 데이터의 속성. 이름, 아이디, 나이 등

- 튜플 (tuple=row=행=record) : 테이블에서 가로줄. 한 항목에 대한 데이터.

 

- DBMS (DataBase Management System) : 데이터베이스 관리 시스템

- RDBMS (Relational DBMS) : 관계형 데이터베이스 관리 시스템. (종류 : MySQL, SQLite, Oracle Database, PostgreSQL 등)

 

- SQL (Structured Query Language) : DBMS를 조작하기 위한 프로그래밍 언어. (DDL, DML, DCL, TCL)

- DDL (Data Definition Language) : 데이터정의어. 테이블을 생성할 때, 속성을 정의할 때 쓰는 언어. (create, alter, drop)

- DML (Data Manipulation Language) : 데이터조작어. 테이블 안에 데이터를 삽입/수정/삭제할 때 쓰는 언어. (insert, update, delete)

- DCL (Data Control Language) : 데이터제어어. 데이터베이스로의 접근권한을 주거나 뺏을 때 쓰는 언어. (grant, revoke)

- TCL (Transaction Control Language) : 트랜잭션을 조작할 때 쓰는 언어

 

- 스키마(Schema) : db의 구조라고 생각하면 된다.

 

------------------------------------------------------------------------------------------------------------------------------------

 

- 클러스터링 : 여러 대의 컴퓨터가 한 시스템처럼 동작하는 것. 클라이언트는 이때 컴퓨터가 한 대인지 여러 대인지 알 수 없다. 여러 작업을 하기 위해 여러 컴퓨터를 사용해 신뢰성을 확보한다고 한다.

- 병렬 컴퓨팅 : 문제 하나를 컴퓨터 여러 대가 나눠서 해결하는 방식. 클러스터링과의 차이는 클러스터링은 꼭 한 문제를 위해 작동하는 건 아니라는 것이다.

 

- 프로토콜 : 통신규약

- HTTP (Hyper Text Transfer Protocol) : 서버와 클라이언트가 웹상에서 정보를 주고받을 수 있게 해주는 프로토콜

- HTTPS (HTTP Secure) : 보안이 강화된 HTTP. HTTP는 암호화를 하지 않는 프로토콜이어서 보안이 취약했다. 암호화한 HTTP가 HTTPS이다.

 

- HTML (Hyper Text Markup Language) : HTML에서 M이 마크업이다. 마크업언어란 외부에 어떻게 보일 것인가를 기술하는 언어이다.

- 브라우저 : 웹페이지를 보여주기 위한 응용프로그램. 사파리, 크롬, 인터넷익스플로러 등

 

- UDP (User Datagram Protocol) : 비연결형 데이터그램형 프로토콜. 수신측에서 받았다는 신호가 확인되지 않아도 발신측이 그 다음 데이터를 계속 보낼 수 있다(신뢰성이 보장되지 않음). TCP에 비해 빠르고 구조가 단순하다.

- TCP (Transmission Control Protocol) : 연결형 가상회선형 프로토콜. 수신측에서 받을 수 있다는 신호가 있어야 발신측이 데이터를 보내는 식이다(신뢰성이 보장됨).

- IP (Internet Protocol) : 호스트(한 기기)의 인터넷주소를 지정하고 패킷의 분해와 조립을 담당하는 프로토콜. IP는 000.000.000.000처럼 생긴 숫자주소이다.

- MAC (Media Access Control address) : A5-C2-3E-F4-0B-DD와 같은 16진수의 8비트+8비트식 주소이다. 매 기기에 할당된 물리적 고유주소이다.

 

- 도메인 : 네트워크상에서 호스트를 가리키는 이름

- DNS (Domain Name System) : ip주소(***.***.***.***)를 도메인주소(www.abcde.com)로 바꿔주는 시스템

 

- RESTful : REST아키텍처(Representational State Transfer)를 지향하는 웹서비스를 뜻함. 이름으로 자원의 상태를 표현해 전달하는 방식. post라는 api를 보고 데이터를 전송하는 것을 떠올릴 수 있고, get이라는 api를 보고 데이터를 가져오는 것을 떠올릴 수 있는 것을 예시로 들 수 있다. 이 외에 delete, put 등이 있다고 한다.

 

------------------------------------------------------------------------------------------------------------------------------------

 

OSI 7계층 : 네트워크통신을 7계층으로 나눠 정의한 개념 -국제표준화기구-

TCP/IP 4계층 : OSI 7계층을 TCP/IP 프로토콜 관점에서 나눈 개념.

- 제1계층 물리계층 : 스위치, 헙, 케이블 등. 전기적, 기계적 수단을 사용해 데이터전송매체에서 비트를 전송하는 곳

- 제2계층 데이터링크계층 : 스위치, MAC주소, 브릿지, 프레임 등. 물리계층을 통해 전달된 데이터를 에러 없이 전달하기 위한 방법을 정의하고 mac주소를 사용해 물리적인 네트워크간의 데이터를 전송하는 곳

- 제3계층 네트워크계층 : 라우터, 패킷, ip주소 등. IP주소를 사용하며, 네트워크상에서의 최적의 경로를 찾아 데이터패킷을 전송하는 곳.

- 제4계층 전송계층 : tcp, udp, 포트번호 등. 종단간 통신이 가능한 곳. 데이터전송의 신뢰성이 보장되는 곳.

- 제5계층 세션계층 : 통신이 시작하고 끝날 때까지 양끝단에서 응용프로그램간의 세션을 관리하는 곳. 전화연결이 켜져있는 동안이 세션이 살아있다고 할 수 있는 대표예이다.

- 제6계층 표현계층 : 데이터의 형식을 응용프로그램에 맞게 변환하는 곳. 암호화/복호화/압축 등을 통해서 변환하게 된다.

- 제7계층 응용계층 : http, smtp, ftp, dns 등. 실질적으로 사용자가 마주하고 상호작용하는 계층. 사용자에게 서비스가 제공되는 계층. 

 

------------------------------------------------------------------------------------------------------------------------------------

 

네트워크 보안

 

보안 기술 및 프로그램

- 방화벽 (firewall) : 네트워크 트래픽을 필터링해 불법 접근을 차단하는 방식

- vpn (가상 사설망) : 암호화된 가상의 네트워크를 통해 원격으로 접근하는 기술

- 키를 통한 접근제어 : 대칭키/비대칭키. 대칭키는 암호화와 복호화에 같은 키가 사용된다. 비대칭키는 암호화와 복호화에 서로 다른 키가 사용된다. 비대칭키에는 공개키와 개인키라는 게 있는데 개인키가 사용자 외부에서 접근이 불가능하다.

- hash 해시 : 원정보를 임의의 값으로 바꿔 읽는 기술. ( 예 : 입력값 tistory123 > 저장값 mkl4uv21an ) 단방향암호화방법으로 해시를 적용한 주체 외에는 해시를 풀 수 없다고 한다.

 

해킹 기술 및 프로그램

- DDoS (Distributed Denial of Service) 디도스 : 분산서비스거부공격. 서버나 네트워크가 처리할 수 없을 만큼의 트래픽(서비스요청)을 발생시켜 과부하를 일으키는 공격.

- 멀웨어 (malware) : 악성소프트웨어. 가짜백신, 애드웨어, 랜섬웨어가 이에 속한다.

- 스니핑 (sniffing) : 네트워크상에서 다른 사람의 정보를 훔쳐보는 것