카테고리 없음

17주차 정리

jjon-jonny 2024. 7. 31. 13:27

** 프로토콜

 

DNS

ㄴ domain name service 

서버의 주소를 특정 규칙을 가진 String에 Mapping 시켜주는 프로토콜

Domain Name 이라는 특정 규칙을 가진 String을 서버의 주소로 이동시켜줌

 

-Domain Name 의 규칙

 

Host + Label + TLD

 

Host : 개발자가 정한 서버의 이름 

Label : Domain Name 의 이름 (돈을 주고 구입)

TLD : Domain Name 의 성격 (돈을 주고 구입)

 

Naver.com 이 단위로 구입 함

Naver.net 이건 다른 Domain Name 이 된다.

 

Record 

ㄴ Domain Name에 설정할 수 있는 값의 단위

a : 특정한 IP에 Domain Name을 연결할 때

cname : 특정한 Domain Name에 내 Domain Name을 연결할 때 사용함

mx : 특정한 메일 서버에 Domain Name을 연결할 때

txt : 특정한 String 문자열에 Domain Name 을 연결함

 

 

 

SSL 의 구성

 

 

  • Public key(key) : 웹 서버가 사용자에게 보내는 key 파일
  • private key(cert) : 웹 서버가 소유하고 있는 key 파일
  • ca : 이러한 key 파일들을 발급한 회사의 인증서 : 회사가 해킹당했다면? 그래서 필요함

 

 

 

-SSL의 동작 구조
ㄴ 비대칭키 암호화 기법을 사용함
대칭키 : 키파일 하나로 암호화 복호화 함
비대칭키 : 키파일 두개로 암호화 키 복호화 키 두개로 나눠져 있음
 
  1. 클라이언트에서 웹 서버에 첫 번째 방문을 함
  2. 웹 서버는 이를 인지하고, 클라이언트한테 public key 를 보냄
  3. 클라이언트는 이 public key를 받아서 저장함
 
  1. 클라이언트가 서버에 요청을 할때 값을 public key 로 암호화함
  2. 웹 서버는 받은 값을 private key로 복호화해서 읽음
  3. 웹 서버가 응답할 때 값을 private key로 암호화함
  4. 클라이언트는 받은 응답 값을 public key로 복호화함.
** NoSQL
 
  • 데이터베이스의 종류
  1. Relational Database
ㄴsql 언어를 사용했다
 
  1. NoSQL Database
ㄴ 데이터베이스 스키마가 존재하지 않음
ㄴ json 형태 등으로 사용하는 데이터베이스
ㄴ 엄격한 규칙이 존재하지 않음
ㄴ 유연한 개발이 가능한 데이터베이스
 
  • 장점
ㄴ 모든 데이터를 json 형태 (key : value ) 로 저장함
ㄴ SQL 문이 존재하지 않기 때문에 , 대충 때려박으면 대충 저장해줌
ㄴ 값의 단순 입력이나 단순 출력에 있어서는 RDB 보다 빠름
 
 
 
-단점
ㄴ RDB 처럼 강력한 체계가 없기 때문에, 중복값 빈값 체크 등 무결성을 보장할 수 없음
ㄴ 특정 조건 하에 탐색하는 것이 RDB보다 느림
 
-사용 예시
ㄴ 채팅
ㄴ 로깅 ( Logging )
ㄴ 빅데이터 분야
 
** mongoDB
 
-소개
ㄴ NOSQL 데이터베이스 시장에서 가장 큰 비율을 차지하는 데이터베이스
 
-사용 방법
  1. MongoDB 기업의 클라우드를 이용하는 방법
  2. 원래 하던 것처럼 직접 설치하는 방법
 
-구조
 
RDB : DB -> (SCHEMA) ->TABLE -> ROW
NOSQL : DB -> Collection -> Document
 
 
Article: {
idx,
content,
author,
time,
image: [
{
idx,
link,

},
...
],
Comment:[
{
idx,
author,
text,
time
},
]
 

}

 

과제 : 몽고디비 이용 
 
로깅 
 
오늘과제 : 웹서버에서 일어나는 로깅기록을 만들어오기
누가 api 를 호출했다 ==> 로그 기능을 만든다
누가 api 를 호출했다는 로그 기능을 몽고 db를 통해서 만든다
 
  1. 사용자가 누구인지 그 사람의 idx
  2. 그 사람이 요청한 api 의 명
  3. 그때 그사람이 보낸값
  4. 우리가 응답한 값
  5. 상태코드
  6. 이 로그가 생성된 시간
 
 
  1. 래퍼 사용하기
  2. 인터셉터 사용하기( 추천 ). 
ㄴ express res.on event 라고 치면 나올것 
이게 뭔지 그리고 이걸 어떻게 응용할수 있을지 로그기능을 효율적으로 적용해오기