자료구조 vs 데이터베이스
자료구조 : 대부분 주기억장치에서 이루어질 내용
데이터베이스 : 대부분 보조기억장치에서 이루어질 내용. 여러사람에 의해 공유되어 사용될 목적으로 통합하여 관리된 데이터집합
얼마나 체계적으로 저장하고 불러올 수 있느냐
데이터베이스 관리 시스템 (DBMS)
데이터베이스
- 관계형
- 키-값형
- 객체형
- 문서형
- 컬럼형
DBMS
DataBase Management System
database에 접근할 수 잇는 기능을 제공하는 소프트웨어
즉, 데이터베이스계의 운영체제MySQL, P,ostgreSQL, SQLite, MariaDB, ...
SQL
Structured Query Language
DBMS를 통해 데이터를 관리하기 위한 구조화된 질의문을 작성하기 위한 언어
ex) "이름만 뽑아줘" selec 이름 from 사람관계형 데이터베이스 관리 시스템에서 사용
Network
- TCP/IP
- Protocol - http, https, ftp, sftp, telnet, ssh, ssl, smtp...
- Port
- DNS
- OSI 7 Model
LAN
- 근거리 통신망
- Local Area Network
MAN
도시권 통신망 메트로폴리탄
WAN
- 광역 통신망
- wide
TCP/IP
- TCP (Transmission Control Protocol)
- IP (Internet Protocol)
WWW
- World Wide Web
- 문서(웹페이지)들이 있는 정보 저장소
- 분산과 연결 : 흩어져 있는 저장소가 서로 연결되어있다
URL
- Uniform Resource Locator
- [Protocal]://[Host]:[Port]/[Path]
- http://www.daum.net:80/map
- ftp://id:[email protected]:777/mydir
- file://localhost/movie//baseball.avi
프로토콜
- 통신규약
- 장비 사이에서 메시지를 주고받는 양식
[Protocal]://[Host]:[Port]/[Path]
http
Hyper Text Transfer Protocol
PING : IP 네트워크를 통해 특정한 호스트가 도달할 수 있는지의 여부를 확인하기 위한 도구
패킷 : 패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록 단위
http 요청방식
- GET : 주소창에 정보를 노출시키는 방식 (URL에 변수를 포함시켜 요청)
www.google.com/?q=apple
빨리 불러오는 장점은 있지만 최신이 아닐 수 있다.
get방식으로 가져오면 내컴퓨터에 이미 캐시가 되어있다. 그래서 과거의 데이터를 불러올 수 있다. 새로고침
- 데이터가 헤더에 포함되어 전달됨
- URL에 데이터가 노출됨
- 길이 제한이 있음
- 캐시될 수 있음
- 패킷?, ping?
- POST : 주소가 숨겨져서 바디에 정보를 실어서 보낼 수 있다 (데이터가 본문BODY에 포함되어 전달됨)
-post는 해당 서버를 찾아가서 불러온다.
-URL에 데이터가 노출되지 않음
→ 즐겨찾기 추가 불가
-길이 제한이 없음
-캐시되지 않음
- GET
- POST
- PUT
- DELET
- HEAD
- TRACE
- OPTIONS
- CONNECT
HTTP vs HTTPS
HTTP는 Hypertext Transfer Protocol의 약자다. 즉 Hypertext 인 HTML을 전송하기 위한 통신규약을 의미한다. HTTPS에서 마지막의 S는 Over Secure Socket Layer의 약자로 Secure라는 말을 통해서 알 수 있듯이 보안이 강화된 HTTP라는 것을 짐작할 수 있다. HTTP는 암호화되지 않은 방법으로 데이터를 전송하기 때문에 서버와 클라이언트가 주고 받는 메시지를 감청하는 것이 매우 쉽다. 예를들어 로그인을 위해서 서버로 비밀번호를 전송하거나, 또는 중요한 기밀 문서를 열람하는 과정에서 악의적인 감청이나 데이터의 변조등이 일어날 수 있다는 것이다. 이를 보안한 것이 HTTPS다.
FTP
- file transfer protocol
- sftp 알아보자
- https (Hypertext Transfer Protocol over Secure Socket Layer)
소켓 통신에서 일반 텍스트를 이용하는 대신에, SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화한다.
TELNET
- TErminaL NETwork : 암호화 되어있지 않음
- 원격 로그인을 위한 프로토콜
SSH
- secure shell : 암호화 되어있음
- 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용 프로그램 또는 그 프로토콜
- Telnet의 대용 목적으로 설계
SSL
- secure socket layer
- 웹서버와 브라우저 사이의 보안을 위한 프로토콜
HTTPS와 SSL를 같은 의미로 이해하고 있는 경우가 많다. 이것은 맞기도 틀리기도 하다. 그것은 마치 인터넷과 웹을 같은 의미로 이해하는 것과 같다. 결론적으로 말하면 웹이 인터넷 위에서 돌아가는 서비스 중의 하나인 것처럼 HTTPS도 SSL 프로토콜 위에서 돌아가는 프로토콜이다.
SMTL
Simple Mail Transfer Protocol 전자메일 발송 프로토콜
HOST
호스트 : 네트워크에 연결된 장치 호스트 이름 : 네트워크에 연결된 장치에 부여되는 고유한 이름 예) IP주소, 도메인 주소, MAC주소 등등
IP Address
- Internet Protocol Address
- 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 번호
고갈된 ip는 어떻게 부여받을까
Domain Address
- 네트워크 상에서 컴퓨터를 식별하는 호스트 이름
DNS
- Domain Name System
- 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행
DHCP 임대갱신 : 새로운 IP를 받겠다
MAC Address
Media Access Control Address
네트워크 어댑터에 부착된 식별자
Port
가상의 논리적 통신 연결단
번호로 구분
20 : FTP(data)
21 : FTP(제어)
22 : SSH
23 : 텔넷
53 : DNS
80 : 월드 와이드 웹 HTTP
119 : NNTP
443 : TLS/SSL 방식의 HTTP
www.googl.com:80 -> http 통신번호
www.google.com:445 -> 우리한테 없는 포트야. 안들여보내 줌 (혹은 막아놨거나)
OSI 7 계층 모형
Open Systems Interconnection Reference Model
암호화
암호화 기법
- 대칭키
- 공개키(비대칭키)
- 해시
대칭키 암호화
암호화와 복호화에 같은 암호키를 쓰는 알고리즘
DES, AES, SEED 등
공개키(비대칭키) 암호화
- 공개키로 암호화된 데이터를 비밀키를 사용하여 복호화할 수 있는 암호화 알고리즘
- RSA 등
- SSL (https통신이 이 방식)
암호화 해시 함수
- 임의의 데이터(암호 등)를 고정된 길이의 데이터로 매핑하여 원래의 입력값과의 관계를 찾기 어렵게 만든 것
- SHA, MD5 등