💡코드 없는 알고리즘과 데이터 구조을 바탕으로 작성된 글입니다.

그래프

사물을 연결하는 기본 개념. 노드 사이의 연결.
컴퓨터 과학과 수학의 관계를 확인할 수 있는 중간 영역의 개념으로 수학에서 파생된 그래프 이론은 컴퓨터 과학의 많은 응용 분야에 적용되고 있다.

💡 컴퓨터(객체) 사이의 관계를 시각적으로 확인할 수 있는 주요 수단.

그래프 VS 트리

트리 : 매우 구조화된 자료구조
그래프 : 실제 객체간의 연결 관계를 더 잘 표현

💡 트리는 기본적으로 순환이나 순환적인 상호 작용이 없는 그래프와 같기 때문에 일종의 최소화된 그래프로 여겨지기도 한다.

그래프는 노드 사이의 관계를 볼 수 있다는 점에서 편리하여 탐색 기반 알고리즘에 많이 사용된다.

무향 그래프와 유향 그래프

에지로 연결된 노드들은 서로 인접한 상태이며, 에지는 노드 사이에 방향성을 가질 수 있다.

무향 그래프

에지의 방향성이 없는 그래프.

방향성을 가지지 않기 때문에 노드 양쪽으로 에지를 타고 이동할 수 있다.

유향 그래프

에지의 방향성이 있는 그래프.

각 노드를 연결하는 에지는 각각 하나의 방향성을 가지고 화살표가 있어 방향성을 쉽게 식별할 수 있다.

이러한 에지를 유향 에지 또는 화살표라고 하며, 유향 그래프는 다이그래프로 부르기도 한다.

경로🔜 : 노드 하나에서 다른 노드로 이동하며 에지를 따라가는 경로
루프🔁 : 에지가 노드 하나에서 시작하여 다시 해당 노드로 이어지는 형태, 첫 노드와 마지막 노드가 일치한다.

가중치 그래프

가중치 : 에지 각각에 어떤 의미가 부여된 값.

소셜 네트워크 서비스

그래프는 소셜 네트워크 서비스로 설계된 프로그램에서 중요한 역할을 한다.

SNS상에서 회원의 프로필을 하나의 노드라고 생각했을 때

서로의 친구가 된 관계성을 그래프를 변형하여 사용할 수 있다.

그래프 데이터베이스

RDBMS는 데이터베이스를 확장할 때, 연결된 테이블 사이에 일부 연산은 컴퓨터의 많은 자원을 필요로 하며 시스템에 부하를 가한다.

이러한 문제점을 그래프 데이터베이스가 개선할 수 있다.

RDBMS의 데이터 검색은 Join을 사용하는데 테이블 사이의 조인이 너무 많을 경우 테이블을 거쳐 데이터에 접근하는 과정이 반복되므로 검색하는 속도에 문제가 발생한다.

그래프 데이터베이스는 데이터 사이의 관계가 복잡하지만 테이블이 아닌 데이터 중심으로 직접 연결되는 구성이므로 데이터베이스의 검색 속도가 상대적으로 빠르다.

🤔 그래프 데이터베이스는 데이터 사이의 관계가 복잡하다는 건 치명적인 단점이 아닌가?
☝️ 치명적인 단점은 아니나, 데이터 사이의 관계가 복잡해지면 쿼리의 성능 저하 문제가 발생한다. 또한, 그래프 데이터베이스는 설계하는 것이 복잡하고 어렵다.

profile
🧑‍💻백엔드 개발자, 조금씩 꾸준하게

0개의 댓글

Powered by GraphCDN, the GraphQL CDN