본문 바로가기

전체 글107

[자료구조] Tree 앞서 다룬 자료 구조들과 다르게, 지금부터 다룰 tree는 비선형(non-linear) 자료구조이다. 즉, 하나의 element 뒤에 여러 개의 element가 올 수 있다. 보다 정확히 얘기하면 전자와 후자가 부모자식 관계로 얽힌 hierarchy가 있는 것이다. 앞서 다뤘던 array, linked list, queue, stack 등의 선형(linear) 자료구조가 어떤 element '앞, 뒤에' 어떤 element가 오는지에 초점이 맞춰저 있었다면, tree는 어떤 element가 어떤 element의 '부모인지 자식인지'에 초점이 맞춰져 있다고 이해하였다. Tree의 모든 element들은 (unique) parent를 가지고, 0개 이상의 children을 갖는다. 이 때, hierarchy.. 2023. 9. 16.
[DB] Data Models Database의 구조를 표현하는 데 사용되는 개념 집합. (참조 원문: A data model is a collection of concepts for describing data) data model은 다음 세 가지로 분류된다. 1. 개념적 데이터 모델(high-level data model) 2. 물리적 데이터 모델(low-level data model) 3. 구현 데이터 모델(representational data model). 1. 개념적 데이터 모델(high-level data model) DB 사용자가 이해하는 데이터베이스 구조이다. High-level이라는 표현처럼, 실제 사람이 데이터를 받아들이는 방식에 가깝게 데이터베이스 구조를 설명한다. 예를 들어 miniworld에서 우리가 저장해야.. 2023. 9. 16.
[네트워크] Network Structure 네트워크의 구성요소는 크게 다음 세 가지로 나눌 수 있다. 1. Network Edge client, server. 이들을 묶어 'host'라고 한다. 컴퓨터, 스마트폰, 서버 등 network의 끝단에 있는 device를 end system이라고 하는데, end system과 network edge은 비슷하지만 다소 차이가 있는 개념이다. end system이 network edge에 포함되는 개념이고, 이에 더하여 이들을 네트워크에 연결하는 중간 기기나 기술들 - DSL, cable modem 등 - 까지 포함하는 개념이 network edge이다. 2. Access Network end system을 edge router에 연결하는 역할을 한다. 내가 공부하는 교재에는 이렇게 표현되어 있지는 않았지.. 2023. 9. 14.
[자료구조] Queue Queue는 FIFO(First-In First-out, 선입선출) 원칙에 따라 element를 insert/remove 하는 자료구조이다. stack이 패스트푸트점 컵 놓는 곳이라면, queue는 놀이동산이나 카페의 줄을 생각하면 될 것이다. 실제로 모 학교의 교내 카페 이름이 queue라고 하던데, 우리 학교가 아니라 확실한지는 모르지만 재미있는 작명이라 생각한다. Queue는 다음 연산을 수행할 수 있어야 한다. Enqueue(e) : element를 queue의 맨 끝에 삽입. Dequeue(): 맨 앞의 element를 반환하고 제거. First(): 맨 앞의 element를 제거하지 않고 참조. Size()/isEmpty() : stack의 그것과 동일. 사실 stack과 마찬가지로, 코딩을 .. 2023. 9. 13.