전체 글 (9)
Java Collection Framework 정리
Java 초기 버전 (1.0)에서도 자바는 `Vector`, `Stack`, `Hashtable`과 같은 몇 가지 컬렉션 클래스를 제공했다. 이 초기 컬렉션들은 데이터를 관리하는 기본적인 기능을 제공했지만, 아래와 같은 몇 가지 문제점이 존재했다. 1. 일관성 부족 - 초기 컬렉션 클래스들은 각기 다른 인터페이스와 동작으로 구성 2. 확장성···
2 min read
해시와 해시 테이블 그리고 셋
해시 함수란, 임의 크기 데이터를 고정 크기 값으로 매핑하는 데 사용할 수 있는 함수이다. 해싱이란, 해시 테이블을 인덱싱하기 위해 이처럼 해시 함수를 사용하는 것이며, 이를 통해 데이터를 가능한 빠르게 저장하고 검색할 수 있다. ### 해시 함수의 특징 - **해시 함숫값 충돌의 최소화** - **쉽고 빠른 연산** - **해시 테이블 전체에 해시값이···
2 min read
LinkedList 구현하기
자바의 `LinkedList` 클래스는 `AbstractSequentialList` 클래스를 상속하고 `List` 인터페이스와 `Deque` 인터페이스를 모두 구현한다. 이에 따라 리스트와 스택, 큐, 덱의 기능을 모두 제공할 수 있다. 각 요소가 데이터와 함께 이전 및 다음 요소에 대한 참조를 포함하는 노드로 구성 연결 리스트 기반으로 구현되어···
5 min read
스택과 큐 그리고 덱
스택과 큐 그리고 덱은 모두 선형 데이터 구조이지만, 각각의 특성과 사용사례 등이 다르다. 이 글에서는 스택과 큐, 덱의 특성을 자세히 살펴보고, 세 자료구조를 비교하여 각각의 장단점과 적합한 사용 사례를 알아보겠다. ## 스택 (Stack) 스택은 후입선출(LIFO, Last In First Out) 원칙을 따르는 선형 자료구조이다. 스택에서는···
2 min read
연결 리스트
연결 리스트는 추상적 자료형인 리스트를 구현한 자료구조이다. 데이터와 다음 노드의 위치 정보를 담는 노드를 이용해 데이터를 저장하며, 이를 통해 배열의 제약을 극복하고 데이터를 유연하게 관리할 수 있다. ### 연결 리스트 탄생 배경 연결 리스트는 배열의 단점을 극복하기 위해 탄생하였다. 배열은 연속된 메모리 공간을 요구하고, 초기 크기 설정이···
2 min read
Array
배열은 프로그래밍 언어에서 기본적으로 제공하는 자료구조이다. 데이터를 효율적으로 관리하고 접근하기 위한 선형 데이터 구조의 일종이며, 순차적인 데이터 저장과 빠른 데이터 접근이 중요한 다양한 상황에서 활용된다. ### 배열의 메모리 구조 1. **연속성**: - 메모리상에서 배열의 크기가 들어갈 수 있는 **연속된** 빈 공간을 찾아서 값(=···
Less than a minute
ArrayList 구현하기
`List` 인터페이스는 자바 컬렉션 프레임워크의 일부로, 순서가 있는 요소들의 집합을 다루는 데 사용된다. `AbstractList`는 `List` 인터페이스를 부분적으로 구현하는 추상 클래스이며, 리스트 구현체들이 공통적인 기능을 재사용할 수 있게 해준다. 자바의 `ArrayList` 클래스는 `AbstractList` 클래스를 상속하고···
6 min read
백명석 CTO님과의 커피챗 후기
[제미니의 개발실무](https://youtu.be/_2aCnAcHhfk?si=COtxw8l9wfGrQIbi)에서 그런 얘기가 나온다. 걸그룹 만날래 존경하는 개발자 만날래 하면 본인은 존경하는 개발자를 만나겠다고. 나는 아이돌을 굉장히 좋아하는 편이긴 하지만, 제미니님 말씀에 100% 공감한다. 그래서 나는 만나뵙고 싶은 개발자가 있으면 커피챗 요청에···
2 min read
블로그를 만들기 앞서
2017년 4월쯤 상무대에서, 나는 `에디톨로지`라는 책을 읽었다. 창조는 편집이라는 도발적인 문구도 맘에 들었지만, 저자인 김정운 교수가 독일 유학 때 배워왔다던 메모법, `Zettelkasten`이라는 개념이 머릿속에 꽤 오래 남았다. 우테코에서의 프로젝트, `괜찮을지도` 에서 다른 지도에 있던 기존 핀들을 재조합해서 새로운 지도를···
3 min read