개발기록

스트림(Stream)은 함수형 인터페이스인 람다(lambda)를 활용할 수 있는 기술이다. 예전에는 배열이나 컬렉션을 반복문으로 순회하면서 요소를 하나씩 꺼내 여러가지 코드를(예를 들어 if 조건문 등) 섞어서 작성했다면 스트림과 람다를 이용하여 코드의 양을 대폭 줄이고 조금 더 간결하게 코드를 작성이 가능하다. 스트림을 이용하면 멀티 스레드 환경에 필요한 코드를 작성하지 않고도 데이터를 병렬로 처리하여 많은 데이터를 빠르게 처리가 가능하다. 기존의 반복문을 사용한다면 synchronized와 같은 병렬성을 위한 동기화 코드를 관리 스트림은 크게 3가지 단계로 동작. 1. 컬렉션이나 배열 등으로부터 스트림을 생성하는 작업(Stream Source) 2. 스트림을 필터링하거나 요소값을 변환하는 중간 연산(..
보호되어 있는 글입니다.
개발 업무를 하다보면, 사실 구조를 더 잘 만든 후에 개발을 해야한다는 것을 어렴풋이 느낄 수 있다. 추상 클래스의 본질이 무엇인가? 에대한 고민에서 시작하여 또 올바른 대답을 내릴 수 없음에 포스팅을 한다. # 추상클래스의 개념 어떤 객체를 표현하기 위해(실제 코딩시 객체를 생성하기 위해) 그 객체의 멤버변수와 메서드를 생각해 A클래스, B클래스, C클래스 ... 여러 클래스들을 만들 수 있다. 추상 클래스는 위에 만들어진 클래스들간의 공통적으로 사용할 수 있는 멤버변수나 메서드를 추출해내 공통적으로 사용하기 위해 만들어진 클래스이다. 예를 들자면, '자동차'라는 클래스가 있다. 자동차를 만드는 제조사는 여러 곳이다. 각 제조사가 원하는 디자인과 기능들을 넣어 출시하지만 이 자동차라는 것은 여러모로 공..
보호되어 있는 글입니다.
보호되어 있는 글입니다.

자바의 자료형은 크게 2가지 기본 타입(Primitive Type)과 참조 타입(Reference Type)으로 나눠진다. 개발을 하다보면 기본 타입의 데이터를 객체로 표현해야 하는 경우가 있다. 기본 자료(Primitive Type)을 객체로 다루기 위해서 사용하는 클래스들을 Wrapper Class라고 한다. JAVA의 모든 기본 타입은(Primitive Type)은 값을 갖는 객체를 생성할 수 있다. Wrapper Class로 감싸진 기본 타입의 값은 외부에서 변경 할 수 없다. 기본 타입(Primitive Type) 래퍼클래스(Wrapper Class) byte Byte char Character int Integer float Float double Double boolean Boolean lo..

자바에서 다형성을 지원하는 Overriding과 Overloading에 대해 알아보자. 오버라이딩(Overriding) : 상위클래스가 가지고 있는 메서드를 하위클래스가 재정의해서 사용 오버로딩(Overloading) : 같은 이름의 메서드 여러개를 갖고 매개변수의 유형과 개수로 구분하여 사용 오버로딩 예제 package overtest; class OverloadingTest{ void test1(){ System.out.println("No Arguments"); } void test1(int a, int b){ System.out.println("Two Integers Args : "+a+" "+b); } void test1(String c){ System.out.println("One String..
Java에서 직렬화(Serialization)란 ? 객체를 직렬화하여 전송 가능한 형태로 만드는 것. 객체들의 데이터를 연속적인 데이터로 변형 Stream을 통해 데이터를 읽도록 해준다. 객체를 통째로 파일로 저장하거나 전송하고 싶을때 사용 Java에서 역직렬화(Deserialization)이란? Serializaiton(직렬화)된 파일등을 역으로 직렬화하여 다시 객체의 형태로 만드는 것을 의미. 저장된 파일을 읽거나 전송된 스트림 데이터를 읽어 원래 객체의 형태로 복원. Serialization을 위한 전제조건이 있다. -> 직렬화가 가능한 클래스를 먼저 만드는 것이다. public class A { ... } //이런 형태라면 public class A implements Serializable { ..
보호되어 있는 글입니다.

Collection Framework는 다수의 데이터를 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 컬렉션 프레임워크는 자바의 interface를 사용하여 구현. List와 Set 인터페이스는 모두 Collection 인터페이스를 상속 Map 인터페이스는 별도로 정의. 주요 인터페이스의 특징 List 순서가 있는 데이터의 집합, 중복 허용 Vector, ArrayList, LinkedList, Stack, Queue Set 순서가 없는 데이터의 집합, 중복 미허용 HashSet, TreeSet Map Key, Value 한 쌍. 키는 중복을 허용하지 않지만, Value는 중복 가능 HashMap, TreeMap, Hashtable, Properties Collection 인터페이스가..