OSI 7계층은 무엇일까? OSI (Open Systems Interconnection) --OSI는국제 표준화 기구(ISO)에서 만든 네트워크 참조 모델로,네트워크 통신이 이루어지는 과정을 7개의 계층으로 나눈 표준화된 참조 모델이다. 네트워크에서 정상적인 통신이 가능하기 위해서는 서로 동일한 통신 방법을 사용해야 한다.만약 다른 통신 방법을 사용한다면 서로 어떤 통신을 원하는지 알 수 없기 때문에 정상적인 통신이 불가능하다.(서로 다른 언어를 사용하는 사람 둘이 대화가 통하지 않는 것과 비슷) 그래서 네트워크 통신에 참여하는 주체들이 서로 통신할 수 있도록 하기 위해공통적으로 따라야 하는 형식, 절차, 규약 등이 존재하는데 이를 "프로토콜"이라고 부른다.-------------------프로..
프로토콜이란? 프로토콜 (Protocol) --프로토콜은컴퓨터 네트워크에서 서로 다른 시스템(장치) 간에 데이터를 주고받기 위한 규칙과 절차를 정의한 의사소통 방식이다. 간단하게 말하면장치들이 서로 원활하게 통신할 수 있도록 공통적으로 사용하는 "언어", "규칙" 같은 것이다.즉, 네트워크에도 언어와 유사한 개념으로 사용한다. 위 그림처럼 A에서 B로 데이터(정보)를 전달하고자 한다. 그러기 위해서는 A는 보낼 데이터를 패킷으로 구성하여 전달해야 한다. (패킷 교환 방식)(보통 택배를 비유해서 설명한다.)전달한 데이터(페이로드)를 택배 상자(패킷)에 담는다.배송 주소와 같은 정보(헤더 or 트레일러)를 택배 상자(패킷)에 붙인다.완성한 택배 상자(패킷)를 택배 기사(네트워크 장비 or 중간 노..
네트워크란 무엇일까? 네트워크 (Network) --네트워크는두 대 이상의 컴퓨터 or 장치가 데이터를 주고받기 위해 서로 연결된 구조를 의미한다. 위 그림의 형태를 아래의 그래프로 표현할 수 있다. 노드 : 컴퓨터 or 장치와 같은 정보를 송수신하는 역할을 하며, 데이터를 생성, 처리, 전달하는 주체다.엣지 : 노드들 간의 연결을 나타내며, 데이터를 전달하는 경로다.-- 네트워크의 기본 구조 -- 호스트 : 네트워크의 가장자리에 위치하는 노드 (정보를 최초로 송신 및 최종적으로 수신) (ex 컴퓨터, 스마트폰, TV 등)네트워크 장비 : 호스트 외의 노드, 호스트 간 주고받을 정보를 중간에 거치는 노드 ..
CORS는 무엇일까? Origin --SOP (Same Origin Policy)CORS (Cross Origin Resource Sharing)SOP와 CORS를 보면 둘 다 "Origin"이라는 단어가 포함되어 있다. Origin이란 "출처"를 의미하고URL에서 Protocol + Host + Port를 합친 주소를 Origin이라고 부른다.즉, URL부분에서 출처를 판단할 때에는 Origin을 확인한다. 그래서 SOP와 CORS는 이 Origin(출처)와 관련 있는 용어라는 것을 알 수 있다.-- SOP (Same Origin Policy, 동일 출처 정책) --SOP는브라우저의 정책 중 하나로웹 보안을 위해 클라이언트(브라우저)가악의적인 사이트로부터 데이터를 탈취하거나 조작하는 것..
Math 클래스는 무엇이며, 어떻게 사용할까? Math 클래스 --Math 클래스는수학적 계산에 유용한 메서드를 제공하는 유틸리티 클래스다. java.lang 패키지에 포함된 다른 클래스들과 달리Math 클래스에는 기본적으로 메서드들이 static 메서드로 이루어져 있어서객체를 생성하지 않고 클래스 이름(Math)을 통해 직접 접근하여 사용할 수 있다. Math 클래스의 생성자는 접근제어자가 private다.즉, 다른 클래스에서는 Math 객체를 생성할 수 없다는 것이다.이유- 인스턴스 변수가 없다.- 제공하는 메서드는 전부 static 메서드다.- 상수도 E, PI 총 2개만 제공이러한 이유로 객체를 생성할 필요가 없기 때문에 생성자의 접근제어자가 private인 것이다. 주요 메서드--
Wrapper 클래스란 무엇이며, 어떻게 사용할까? Wrapper 클래스 --기본 타입을 객체로 감싸기 위한 클래스를 통틀어서 부르는 용어다. 객체지향에서는 모든 것이 객체로 다루어져야 하지만 기본 타입은 예외다.하지만 기본 타입을 객체로 다뤄야 하는 경우가 생기기 때문에 Wrapper 클래스를 사용한다. 예시매개변수가 객체로 값을 요구할 때기본 타입이 아닌 객체로 값을 저장해야 할 때객체 간의 비교가 필요할 때 Java는 8개의 기본형이 존재하여 완전한 객체지향 언어라고 부를 수 없다. Wrapper 클래스 종류 래퍼 클래스는 모두 equals() 메서드가 오버라이딩 되어 있어 주소값이 아닌 객체가 가지고 있는 값을 비교한다.toString() 메서드도 오버라이딩 되어 있어 객체가 가지고 ..
StringBuffer와 StringBuilder는 무엇이며, 어떻게 사용할까? StringBuffer 클래스 --StringBuffer 클래스는"가변 길이 문자열"을 다루기 위한 클래스로String 클래스와 달리 문자열을 수정할 수 있다. String 클래스는 "불변"으로 지정한 문자열을 수정할 수 없지만StirngBuffer 클래스는 "가변"으로 지정한 문자열을 언제든 수정할 수 있다. 내부적으로 문자열을 편집하기 위한 "버퍼(buffer)"를 가지고 있으며,StringBuffer 객체를 생성할 때 해당 버퍼 크기를 지정할 수 있다. 버퍼의 크기는 이후 편집할 문자열의 길이를 고려하여 넉넉하게 잡아주는 것이 좋다.만약 문자열을 편집할 때 버퍼 길이를 넘어가게 되면다시 버퍼의 길이를 늘여주는 ..
팩토리 메서드 패턴은 무엇인가? 팩토리 메서드 패턴 (Factory Method) --팩토리 메서드 패턴은상속 관계에 있는 두 클래스에서부모 클래스에는 중요한 뼈대를 정의하고, 자식 클래스에는 객체 생성에 관한 구체적인 내용을 정의하는 패턴으로부모 클래스에서는 객체 생성 방식에 대해 전혀 알 필요 없이 자식 클래스에게 객체 생성을 맡겨서구체적인 클래스 타입을 알 필요 없이 객체를 생성할 수 있게 된다.이를 통해 유연성과 유지 보수성이 증가한다. 예시 코드// (부모 클래스) 추상 클래스 또는 인터페이스를 사용한다.abstract class Car { protected String name; public String getName() { return name; ..