전체 글 (44) 썸네일형 리스트형 [자료 구조] 비선형 구조(Non Linear) - 트리(Tree) 비선형 구조(Non Linear)데이터를 저장하기 위한 방법으로 데이터 간의 관계를 이루면서 계층적인 구조를 가지며 일렬로 나열되지 않은 자료구조 형태* 계층적인 구조 : 데이터 요소들이 상위와 하위 간의 관계를 가지며, 부모와 자식으로 구성되는 구조Ex) 트리(Tree), 그래프(Graph)트리(Tree)일반 트리데이터를 계층적으로 구조화하여 저장하는 자료구조데이터는 노드(Node)라는 구성요소로 구성되며, 하나의 루트 노드에서 시작하여 여러 개의 자식 노드로 분기되는 구조를 가진다.노드(Node) : 트리를 구성하는 기본 구성 요소. 데이터를 저장하는 단위루트 노드(Root Node) : 트리의 가장 상위에 위치한 노드. 부모 노드가 없는 최상위 상태부모 노드(Parent Node) : 자식 노드를 .. [자료 구조] 선형 구조(Linear Structure) 선형 구조(Linear Structure)데이터를 저장하기 위한 기본적인 형태로 데이터가 일렬로 나열되어 있으며 순서가 있고 논리적으로 이어져 있는 구조를 의미한다.Ex) 큐(Queue), 스택(Stack), 덱(deque)1. 큐(Queue)선입선출(First-In-First-Out, FIFO)의 특성을 가진다.동작 과정데이터 삽입(Enqueue) - rear 부분에 데이터가 저장되며 rear은 다음 삽입할 데이터의 위치로 이동한다. * rear : 삽입할 데이터의 위치를 가리키는 포인터로 맨 뒤에 위치한다.데이터 추출(Dequeue) - front 부분에서 데이터가 추출되며 front는 다음 추출한 데이터의 위치로 이동한다. * front : 추출될 데이터의 위치를 가리키는 포인터로 맨 앞에 .. Spring Framework의 주요 특징 Spring Framework의 주요 특징 제어의 역전(Inversion of Control, IoC)소프트웨어 디자인 패턴 중 하나로 일반적인 프로그램의 제어 흐름과는 반대로 "제어의 주체가 역전"되는 것일반적으로 프로그램은 사용자나 개발자가 직접 제어 흐름을 조작하고 결정하지만IoC 패턴을 사용하면 제어 흐름의 결정 권한(객체 생성 및 관리)이 Spring 컨테이너에게 위임된다.1. 객체 간 결합도를 낮출 수 있다.2. 유연한 코드를 작성할 수 있다.3. 테스트의 용이성이 향상된다.컨테이너가 의존성을 주입하고 객체의 라이프사이클을 관리함으로써 흐름을 관리하는 제어를 수행한다.컨테이너객체의 인스턴스를 생성 및 관리하는 역할필요한 객체를 생성하고 객체 간 의존성을 주입하는 등의 작업을 수행한다.IoC 컨.. Stream(2) Stream(2)동작 순서모든 요소가 중간 연산을 수행하고 전체 결과를 가지고 다음 연산으로 넘어가는 것이 아니라한 요소가 모든 파이프라인을 거쳐서 결과를 만들어낸 후 다음 요소로 넘어간다.List names = Arrays.asList("Kim", "Lee", "Park", "Choi");List namesList = names.stream() .filter(el -> { System.out.println("filter() called, now element is " + el); return el.contains("i"); }) .map(el -> { System.out.println("map() calle.. Stream(1) Stream(1)람다를 활용하여 데이터 처리 연산을 지원하도록 컬렉션, 배열, I/O 자원 등에 대해 저장되어 있는 요소들을 추출하여 반복적인 처리를 가능하게 하는 기능Collection vs Stream 스트림은 컬렉션과 마찬가지로 연속된 값 집합의 인터페이스를 제공한다.① Collection 컬렉션은 현재 자료구조가 포함하는 모든 값을 메모리에 저장한 후 계산이 가능하다. Ex) 다운로드된 동영상컬렉션은 외부 반복(ex.for-each문 등)을 통해 반복을 제어한다. ② Stream 스트림은 게으른 연산(Lazy)을 진행하여 요청할 때만 값을 계산한다. Ex) 전체 중 일정 구간만 제공되는 스트리밍 동영상스트림은 한 번 사용 후 소멸되며 재사용도 불가능하다.스트림은 내부 반복을 사용한다. - 내부에서.. 이전 1 2 3 4 ··· 9 다음