JAVA - 컬렉션 프레임워크

프레임워크(Framework)라는 단어는 여러 분야에서

약간씩 상이한 개념으로 사용된다

때문에 이 단어에 대한 정확한 의미 파악이 쉽지 않을 수 있다.


하지만 기본적으로 다음의 의미를

공통적으로 내포한다


"잘 정의된, 약속된 구조나 골격"

"잘, 정의된 약속된 구조의 클래스들"


쉽게 말해, 여러 개발자들에 의해 사용되도록

잘 정의된 클래스들의 모임이라 할 수 있다.

그런데 이것이 전부라면 라이브러리에

지나지 않는다. 하지만 컬렉션과 관련해서는

컬렉션 라이브러리 라고 하지않고

컬렉션 프레임워크 라고 한다

이는 컬렉션과 관련된 클래스들의 정의에

적용되는 설계의 원칙, 또는 구조가 존재하기 때문이다


컴퓨터 공학에는 '자료구조' 라는 학문과 '알고리즘'

이라는 학문이 있다 여기서 자료구조는 데이터의

저장과 관련이 있는 학문으로서, 검색 등 다양한 측면을

고려하여 효율적인 데이터의 저장 방법을 연구한다.

반면 알고리즘은 저장된 데이터의 일부 또는 전체를 대상으로

진행하는 각종 연산을 연구하는 학문이다. 따라서 이 둘은

서로 다른 학문이면서 매우 긴밀한 연관이 있다.


자료구조에서 정형화하고 있는 데이터의 저장방식 중에서

대표적인 몇가지를 정리하면

배열(Array), 리스트(List), 스택(Stack), 큐(Queue), 트리(Tree), 해시(Hash)

그리고 알고리즘에서는

정렬(Sort), 탐색(Search), 최대(Max), 최소(Min)


컬렉션은 데이터의 저장, 그리고 이와 관련있는

알고리즘을 구조화 해 놓은 프레임워크이다. 쉽게는

바로 위에서 언급한 자료구조와 알고리즘을 클래스로

구현해 놓은 것 정도로 생각해도 좋다.

때문에 컬렉션 클래스들을 가리켜 '컨테이너 클래스' 라고도 한다.


컬렉션 프레임워크를 구성하는 클래스들은 많은 양의

인스턴스를 다양한 형태로 저장하는 기능을 제공하고 있다.

따라서 자료구조와 알고리즘을 잘 몰라도 자바의

컬렉션 프레임워크를 활용하면 다양하고 효율 적으로 인스턴스의

저장이 가능하다. 



<컬렉션 프레임워크의 인터페이스 구조>





댓글

Designed by JB FACTORY