1. https://www.naver.com:443 -> 요청이 된다 -> HTTP 요청 메시지를 생성한다. 2. 클라이언트에서 HTTP 메시지를 전송한다. -> 웹 브라우저가 HTTP 메시지를 생성하고 -> SOCKET 라이브러리를 통해 전달(TCP/IP 연결) -> TCP/IP 패킷 생성(HTTP 메시지 포함) -> LAN 드라이버와 장비를 통해 서버로 전송 3. 서버가 요청(request)패킷을 받고 응답(response) 메시지를 전송한다. 4. 응답 패킷이 도착하면 웹 브라우저가 HTML을 렌더링 한다.
URI란? Uniform: 리소스를 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음. html이나 사진 등 모든 것) Identifier: 다른 항목과 구분하는데 필요한 정보 URL: Uniform Resource Locator - Locator: 리소스가 있는 위치를 특정. 홍길동이 사는 아파트에 가면 홍길동이 있다. URN: Uniform Resource Name - Name: 리소스에 이름을 부여. 홍길동. 위치는 변할 수 있지만, 이름은 변하지 않는다. URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되어 있지 않다. (== 잘 쓰지 않는다) 상용: URI == URL URI의 문법 scheme scheme://[userinfo@]host[:p..
IP(Internet Protocol) - IP Address: 각 컴퓨터가 가지고 있는 고유한 주소 - 지정한 IP주소에 데이터를 전달하는 역할 - 패킷이라는 통신 단위로 데이터를 전달하는 역할 - 패킷(Packet): 전송 데이터를 출발지 IP, 목적지 IP, 기타...로 감싼 데이터의 형식화된 블록, 컴퓨터 네트워크에서 데이터를 주고받을 때 정해놓은 규칙. 데이터 조각. IP 프로토콜의 한계 비연결성 - 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 - 중간에 패킷이 사라질 수도 있다 - 패킷이 순서대로 도착하지 않을 수도 있다 프로그램 구분 - 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 경우도 있다 TCP(Transmission Control Protoc..
이터레이터 패턴이란? - 데이터의 형식에 상관 없이 동일한 방법으로 데이터를 하나씩 조회해볼 수 있는 패턴 - 배열을 하나씩 꺼내보는 방법과 Map을 하나씩 꺼내보는 방식은 다름. - 집합체 클래스를 배열처럼 순차적으로 조회해볼 수 있다. @Getter @Setter public class Student { private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; } } - 학생 클래스 public interface Aggregate { Iterator createIterator(); } - Iterator 역할을 만들어내는 인터페이스를 결정 public class..
OSI(Open Standard Interconnection Model) 7계층이란? 국제표준화기구(ISO)가 1977년 정의한 국제 통신 표준 규약이다. 네트워크의 기본 구조를 7개 계층으로 나눠서 표준화한 통신 규약으로 현재 다른 모든 통신 규약의 기반이 된다. TCP/IP(Transmission Control Protocol/ Internet Protocol Model) 4계층이란? OSI 7계층의 네트워크에서 데이터를 전송하는 과정을 4개의 계층으로 단순화시켜 사용하는 모델이다. 인터넷 모델이라고도 한다. - 프로토콜: 컴퓨터 간에 정보를 주고받을 때의 통신 방법에 대한 규칙, 표준이다. 1. 물리 계층 (Physical Layer) - 물리적으로 연결된 2대의 컴퓨터가 0과 1의 나열을 주고받을..
팩토리 패턴이란? - 객체를 생성하는 인터페이스는 미리 정의하되, 인스턴스를 만드는 클래스의 결정은 서브 클래스에서 내리는 패턴 - 객체를 생성하는 메소드를 추상클래스의 추상메소드로 미리 정의한다. // 객체를 생성할 추상 클래스 정의 public abstract class PizzaFactory { abstract Pizza createPizza(String name); } - 어떤 클래스가 만들어질 지는 CheesePizzaFactory가 정한다. public class CheesePizzaFactory extends PizzaFactory{ @Override Pizza createPizza(String name) { switch (name) { case "pickle": return new Chee..
패리티(Parity) 비트란? - 전송 과정에서 1비트 오류를 검출하기 위한 검증 코드다. - 1바이트 구조에서 7비트 크기의 아스키 코드를 제외한 나머지 1비트다. - 짝수 패리티 방식: 데이터 전송 과정에서 1비트 오류가 발생하면 전체 비트에서 1의 개수가 홀수 개, 오류가 없으면 짝수 개 유지. 위의 그림에서 짝수 패리티는 멀쩡한 상태. 다른 비트에 잘못된 값으로 1이 빠지거나 추가되면 오류 발생을 잡아내는 용도. - 홀수 패리티 방식은 반대. - 송신 호스트와 수신 호스트는 짝수 패리티나 홀수 패리티 중 한가지 방식을 사용하되 동일하게 사용해야 한다. 예) 바코드 해밍 코드 - 패리티 비트를 보고 오류를 정정할 곳을 찾아 수정하는 자기 오류정정 코드 - 패리티 비트는 오류를 발견만 하고 수정하지는..
각 방식 표현 방식 예 고정소수점: 1234.567 부동소수점: 1.234567 X 10^3 고정소수점 - 소수부의 자릿수를 미리 정해놓고 고정된 자릿수의 소수를 표현하는 것 - 제한된 자릿수로 인해 표현할 수 있는 범위가 작다는 단점 존재 부동소수점 - 수식을 이용해 매우 큰 실수까지 표현이 가능하다. - 대부분의 시스템에서 부동소수점 방식으로 실수를 표현. - 부동소수점 방식에서는 오차가 발생 -> 컴퓨터에서 실수 표현은 언제나 근사치