Share
Sign In
TIL 웹개발
TIL 웹개발 - 서버
서경태
👍
클라이언트와 서버
클라이언트
요청을 보내는 사용자
서버
클라우드 서버
웹 서버
데이터베이스 서버
어플리케이션 서버
프록시 서버
데이터베이스
테이블
DBMS (데이터베이스 관리 시스템)
RDBMS(관계형 데이터베이스 관리 시스템)
MySQL
PosgreSQL
SQLite
Pracle Database
MariaDB
등등
SQL (Structured Query Language)
SQL 종류
DDL(정의어) : 개체(테이블)을 생성하거나 속성을 정의할 때
DML(조작어) : 테이블에 데이터를 삽입, 조회, 수정,삭제 할때 (이것을 CRUD라고 한다.)
DCL제어어) : DB에 대한 접근 권한을 주거나 뺏을때
TCL(트랜젝션 제어어)
스키마 (Schema)
간단하게 정의하면 DB의 구조를 의미한다.
개념 스키마 : DB의 전체적인 구조를 의미
내부 스키마 : 물리적인 DB구조에 대한 스키마
외부 스키마 :
클러스터링 : 여러 대의 컴퓨터가 하나의 시스템처럼 동작하는 것
병렬컴퓨팅 : 하나의 큰 문제를 여러 컴퓨터가 나누어 해결하는 방식
프로토콜 : 통신 규약, 형식을 의미
HTTP(HyperText Transfer Protocol) : 서버랑 클라이언트가 웹상에서 정보를 주고 받을 수 있도록 해주는 프로토콜
HTTPS (HyperText Transfer Protocol Sequre) : 기존의 http를 암호화 한 프로토콜
HTML (HyperText Markup Language) : 웹 페이지를 어떻게 보여줄 것인가를 기술하는 마크업 언어
브라우저 : 웹 사이트를 보여주기 위한 응용프로그램
UDP (User Datagram Protocol) : 비연결형 데이터그램 방식의 프로토콜로 신뢰성을 보장하지 않음. TCP에 비해 구조가 단순하고 빠르다.
TCP (Transmitssion Control Protocol) : 연결형 가상회선 방식의 프로토콜로 신뢰성을 보장한다. UDP에 비해 구조가 복잡하고 느리다.
IP (Internet Protocol) : 호스트(네트워크상에서 하나의 노드, 하나의 컴퓨터)의 인터넷 주소를 지정하고 패킷의 분해 조립을 담당하는 프로토콜. 이 프로토콜을 통해 우리의 IP 주소를 해석할 수 있다. IP주소는 192.000.000.000 이런 형태로 생겼다.
도메인 : 네트워크 상에서 호스를 가리키는 이름. www.naver.com이나 www.google.com을 일컫는다.
DNS(Domain Name System) : 컴퓨터가 읽기 편한 구조인 IP주소를 도메인 이름으로 바꿔주는 시스템
RESTful
REST(Representational State Transfer) 아키텍처를 지향하는 웹 서비스를 말한다.
자원의 상태를 대표적으로 표현할 수 있는 어떤 이름으로 전달하는 방식을 의미한다.
예를 들어, 웹에서 우리가 정보를 조회 요청할때 GET이라는 API를 통해 가져온다. 반대로 보낼때는 POST라는 API를 통해 정보를 보낸다.
즉, 이름만 가지고 어떤 행동을 하려는지 유추할수 있도록 구현한 것을 의미한다.
API (Apllication Programming Interface) : 어떤 서비스를 사용하기 위한 소프트웨어 인터페이스를 의미한다. 함수 단위나 클래스 단위로 구현할 수 있다.
RESTful API란 자원의 상태를 대표적으로 표현할 수 있는 어떤이름으로 전달하는 방식으로 구현한 API를 의미한다. GET, POST, PUT DELETE 같은 메소드들이 있다.
OSI 7계층
국제표준화기구(ISO)에서 정의한 개념으로 네트워크 통신을 7계층으로 나누어 정의하는 개념
OSI 7 계층별 설명
1.
물리계층
전기적, 기계적, 절차적, 기능적인 수단을 사용하여 데이터 전송 매체에서 실제 비트 전송을 담당
2.
데이터 링크 계층
물리 계층을 통해 전달된 데이터를 에러없이 전달하기 위한 방법을 정의하고 MAC 주소를 사용하여 물리적인 네트워크 간의 데이터를 전송
3.
네트워크 계층
IP주소를 사용하여 데이터 패킷을 전달하는데 네트워크 상에서 최적의 경로르 설정하여 데이털르 전송
4.
전송 계층
종단 간(end-to-end 통신을 제공하며, 데이터 전송의 신뢰성을 보장한다.
TCP, UDP, 포트번호 등등
5.
세션 계층
양 끝단에서 통신을 관리하는 계층으로 통신이 끝날 때까지 응용 프로그램 간의 세션을 설정, 관리 및 종료한다.
6.
표현 계층
암호화, 복호화, 압축 등을 통해 데이터 형식을 응용 프로그램에 맞게 변환한다.
7.
응용 계층
시맂ㄹ적으로 사용자가 마주하고 상호작용하는 계층으로 최종 서비스를 제공한다.
HTTP, FTP, SMTP, DNS 등등
보안
사이버 보안중에서도 네트워크 보안 분야는 가장 중요한 보안 중 하나로 꼽힌다
보안 기술 및 프로르램
Firewall 방화벽 : 네트워크 트래픽을 필터링하여 불법 적근을 차단
VPN(가상 사설망): 암호화된 가상의 네트워크망을 통해 원격으로 접속하기 위한 기술
키(key)를 통한 접근 제어 방식
대칭키 : 누구나 접근 가능
비대칭키 : 사용자 외에도 접근 불가능한 키
Hash (해시) : 본래 정보를 임의의 값으로 바꿔버리는 기술.
해킹 기술 및 프로그램
DDoS(Distributed Denial of Service, 디도스, 분산 서비스 거부) 공격 : 특정 서버나 네트워크가 처리할 수 없을 정도의 트래픽을 발생시켜 과부하를 일으키는 사이버 공격
malware(멀에워) : 악성소프트웨어로 가짜 백신, 랜섬웨어, 애드웨어, 트로이목마바이러스 이런 놈들 싹 다 멀웨어의 한 종류
sniffing(스티핑) : 네트워크 상에서 다른 사람의 정보를 훔쳐보는 것
Subscribe to 'kyugntae-ai'
Welcome to 'kyugntae-ai'!
By subscribing to my site, you'll be the first to receive notifications and emails about the latest updates, including new posts.
Join SlashPage and subscribe to 'kyugntae-ai'!
Subscribe
👍
Other posts in 'TIL 웹개발'See all
서경태
TIL 웹개발 - 자료구조
기본적인 자료구조 연결리스트 스택 큐 해시테이블 힙 연결리스트 Array LinkedList 특정 원소 조회 O(1) O(N) 중간에 삽입 삭제 O(N) O(1) 데이터 추가 데이터 추가시 모든 공간이 다 차버렸다면 새로운 메로리 공간을 할당받아야한다. 모든 공간이 다 찼어도 맨 뒤의 노드만 동적으로 추가하면 된다. 정리
서경태
TIL 웹개발 - 빅데이터 인공지능
빅데이터 데이터의 종류 정형 데이터 정량적이고 수치로 확인할 수 있거나 구조를 가지고 있는 데이터를 의미 시간, 시계열, 데이터, 금융 데이터 등등 비정형 데이터 수치적으로 확인할 수 없거나 구조를 띄지 않는 데이터를 의미 그림, 소리, 영상 등등 반정형 데이터 정형 데이터와 비정형 데이터의 성격을 두 개 다 가지는 데이터 DICOM, JSON, XML, 스마프톤에서 위치 값을 함께 저장하는 사진 데이터 전처리 데이터를 AI에게 학습시키기 전이나 분석하기 전에 적합한 형태로 가공하는 작업 빅데이터 단순히 많은 양의 데이터를 의미하는 것이 아님. 규모, 속도, 다양성 - 3가지의 특성을 가진다. 규모 - 굉장히 방대한 양의 유의미한 데이터 속도 - 데이터의 생성 및 처리 속도가 매우 빠름 다양성 - 데이터의 종류 뿐만 아니라 형식이 다양하다. 데이터 수집 계획 빅데이터를 구성하기 위해서는 ㅁ여확한 수집 계획이 필요
서경태
TIL 웹개발 - 사고의 전환
프로그래머스 '숫자 문자열과 영단어' 문제를 풀다보니 문제를 해결하는 방식은 주어진대로 하는 것이 아님을 느꼈다. 문제의 내용은 s가 "one4seveneight" 이런식으로 주어지는데 숫자로 올바르게 변환하는 함수를 만드는 것이다. 먼저 나는 문제를 풀기 위해 영단어와 숫자가 일치하는 딕셔너리를 만들었다. 하지만 코드를 적다보니 딕셔너리를 사용하지도 않고 굉장히 단순하고 무식한 방법으로 풀었다. 문자열 s를 하나씩 풀어서 일치하는 조건의 값을 숫자로 돌려주는 함수다. 다른 사람의 문제 풀이를 보니 순서를 바꿔서 푸는 방법도 있었다. 내가 처음 생각했던 것도 딕셔너리로 만들어 s의 일부값이 딕셔너리 키값에 들어있다면 해당 숫자를 반환하는 식이었는데 이 코드는 아예 딕셔너리부터 시작해서 s에 해당하는 값을 찾았다. 그리고 answer를 문자열 그대로 사용해 replace로 키값과 밸류를 치환했다. 내가 항상 리스틀 만들고 그걸 다시 해답에 맞게 조합하거나 조작해서 출력하는 경우가 많은데 시간복잡도면에서 리스트를 사용하지 않는게 더 좋으니 앞으로 다른 방법도 고민해야한다. 딕셔너리의 특성도 잘 알고 있어야 한다. 반복문에서 num_dict.items()는 키-값 쌍을 반환한다. 그래서 key, value를 동시에 추출하는 것도 가능하다. 만약 key만 뽑거나 value만 뽑을때는 .keys / .values 라고 적어줘야 한다.