프로그래머스 백엔드 데브코스 11일차
DB
JOIN 종류
- INNER JOIN -> 두 테이블의 교집합만 포함
- FULL OUTER JOIN -> 두 테이블의 전부를 포함 ( MYSQL은 지원 X )
- CROSS JOIN(CARTESIAN JOIN) -> 두 테이블의 모든 조합을 포함
- LEFT JOIN, RIGHT JOIN -> 해당 위치에 있는 테이블만 포함
- SELF JOIN -> 스스로를 포함
JOIN시 고려해야할 것
- 중복 레코드가 없어야 하고 Primary Key(기본키)의 uniqueness(유일성)가 보장되어야함.
도널드님 HTTPS 특강
HTTPS란?
- HTTP는 패킷을 통해 정보를 주고 받을 때, 패킷이 보여지게 되면 모든 내용들이 보인다. 이런 문제를 해결하기 위해 패킷을 암호화한 것이 HTTPS다.
- 요즘엔 TLS(Transport Layer Scurity)라 불러야 하는데, 아직도 SSL이라 불리고 있다.
암호화 알고리즘
- 메시지 다이제스트(Message Digest)
- 대칭 키 암호화
- 공개 키 암호화
- 전자 서명(DSA, Digital Signature Algorithm)
암호화되지 않은 통신망에서 키 교환
- 공개 키 암호화 방식을 사용하여 대칭 키를 공유
- 받은 대칭 키(공개 키로 암호화)를 개인 키로 복호화 하여 대칭 키를 얻는다.
- 이 과정에서 대칭 키를 세션 키라고 부른다.
중간자 공격 막기
- 중간자 공격이란 전송하는 공개 키를 자신의 공개 키로 바꾸는 것이다.
- 이것을 방어하기 위해 인증서를 사용한다.
- 이제 인증 기관의 인증서(공개 키)로 상대방이 보낸 인증서의 서명 값을 검증한다.
- 받은 인증서에 포함 된 공개 키로 암호화해서 보낸다.
- 이런 암호화 알고리즘들은 서로 약속이 되어야 한다.
- 세션으로 첫번째 접근으로 키 공유할 땐 공개키를 사용하고 두번째 부턴 대칭키를 사용한다.
암호 모음
- 안전한 통신 채널을 만들기 위한 암호 알고리즘 모음을 뜻한다.
- 키교환(kx) - 서명 인증(Au) - 대칭 키 암호화 (Enc) - 메시지 다이제스트 (Mac)
전송 계층 보안
- 과거엔 SSL, 지금은 TLS이라 불리며 HTTPS의 S(secure)를 담당한다.
TSL
- SSL을 보완하여 나온 것이 TSL다.
- 레코드 프로토콜, 핸드쉐이크 프로토콜로 구성되어있다.
