전체 글

완벽이 아닌 향상을 추구합니다
IT/CS

[CS/Data Structure] 2. 배열과 연결리스트 (Array & Linked List)

배열 배열의 특징 대표적인 선형 자료구조 가장 기본적인 자료구조 메모리에 연속적으로 데이터를 저장하는 자료구조로, 논리적 저장순서와 = 물리적 저장순서(일치) 탐색 O(1), 삽입/삭제 O(N) → 접근이 용이하며 데이터 삽입및 삭제가 어렵다. → 논리적 저장순서 = 물리적 저장순서이기에, 인덱스로 해당 원소에 접근할 수 있으므로 탐색시 O(1)로 접근 가능하다 ⇒ 즉, Random Access 가 가능하다는 장점이 있다 크기 고정적 Cache locality(정의 링크) 가 좋아 Cache Hit 가능성이 크다. 연결리스트 연결리스트의 특징 배열과 동일한 선형 데이터 자료구조이나, 연속적인 메모리 위치에 저장되지 않는다. (메모리가 불연속적으로 배치된 선형 자료구조) 연결 리스트에서 서로 연결된 원소(..

IT/CS

[CS/Data Structure] 1. 자료구조란 무엇인가

자료구조의 개념 자료구조란 무엇인가 자료구조란, 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케하는 자료의 조직/관리/저장을 의미한다. 더 정확히는, 자료구조는 (1) 데이터 값의 모임이며, (2) 데이터 간의 관계 (3) 데이터에 적용할 수 있는 함수나 명령을 의미한다. 요약하면, 자료구조는 자료에 효율적으로 접근하고 수정할 수 있도록 데이터를 구성하고 저장하는 방법을 의미하는 것이다. 자료구조의 구분 자료구조는 저장되는 데이터의 형태에 따라 구분할 수 있다. 선형 자료구조 비선형 자료구조 1. 선형 자료구조 데이터가 일렬로 나열되어 있는 것이 특징이다. 종류 (1) Array (2) Linked List (3) Stack (4) Queue (5) Vector 2. 비선형 자료구조 선형 자료구조와 달리..

IT/Kotlin

[Kotlin/Coroutine] 3. launch와 async의 Job과 Deferred

launch 함수의 Job launch함수로 시작한 Coroutine은 Job 타입의 객체를 Return한다 Job은 coroutine 자체를 의미하기에, launch로 실행되는 Coroutine을 취소할 수도 있고, 기다릴 수도 있다. → 즉 LifeCycle 에 관심이 있다. async 함수의 Deferred 여기서 Deferred는 Job을 상속한 클래스이기 때문에, launch를 사용한 곳에 async를 사용해도 항상 아무 문제가 없다. async는 return할 결과값이 있는데, Deferred타입으로 객체를 return한다. Deferred는 Future처럼 미래의 결과값을 담아놓을 수 있는 객체이며 결국 미래의 결과값을 의미하므로 완료되길 기다리다가 Return되는 값에 관심이 있다. Def..

IT/Kotlin

[Kotlin/Coroutine] 2. Kotlin에서의 Coroutine: launch와 async

Kotlin에서의 Coroutine 1편인 Coroutine이란 무엇인가 참고 Kotlin은 특정 coroutine은 언어가 지원하는 형태가 아닌, Coroutine을 구현할 수 있는 기본 도구를 언어가 제공하는 형태이다 Kotlin의 Coroutine 지원 기본 기능들은, kotlin.coroutine 패키지 밑에 있고, Kotlin 1.3부터는 Kotlin을 설치하면 별도의 설정없이도 모든 기능을 사용할 수 있다. 하지만, Kotlin이 지원하는 기본 기능을 활용해 만든 다양한 형태의 코루틴들은, kotlinx.coroutines 패키지 밑에 있다. Suspend와 Resume Suspend와 Resume은 Callback방식을 대체한 Coroutine만의 메커니즘으로, 다음과 같은 의미가 있다 Su..

Hodie!
Vive Hodie