Computer Science

Computer Science 모아보기 👉🏻 https://github.com/seoul-developer/CS GitHub - seoul-developer/CS: 주니어 개발자를 위한 전공 지식 모음.zip 주니어 개발자를 위한 전공 지식 모음.zip. Contribute to seoul-developer/CS development by creating an account on GitHub. github.com 💋 인트로 요즘 진행중인 CS 스터디에서 신기한 이야기를 들었다. 바로바로 자바 HashMap은 hash collision을 사용하기 위한 방법으로 separate chaining을 사용하며, 한 인덱스에 충돌된 데이터 개수에 따라, LinkedList와 Tree 구조를 왔다갔다 한다는 정보! ..
💋 프레임워크 vs 라이브러리 라이브러리와 프레임워크의 주요 차이점은 Inversion of Control(제어의 역전)이다. 즉, 내가 짠 코드에 제어권이 있다면 라이브러리, 내가 짠 코드에 제어권이 없다면 프레임워크를 사용중이라고 볼 수 있다. ✔️ 프레임워크 코드를 프레임워크에서 약속된 방식으로 잘 적으면, 프레임워크가 내 코드를 불러와서 동작하게 한다. ⇒ 프레임워크가 내 코드를 호출한다. ⇒ 나는 파일 이름이나 구조 등을 프레임워크가 정한 규칙에 따라 만들고 따른다. 프레임워크는 애플리케이션의 기본 구조와 흐름을 제공하므로, 개발자는 핵심 비즈니스 로직에 집중할 수 있어서 생산성이 향상될 수 있다. ✔️ 라이브러리 내가 작성하고 싶은대로 코드를 작성하고, 라이브러리의 기능이 필요할 때 직접 메서..
Computer Science 모아보기 👉🏻 https://github.com/seoul-developer/CS GitHub - seoul-developer/CS: 주니어 개발자를 위한 전공 지식 모음.zip 주니어 개발자를 위한 전공 지식 모음.zip. Contribute to seoul-developer/CS development by creating an account on GitHub. github.com 💋 B+Tree란? ✔️ 개념 데이터베이스 index에 자주 사용되는 자료구조 B-Tree 계열의 Balanced Tree 종류 중 하나 MySQL의 InnoDB 스토리지 엔진은 주로 B+ Tree를 사용한다. B+ Tree B-Tree에서 파생된 개념이다. B+Tree는 데이터베이스 인덱스와 ..
Computer Science 모아보기 👉🏻 https://github.com/seoul-developer/CS GitHub - seoul-developer/CS: 주니어 개발자를 위한 전공 지식 모음.zip 주니어 개발자를 위한 전공 지식 모음.zip. Contribute to seoul-developer/CS development by creating an account on GitHub. github.com 💋 Trie란? ✔️ 개념 트라이(Trie)는 문자열을 저장하고 효율적으로 탐색하기 위한 트리 형태의 자료구조 검색 자동완성 기능 등 문자열을 탐색하는데 특화되어있는 자료구조 주로 문자열을 저장하고 검색하는 데 사용된다. Trie 자료구조는 컴퓨터공학 과목에서 본격적으로 다루는 자료구조는 아니다..
Computer Science 모아보기 👉🏻 https://github.com/seoul-developer/CS GitHub - seoul-developer/CS: 주니어 개발자를 위한 전공 지식 모음.zip 주니어 개발자를 위한 전공 지식 모음.zip. Contribute to seoul-developer/CS development by creating an account on GitHub. github.com 💋 Graph란? ✔️ 개념 node(정점)과 edge(간선)으로 구성된 비선형 데이터 구조 node의 집합(V)과 edge의 집합(E)으로 이루어져 있다 ⇒ G(E, V)로 표기 ✔️ 구성 요소 Vertices nodes, 정점으로도 부른다. 그래프의 기본 단위 각 노드는 레이블이 지정될 수도..
Computer Science 모아보기 👉🏻 https://github.com/seoul-developer/CS GitHub - seoul-developer/CS: 주니어 개발자를 위한 전공 지식 모음.zip 주니어 개발자를 위한 전공 지식 모음.zip. Contribute to seoul-developer/CS development by creating an account on GitHub. github.com 💋 Set ADT ✔️ 개념 데이터를 저장하는 추상 자료형 순서 보장 X 데이터 중복 X ✔️ 주요 동작 삽입(Insertion) 새로운 원소를 집합에 추가하는 동작 집합에 이미 존재하는 원소는 중복으로 삽입되지 않는다. 삭제(Removal) 주어진 원소를 집합에서 제거하는 동작 포함 여부(Co..
Computer Science 모아보기 👉🏻 https://github.com/seoul-developer/CS GitHub - seoul-developer/CS: 주니어 개발자를 위한 전공 지식 모음.zip 주니어 개발자를 위한 전공 지식 모음.zip. Contribute to seoul-developer/CS development by creating an account on GitHub. github.com 💋 Map ADT ✔️ 개념 key-value 쌍을 저장한다. key는 중복되지 않는다. associative array, dictionary라고도 부른다. ✔️ 주요 동작 put(key, value): 지정된 키에 값을 연관시킵니다. 만약 이미 해당 키에 값이 존재한다면, 기존 값은 새로운 값..
Computer Science 모아보기 👉🏻 https://github.com/seoul-developer/CS GitHub - seoul-developer/CS: 주니어 개발자를 위한 전공 지식 모음.zip 주니어 개발자를 위한 전공 지식 모음.zip. Contribute to seoul-developer/CS development by creating an account on GitHub. github.com 💋 DB 인덱스가 B-Tree 자료구조를 사용하는 이유 데이터베이스의 인덱스는 B-Tree 자료구조를 사용한다. ✔️ 시간 복잡도 B-Tree 계열의 B+Tree, B*Tree 균형 트리이기 때문에 평균과 최악의 경우 모두 O(logN)의 시간 복잡도를 가진다. 이진 탐색 트리 균형이 얼추 맞는..
Computer Science 모아보기 👉🏻 https://github.com/seoul-developer/CS GitHub - seoul-developer/CS: 주니어 개발자를 위한 전공 지식 모음.zip 주니어 개발자를 위한 전공 지식 모음.zip. Contribute to seoul-developer/CS development by creating an account on GitHub. github.com 💋 B-Tree란? ✔️ 개념 이진 탐색 트리를 일반화한 트리다. Binary-Tree 라고 오해를 하지만 Balanced-Tree 를 의미한다. 따라서, 이진 탐색 트리와 비교하면 더 이해가 쉽다! 일반적인 이진 탐색 트리에서는 각 노드가 최대 두 개의 자식 노드를 가지지만, B-Tree에서는..
Computer Science 모아보기 👉🏻 https://github.com/seoul-developer/CS GitHub - seoul-developer/CS: 주니어 개발자를 위한 전공 지식 모음.zip 주니어 개발자를 위한 전공 지식 모음.zip. Contribute to seoul-developer/CS development by creating an account on GitHub. github.com 💋 인트로 앞선 이진 탐색 트리에 관한 포스팅에서 마지막에 소개한 단점에 대한 부분에 주목해보자. 이진 탐색 트리는 트리가 구조적으로 한쪽으로 편향되면 모든 동작의 수행 시간이 악화된다. 이진 탐색 트리가 변질 이진 트리에 가까운 모양으로 (한쪽으로 치우쳐) 생긴 경우에, 삽입/삭제/탐색에 O(..