자료구조
-
[클린코드] 객체와 자료구조📚 개발 도서/클린코드 2023. 7. 16. 17:35
변수를 비공개로 정의하는 이유가 있다. 남들이 변수에 의존하지 않게 만들고 싶어서다. 그렇다면 왜 수많은 프로그래머가 조회함수와 설정함수를 당연하게 공개하여 비공개 변수를 외부에 노출할 것인가?라는 질문으로 시작한다. 자료 추상화 변수 사이에 함수라는 계층을 넣는다고 구현이 저절로 감춰지지는 않는다. 구현을 감추기 위해서는 추상화가 필요하다. 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스다. 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다. 아무 생각 없이 조회/설정 함수를 추가하는 방법이 가장 나쁘다. 개발자는 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각하게 고민해야 한다. 자료/객체 비대칭 객체 vs 자료구조? 객체..
-
[자료구조] 색인(Index), 역색인(Inverted Index)📖 개발 공부/자료구조 2023. 5. 1. 17:37
Elasticsearch의 대표 특징으로 불리는 역색인에 대해 알아보려고 한다. 역색인(Inverted Index)에 앞서, 색인(Index)에 대해 알아보자. 색인(Index)이란? 위의 사진에서 Forward Index이다. 문서에서 키워드를 찾아 보기 쉽도록 정렬 및 나열한 목록이다. 특정한 데이터가 어느 위치에 있는지 미리 저장해두어, 검색 시에 빠른 속도로 찾을 수 있도록 한다. 키워드를 토대로 데이터를 찾을 경우 마지막 데이터까지 확인을 해야할 수 있어 시간이 오래 걸릴 수 있다. 역색인(Inverted Index)이란? 위의 사진에서 Inverted Index이다. 키워드를 통해 문서를 찾아내는 방식이다. 데이터를 색인하는 과정에서 찾고자 하는 키워드를 기준으로 위치를 저장해두어 속도를 개선..
-
[자료구조] 자료구조란?📖 개발 공부/자료구조 2023. 4. 16. 14:27
자료구조의 정의 자료구조는 데이터를 효율적으로 저장하고 조작하기 위한 방법을 다루는 컴퓨터 과학의 분야이다. 컴퓨터 프로그램에서 데이터는 배열, 연결 리스트, 스택, 큐 등의 자료구조로 구성된다. 이러한 자료구조들은 특정 알고리즘의 작동에 필수적이며, 프로그램의 효율성과 성능에 큰 영향을 미친다. 자료구조의 특징 효율성: 상황에 맞는 자료구조를 사용하면 데이터 처리의 효율성이 높아진다. 데이터 접근, 삽입, 삭제, 검색 등의 연산이 빠르고 효율적으로 이루어져야 한다. 추상화: 추상화란 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추리는 것을 말한다. 자료구조는 데이터를 추상화하여 다양한 형태로 표현할 수 있다. 자료구조를 이용할 때 자료구조를 구현하는 자세한 작동원리보다는 사용 방..