CS
-
[네트워크] URI와 웹 브라우저 요청 흐름CS/네트워크 2021. 4. 5. 01:04
웹브라우저에서 api 호출 시 동작 원리 URI (Uniform Resource Idendifier) URI 사람을 주민등록번호로 식별 할 수 있듯이 리소스를 식별 할 수 있는 식별자 (URL과 URN을 모두 포함하는 개념) Uniform : 리소스를 식별하는 통일된 방식 Resource : 자원, URI로 식별 할 수 있는 모든 것 (제한 없음) Identifier : 다른 항목과 구분하는데 필요한 정보 URL (Uniform Resource Locator) Locator : 리소스가 있는 위치를 지정 URN (Uniform Resource Name) Name : 리소스에 이름을 부여 URL 전체 문법 scheme://[userinfo@]host[:port][/path][?query][#fragment..
-
[네트워크] HTTPSCS/네트워크 2021. 4. 5. 01:03
HTTPS 동작 원리 HTTPS (Hyper Text Transfer Protocol over Secure Socket Layer)란? SSL (Secure Socket Layer)을 이용한 HTTP 통신 방법 SSL 사용 목적? 데이터를 암호화 통신하려는 상대를 보증 할 수 있음 SSL을 활용한 통신 절차 server hello 인증서에는 서비스 정보(인증서를 발급한 CA, 서비스 도메인, etc)와 public key가 들어있음 client 인증 client에는 믿을 수 있다고 판단한 CA 기관 목록을 가지고 있음 인증서가 CA에 의해서 발금된 것인지 확인? (전자서명) 클라이언트에 내장되어 있는 CA의 공개키로 인증서를 복호화 → 복호화 성공 시 클라이언트가 접속한 서버가 신뢰가 있는 서버임을 증명..
-
[네트워크] HTTPCS/네트워크 2021. 4. 5. 01:03
HTTP 규격? 클라이언트 서버 구조 Request - Response 구조 클라이언트 서버 각각 독립적으로 발전 할 수 있음 무상태 프로토콜 (Stateless) 서버가 클라이언트의 상태를 보존 X 서버 확장성 ↑ (스케일 아웃 - 수평 확장 유리) 비연결성 (Connectionless) HTTP는 기본이 연결을 유지하지 않는 모델 서버 자원을 효율적으로 사용 가능 HTTP 메세지 HTML부터 이미지, 영상까지 모든 데이터를 주고 받을 수 있음 단순하고 확장 가능 HTTP Request 구조 start line ex) GET /search HTTP/1.1 HTTP Method Request Target HTTP Version headers body HTTP Response 구조 status line e..
-
SOLID 원칙 (객체지향 5대원칙)CS/프로그래밍 공통 2021. 4. 5. 00:59
1. SRP, Single Reponsibility Principle (단일 책임 원칙) 소프트웨어의 설계 부품(클래스, 함수 등)은 단 하나의 책임(기능)만을 가져야 한다. 프로그램 변경에 영향을 받는 부분이 적어야 함 -> 응집도는 높고, 결합도는 낮은 프로그램 2. OCP, Open-Close Principle (개방-패쇄 원칙) 기존의 코드를 변경하지 않고(Close) 기능을 수정하거나 추가할 수 있도록(Open) 설계해야 한다. public class SoundPlayer { public void play() { System.out.println("play was"); } } public class Client { public static void main(String[] args) { Soun..
-
다형성 (Polymorphism)CS/개발 언어 (JAVA) 2021. 4. 5. 00:28
정의 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미 하나의 메소드나 클래스가 있을 때 이것들이 다양한 방법으로 동작하는 것을 의미 예시 public class A { public void x() { System.out.println("A.x"); } } public class B extends A { public void y() { System.out.println("B.y"); } } public class PolymorphismDemo { public static void main(String[] args) { A obj = new B(); obj.x(); // B에 x()가 없기 때문에 A.x가 출력 obj.y(); // A에 y()가 없기 때문에 에러 } } public class A ..