맨위로가기

노드 (컴퓨터 과학)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

노드는 컴퓨터 과학에서 트리 구조를 이루는 구성 요소로, 자료 구조 내 정보를 표현한다. 노드는 값, 조건, 또는 다른 자료 구조를 포함하며, 부모 노드에 의해 표현된다. 트리의 최상위 노드는 루트 노드이며, 노드의 깊이와 높이는 각각 루트 노드와의 거리와 리프 노드까지의 경로로 정의된다. 노드는 웹 페이지 구조를 표현하는 데 사용되는 마크업 언어, 특히 HTML, XML, CSS 등에서 활용되며, 다양한 노드 유형이 존재한다.

더 읽어볼만한 페이지

  • 그래프 자료 구조 - 그래프 (자료 구조)
    그래프는 정점과 간선으로 구성되어 정점 간의 관계를 표현하는 비선형 자료 구조로, 방향, 무방향, 가중치 그래프 등 다양한 형태로 존재하며, 인접 리스트, 인접 행렬 등으로 표현되고, DFS, BFS, 다익스트라, 플로이드-워셜 알고리즘 등을 통해 탐색 및 문제 해결에 활용된다.
  • 그래프 자료 구조 - 장면 그래프
    장면 그래프는 그래픽 편집 도구, 게임, 3D 응용 프로그램 등에서 장면을 구성하고 관리하는 데 사용되는 노드 기반의 계층적 자료 구조로, 객체 간 관계를 표현하고 효율적인 렌더링, 충돌 감지, 메모리 관리를 가능하게 하며, PHIGS, OpenGL Performer, X3D 등의 표준이 있다.
노드 (컴퓨터 과학)

2. 노드와 트리

크기 9와 높이 3의 단순 이진 트리. 루트 노드의 값은 2이다. 위의 트리는 정렬되어 있지 않고 균형이 잡혀져 있지 않다.


노드는 트리 구조로 배열된다. 노드는 데이터 구조에 포함된 정보를 나타내며, 값이나 조건을 포함하거나 다른 독립적인 데이터 구조로 사용될 수 있다. 노드는 단일 부모 노드로 표현된다. 트리 구조의 가장 높은 지점을 루트 노드라고 하며, 부모 노드가 없지만 트리 아래에 있는 모든 노드의 부모 또는 조상 역할을 한다. 노드의 높이는 해당 노드에서 가장 먼 리프 노드까지의 경로에 있는 간선(엣지)의 총 개수로 결정되며, 트리의 높이는 루트 노드의 높이와 같다.[1] 노드 깊이는 해당 노드와 루트 노드 사이의 거리로 결정된다. 루트 노드는 깊이가 0이라고 한다.[2] 데이터는 이러한 네트워크 경로를 따라 발견될 수 있다.[3] IP 주소는 네트워크에서 위치를 정의하기 위해 이러한 종류의 노드 시스템을 사용한다.

2. 1. 노드 (Node)



노드는 트리 구조로 정렬되기도 한다. 노드는 하나의 자료 구조에 포함된 정보를 표현한다. 이 노드들은 값이나 조건을 포함할 수 있으며 다른 독립된 자료 구조의 역할을 할 가능성이 있다. 노드는 하나의 부모 노드에 의해 표현된다. 트리 구조의 가장 높은 지점은 루트 노드(root node)로 부르며 이 노드에는 부모 노드가 없으나 해당 트리 아래에 속한 모든 노드의 부모 노드나 조부모 노드의 역할을 맡는다. 노드의 높이는 해당 노드에서 가장 거리가 먼 리프 노드(leaf node)까지의 경로 상의 간선의 전체 수에 의해 결정되며 트리의 높이는 루트 노드의 높이와 동등하다.[5] 노드의 깊이(depth)는 특정 노드와 루트 노드 간의 거리에 의해 결정된다. 루트 노드는 0의 깊이를 갖는다고 말할 수 있다.[6] 데이터는 이러한 네트워크 경로를 따라 탐지할 수 있다.[7] 모든 IP 주소는 이러한 종류의 시스템의 노드를 사용하여 네트워크 내의 위치를 정의한다.

2. 2. 트리 (Tree)



노드는 트리 구조로 정렬되기도 한다. 노드는 하나의 자료 구조에 포함된 정보를 표현한다. 이 노드들은 값이나 조건을 포함할 수 있으며 다른 독립된 자료 구조의 역할을 할 가능성이 있다. 노드는 하나의 부모 노드에 의해 표현된다. 트리 구조의 가장 높은 지점은 루트 노드(root node)로 부르며 이 노드에는 부모 노드가 없으나 해당 트리 아래에 속한 모든 노드의 부모 노드나 조부모 노드의 역할을 맡는다. 노드의 높이는 해당 노드에서 가장 거리가 먼 리프 노드(leaf node)까지의 경로 상의 간선의 전체 수에 의해 결정되며 트리의 높이는 루트 노드의 높이와 동등하다.[5] 노드의 깊이(depth)는 특정 노드와 루트 노드 간의 거리에 의해 결정된다. 루트 노드는 0의 깊이를 갖는다고 말할 수 있다.[6] 데이터는 이러한 네트워크 경로를 따라 탐지할 수 있다.[7] 모든 IP 주소는 이러한 종류의 시스템의 노드를 사용하여 네트워크 내의 위치를 정의한다.

