Origin은 Schema와 Host 및 포트 번호로 구성된다 만약 https://www.example.com:8080/index.html 이라는 URL이 있다면 이중 Host는 www.example.com 이 Host가 되고 Schema는 https:// 이부분이 된다. 마지막으로 포트번호는 8080부분이다. Origin은 보안과 관련된 많은 웹 표준에서 사용되며 같은 Origin끼리는 자유롭게 리소스를 공유할 수 있지만 다른 Origin끼리는 제한적으로만 공유할 수 있다고한다. site는 위의 예시에서 example.com까지가 site인데 TLD와 그 앞부분(+1)의 조합을 말한다. 여기서 TLD란 Top Level Domain의 줄임말인데 해당 예시에서 com부분을 말한다. 그런데 co.jp나 g..
스트림이란 자바 8부터 도입된 문법으로 배열 및 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 하는 반복자다. 스트림의 사전적 의미는 개울, 냇가, 흐름을 말하는데 자바에서의 스트림은 데이터의 흐름을 의미한다. 즉 각 데이터를 흐름에 따라 우리가 원하는 결과로 가공하고 처리하는 일련의 과정을 스트림이라 할 수 있겠다. 스트림의 장점은 for문과 iterator에 비해 코드가 짧고 간결하며 기존 방식으로 데이터를 처리하는 경우에는 표준화된 하나의 방식이 아니라 데이터 소스에 따라 그에 부합하는 방식의 메서드를 작성해야 했지만 스트림의 경우 데이터 소스에 관계없이 같은 방식으로 가공 및 처리가 가능함 -> 배열이냐 컬렉션이냐에 관계없이 하나의 통합된 방식으로 데이터를 다룰 수 있다는 큰 ..
람다는 함수형 프로그래밍 기법을 지원하는 자바의 문법 요소를 말한다. 메서드를 하나의 식으로 표현한 것으로 코드가 매우 간결하면서 명확하게 표현할 수 있는 장점이 존재하며 자바도 JDK1.8 이후 함수형 프로그래밍 문법 요소를 도입하면서 객체지향 프로그래밍 + 함수형 프로그래밍 과 같이 혼합하는 방식으로 보다 효율적인 프로그래밍을 할 수 있게 되었다. 여기서 함수의 정의는 다음과 같다. 함수란? 프로그래밍에서 함수(function)란 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합으로 정의할 수 있습니다. -TCP School, http://www.tcpschool.com/c/c_function_basic 위의 정의는 C언어에서 함수의 정의인데 자바에서는 함수는 메서드와..
Map 인터페이스는 키와 값으로 구성된 객체를 저장하는 구조를 가지고 있다.이 객체를 Entry 객체라고 하는데 Key 객체에 키를 Value객체에 값을 저장한다. 여기서 키는 고유한 값을 가지는데 값을 식별하는 역할을 가지고 있기 때문이다. 따라서 기존에 존재하는 키와 동일한 키로 값을 저장하게 될 경우 기존값이 새로운 값으로 변경된다. 이와 같은 Map 인터페이스를 구현한 클래스에는 HashMap, HashTable,TreeMap,SortedMap등이 존재하지만 여기서는 HashMap만 다뤄보겠다. HashMap는 해시 함수를 통해 키와 값이 저장되는 위치를 결정하기 때문에 사용자는 위치를 알수 없고 순서와 위치또한 관계가 없다. 또 키에 산술적인 연산을 적용하여 항목이 저장되어 있는 테이블의 주소를..

set는 수학에서는 집합을 의미 한다. 수학에서 집합과 같이 자바 컬렉션에서의 set도 요소의 중복을 허용하지않고 저장 순서를 유지하지 않는 특징이 있다. set에는 대표적으로 HashSet와 TreeSet가 있다. HashSet는 Set 인터페이를 구현한 대표적인 컬렉션 클래스이며 Set 인터페이스의 특성을 그대로 물려받았다. 따라서 중복값을 허용하지 않고 저장 순서를 유지하지 않는다. 해당 값이 중복인지에 대해 HashSet는 다음과 같이 판단한다. 처음으로, 사용자가 add(Object o)를 통해 객체를 저장하고자 할 때 저장하려고 하는 객체의 해시코드를 hashCode() 메서드를 통해 얻어낸다. 그리고 비교를 할 Set()이 저장하고 있는 모든 객체들의 해시코드를 hashCode() 메서드로 ..
컬렉션이란 여러(복수의) 자료들을 규칙있게 담아놓은 장소/자료구조 등, 한번에 많은 복합 자료의 저장,이용이 가능하도록 자료구조,알고리즘들을 함께 엮어 설계하고, 이를 구현한 집합체를 말한다. -【 정보통신기술용어해설 】,http://www.ktword.co.kr/test/view/view.php?m_temp1=6036 컬렉션 프레임워크란 위와 같은 컬렉션을 다루는데에 있어 편리한 메서드들을 미리 정의해 놓은 것이라고 할 수 있다. 컬렉션 프레임워크에서는 특정 자료 구조에 데이터를 추가하거나 삭제, 수정, 검색하는 등의 동작을 수행할 때 편리한 메서드들을 제공한다. 컬렉션 프레임워크는 주요 인터페이스로 List,Set,Map를 제공한다. 첫번째로 List는 배열과 같이 객체를 일렬로 늘어놓은 구조를 가지..
Iterator은 직역하면 반복자라는 의미를 가지며 컬렉션안에 저장된 요소들을 순차적으로 읽어오는 역할을 한다. Iterator의 컬렉션 순회 기능은 Iterator 인터페이스에 정의되어져 있으며, Collection 인터페이스에는 iterator()메서드가 정의되어 있다. iterator() 메서드는 Iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 메서드이고 여기에 Iterator의 컬렉션 순회 기능이 정의되어져 있다. 반복자를 생성하는게 아니라 해당 컬렉션에 반복자를 호출하는 것이기 때문에 다음과 같이 사용한다. List drinks = Arrays.asList("오렌지주스", "콜라", "사이다","우유"); 문자열List 생성 Iterator it = drinks.iterator(..

예외처리란 프로그램의 오동작을 방지하기 위해서 일어나는 오류를 무시하거나 그에맞는 적절한 처리를 하고싶을 때 사용하는 방법을 말한다 에러가 발생하는 이유에는 다양한 요인들이 있다. 대표적으로 사용자의 입력 오류, 네트워크 연결 끊김등과 같은 요인들이 존재하는데 이와같은 요인들을 크게 외부요인과 내부요인으로 나눌 수 있다. 외부요인은 하드웨어 문제, 네트워크 연결 끊김, 사용자 조작 오류등이 존재하고, 내부요인은 개발자의 코드작성 에러등이 존재한다. 우리가 많이 봐 왔을 에러로는 ArrayIndexOutOfBoundsException 등이 있다. 발생 시점에 따라 에러를 컴파일 에러(Compile Time Error)와 런타임 에러(Run Time Error)로 구분하고 있다. 또한 논리적 에러도 존재하는..