2. 3. 관련 용어


  • '''자식 노드''': 다른 노드에서 확장된 노드이다. 예를 들어, 인터넷 접속이 가능한 컴퓨터는 인터넷을 나타내는 노드의 자식 노드로 간주될 수 있다. 반대 관계는 '''부모 노드'''이다. 노드 ''C''가 노드 ''A''의 자식 노드이면, ''A''는 ''C''의 부모 노드이다.
  • '''차수''': 노드의 차수는 해당 노드의 자식 노드 수이다.
  • '''깊이''': 노드 ''A''의 깊이는 ''A''에서 루트 노드까지의 경로 길이이다. 루트 노드는 깊이가 0이라고 한다.
  • '''간선''': 노드 간의 연결이다.
  • '''숲''': 트리들의 집합이다.
  • '''높이''': 노드 ''A''의 높이는 자식을 거쳐 리프 노드까지의 가장 긴 경로 길이이다.
  • '''내부 노드''': 하나 이상의 자식을 가진 노드이다.
  • '''리프 노드''': 자식이 없는 노드이다.
  • '''루트 노드''': 나머지 트리 노드와 구별되는 노드이다. 일반적으로 트리에서 가장 높은 노드로 묘사된다.
  • '''형제 노드''': 동일한 부모 노드에 연결된 노드이다.

3. 마크업 언어와 트리

웹 개발에서 노드 트리는 HTML, XML, CSS 등 마크업 언어를 사용하여 웹 페이지의 구조를 표현하는 데 사용된다. XML은 컴퓨터 간의 정보 전달에 사용되는 통신 프로토콜을 만드는 데 사용되며, XHTML과 같은 웹 마크업 언어 개발의 기반이 된다.[4] HTMLCSS는 웹사이트 텍스트와 디자인을 개발하는 데 사용되며, DOM은 XML, HTML 및 XHTML이 언어와 표현을 제공하는 동안 번역기 역할을 한다.[4]

3. 1. 노드 유형 (Node Type)

트리 내의 서로 다른 노드 유형은 특정 인터페이스로 표현된다. 즉, 노드 유형은 다른 노드와 통신하는 방식으로 정의된다. 각 노드는 형제 또는 리프와 같은 노드 유형을 지정하는 노드 유형 속성을 가진다.

예를 들어, 노드 유형 속성이 노드의 상수 속성인 경우 이 속성은 노드의 유형을 지정한다. 따라서 노드 유형 속성이 상수 노드 ELEMENT_NODE인 경우, 이 노드 객체가 객체 Element임을 알 수 있다. 이 객체는 Element 인터페이스를 사용하여 해당 노드의 모든 메서드와 속성을 정의한다.

월드 와이드 웹 컨소시엄(W3C)에서 정의한 다양한 노드 유형 및 설명은 다음과 같다.

  • '''Document''': 전체 문서(DOM 트리의 루트 노드)를 나타낸다.
  • '''DocumentFragment''': 문서의 일부를 포함할 수 있는 "경량" Document 객체를 나타낸다.
  • '''DocumentType''': 문서에 대해 정의된 엔터티에 대한 인터페이스를 제공한다.
  • '''ProcessingInstruction''': 처리 지침을 나타낸다.
  • '''EntityReference''': 엔터티 참조를 나타낸다.
  • '''Element''': 요소를 나타낸다.
  • '''Attr''': 속성을 나타낸다.
  • '''Text''': 요소 또는 속성의 텍스트 내용을 나타낸다.
  • '''CDATASection''': 문서의 CDATA 섹션(파서에 의해 구문 분석되지 않는 텍스트)을 나타낸다.
  • '''Comment''': 주석을 나타낸다.
  • '''Entity''': 엔터티를 나타낸다.
  • '''Notation''': DTD에 선언된 표기를 나타낸다.


NodeType명명된 상수
1ELEMENT_NODE
2ATTRIBUTE_NODE
3TEXT_NODE
4CDATA_SECTION_NODE
5ENTITY_REFERENCE_NODE
6ENTITY_NODE
7PROCESSING_INSTRUCTION_NODE
8COMMENT_NODE
9DOCUMENT_NODE
10DOCUMENT_TYPE_NODE
11DOCUMENT_FRAGMENT_NODE
12NOTATION_NODE


3. 2. 노드 객체 (Node Object)

DOM 트리 내의 객체는 해당 객체의 메서드를 사용하여 주소를 지정하고 조작할 수 있다. DOM의 공개 인터페이스는 API에 지정되어 있다.[1] 문서 객체 모델의 역사는 1990년대 후반 넷스케이프 내비게이터와 마이크로소프트 인터넷 익스플로러 간의 "브라우저 전쟁"의 역사, 그리고 자바스크립트 및 JScript의 역사와 밀접하게 관련되어 있다.[1] 이들은 웹 브라우저레이아웃 엔진에서 광범위하게 구현된 최초의 스크립팅 언어이다.[1]

참조

[1] 웹사이트 tree (data structure) http://xlinux.nist.g[...] National Institute of Standards and Technology
[2] 서적 Barron's AP Computer Science A https://archive.org/[...] Barron's
[3] 웹사이트 Simply Scheme: Introducing Computer Science ch 18: Trees http://www.eecs.berk[...] College Of Engineering, University of California, Berkeley
[4] 웹사이트 XML DOM Introduction https://www.w3school[...] W3Schools 2018-04-07
[5] 웹인용 tree (data structure) http://xlinux.nist.g[...] 미국 국립표준기술연구소
[6] 서적 Barron's AP Computer Science A Barron's
[7] 웹인용 Simply Scheme: Introducing Computer Science ch 18: Trees http://www.eecs.berk[...] College Of Engineering, 캘리포니아 대학교 버클리



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com