21_빅데이터_정보철학_AI프로그램만들기(7)_(5-3)
Shared on October 16, 2026
안녕하세요. 빅데이터 정보처라 AI 프로그램 만들기 7번째 시간입니다. 지난 AI 프로그램 만들기에서는 네오포제이가 왜 필요한지 그리고 그래프 데이터베이스의 기본 개념, 온톨로지와 지식 그래프를 살펴보았습니다. 오늘은 네오포제이를 이루는 4가지 구성요소를 실제의 사이퍼 커리어와 함께 좀 더 깊이 살펴보겠습니다. 이번 모듈의 목표는 네오포제이의 4가지 구성요소를 설명할 수 있는 것입니다. 오늘은 먼저 왜 그래프 디비가 필요한지를 다시 복습하고,
노드, 관계, 속성, 레이블이라는 4가지 구성요소를 사이퍼 커리어와 함께 자세히 살펴본 뒤, SQL, 프로로그, 사이퍼를 비교하고 실습 사례와 그래프 렉, 그리고 네오포제이 심화 알고리즘까지 살펴보겠습니다. 먼저 왜 그래프 DB인지 복습해보겠습니다. 관계형 DB의 한계를 복습하면 친구의 친구의 친구를 탐색하려면 SQL에서는 복잡한 조인을 반복해야 하고 성능이 급격히 저하됩니다. 관계가 핵심인 데이터로는 SNS, 추천, 사기탐지, 지식그래프, 의약품 연구가 있습니다. 즉 관계형 DB는 이러한 영역에서 한계를 가집니다. 네오포제이 그래프 DB의 강점을 보면 관계를 직접 저장하기 때문에 탐색속도가 일정하게 유지됩니다. 직관적인 데이터 모델로서 현실과 유사한 표현이기 때문에 개발자가 이해하기 쉽습니다.
사이퍼 언어는 패턴을 직접 표현할 수 있어서 SQL보다 간결합니다. 이제 Neo4j의 4가지 구성 요소를 개요로 살펴보겠습니다. 첫째, 노드입니다. 개체, entity로서 그래프의 핵심 요소입니다. 원형으로 표현되고 레이블로 분류되며 속성, 프로퍼티를 가집니다. 사람, 회사, 제품 등이 그 예입니다. 둘째, 관계, relationship입니다. 엣지로서 노드 간의 연결입니다. 반드시 방향성을 가지고 유형, 타입이 필수이며 속성을 가질 수 있습니다. nodes, works, at 등이 그 예입니다. 셋째, 속성, property입니다. 노드와 관계의 추가 정보로서 key, value, 쌍입니다. 이름은 김철수, 나이는 30, 근무 기간은 3년과 같은 형태입니다.
넷째, label입니다. 노드의 분류나 유형입니다. 하나의 노드가 여러 label을 가질 수 있습니다. 예를 들어 person, employee, manager을 동시에 가질 수 있습니다. 이제 노드를 좀 더 자세히 살펴보겠습니다. 노드는 그래프의 핵심 개체로서 원형으로 표현됩니다. 노드 생성, 즉, create는 createPersonNode, name 김철수, age 30, city 서울과 같이 작성합니다. 이는 labelPerson을 가지고 3개의 속성을 가진 노드를 생성하는 것입니다. label 조회는 matchPersonNodeP, returnP.name과 같이 작성하면 모든 person 노드의 이름을 조회할 수 있습니다. id로 조회할 때는 matchN, whereIdN이 5인 경우 returnN과 같이 내부 id로 노드를 직접 조회할 수 있습니다.
속성 조건조에는 match person node p where p.age가 25보다 큰 경우 return p.name p.age와 같이 25세 초과인 person을 탐색할 수 있습니다. node 업데이트는 match person node p name 김철수 set p.age는 31과 같이 속성 값을 변경할 수 있습니다. 이제 관계, 릴레이션십을 좀 더 자세히 살펴보겠습니다. 관계는 node 간의 연결로서 방향성과 유형이 필수이며 속성을 가질 수 있습니다. 관계 생성은 김철수라는 퍼슨과 삼성이라는 컴퍼니를 찾은 뒤 Create P에서 C로 향하는 WorksAt 관계, Synth2020과 같이 작성하면 WorksAt 관계와 Synth 속성을 만들 수 있습니다.
양방향 조회는 Match P와 Friend Person 사이의 노우스 관계, Return F.name과 같이 화살표 없이 대시만 사용하여 방향을 무시할 수 있습니다. 관계 속성 조회는 Match P에서 C로 향하는 WorksAt 관계 R, Return P.name, R.Synth, C.name과 같이 관계의 속성인 R.Synth를 출력할 수 있습니다. N단계 탐색은 매치 네임 김철수인 P에서 프렌드 1단계부터 3단계까지 이어지는 F, return F.name과 같이 1단계에서 3단계까지의 친구를 모두 탐색할 수 있습니다. 관계 삭제는 매치 P에서 C로 향하는 workset 관계 R, delete R과 같이 관계만 삭제하고 노드는 유지할 수 있습니다.
이제 SQL, 프로로그, 사이퍼를 비교해보겠습니다. 데이터 모델 측면에서 SQL은 테이블, 행, 열이고 프로로그는 사실과 규칙이며 사이퍼는 노드, 관계, 속성입니다. 지리 방식 측면에서 SQL은 Select from where이고 프로로그는 단일화와 역추적이며 사이퍼는 Match, where, return입니다. 관계 탐색 측면에서 SQL은 복잡한 조인으로 성능이 저하되지만 프로로그는 제기 규칙 정의로 처리하고 사이퍼는 별표 1에서 n과 같은 표기로 간단하게 처리합니다. 추론 능력 측면에서 SQL은 제한적이지만 프로로그는 역추적을 통해 강력하며 사이퍼는 경로 탐색에 강합니다. 적합한 용도 측면에서 SQL은 정형, 대용량 데이터, 프로로그는 지식 추론, 사이퍼는 복잡한 관계 탐색입니다.
대표 DB로는 SQL은 MySQL, PostgreSQL, 프로로그는 Sui-Prologue, Cypher는 Neo4j입니다. 이제 Cypher의 핵심 명령어를 정리해보겠습니다. Create는 Node와 관계를 생성하며 CreatePersonNode, Name, 김철수와 같이 사용합니다. Match는 Node와 관계를 탐색하며 MatchPersonNodeP, ReturnP와 같이 사용합니다. Wear는 조건 필터링이며 WearP.age가 30보다 큰 경우와 같이 사용합니다. return은 결과를 반환하며 return p.name p.age와 같이 사용합니다. set은 속성을 업데이트하며 set p.city는 부산과 같이 사용합니다. delete는 노드와 관계를 삭제하며 match name x in p, detach delete p와 같이 사용합니다.
merge는 존재하면 조회하고 없으면 생성하며 merge person node name 김철수와 같이 사용합니다. with는 중간 결과를 파이프로 전달하며 매치 점점점 with p limit 10 return p 와 같이 사용합니다. 이제 인정 네트워크 실습을 살펴보겠습니다. 직원과 회사 노드와 관계를 생성합니다. 김철수는 person이면서 employee 역할은 개발자입니다. 삼성은 company 분야는 it입니다. 이영희는 person이면서 employee 역할은 기획자입니다. 김철수는 2020년부터 삼성에서 works at 관계로 근무하고 이영희는 2022년부터 삼성에서 works at 관계로 근무하며 김철수는 이영희를 5년간 nose 관계로 알고 있습니다.
같은 회사의 동료를 찾는 쿼리는 매치 P에서 C로 향하는 works-at 관계와 컬리그에서 C로 향하는 works-at 관계 where P.name이 김철수이고 and P가 컬리그와 다른 경우 return colleague.name, C.name입니다 연결된 모든 관계를 보는 쿼리는 매치 네임 김철수인 김퍼슨에서 R 관계로 X로 향하는 패턴, return type R, X입니다 IT 회사 직업 목록을 보는 쿼리는 매치 P에서 섹터 IT인 company C로 향하는 works-at 관계 return p.name p.roll c.name입니다. 이제 온톨로지 상속 실습을 살펴보겠습니다. 온톨로지 상속이란 is-a 관계로 클래스 계층을 구현하는 것입니다.
동물 분류 온톨로지를 보면 동물은 클래스이고 포유류도 클래스이고 개도 클래스이며 버디는 인디비주얼로서 품종은 골든 니트리버입니다. 포유류는 동물의 is-a 관계로 연결되고 개는 포유류의 is-a 관계로 연결되며 버디는 개의 인스턴스 오브 관계로 연결됩니다. 버디는 무슨 동물인가를 묻는 쿼리는 match name bird in individual p 에서 instance of 관계로 c에 연결되고 c에서 is a 계층을 따라 a에 연결되는 패턴 return p.name collect a.name as ancestors입니다. 이는 is a 계층을 타고 올라가는 것입니다. 모든 동물 개체를 찾는 쿼리는 instance of와 is a 별표를 통해 동물이라는 클래스에 속하는 모든 개체를 찾습니다.
포유류의 직계자손을 찾는 쿼리는 match c에서 name 포유류인 클래스로 향하는 is a 관계 return c.name으로 포유류의 직접적인 하위 클래스를 반환합니다. 이는 이전 강의에서 살펴본 온톨로지 상속 예시를 실제 사이퍼 쿼리로 구현한 것입니다. 이제 그래프랙을 자세히 살펴보겠습니다. 그래프랙의 구조는 그래프와 Retrieval Augmented Generation입니다. 다섯 단계로 이루어집니다. 첫째, 질문 입력입니다. 둘째, 지식 그래프에서 관련 정보를 검색합니다. 셋째, 검색된 그래프 컨텍스트와 질문을 합칩니다. 넷째, LLM에 전달합니다. 다섯째, 정확하고 추론 가능한 답변을 생성합니다. 이를 통해 LLM의 환각이 감소하고 최신 정보를 반영할 수 있으며 추론 경로를 추적할 수 있습니다.
그래프랙과 기본 렉을 비교해보겠습니다. 기본 렉은 텍스트의 벡터 검색으로 의미적 유사도에 기반하지만 관계 정보가 부족합니다. 그래프랙은 그래프 구조를 탐색하여 명시적인 관계를 활용하고 다단계 추론이 가능합니다. 예를 들어 A의 친구의 상사는 누구인가와 같은 질문은 그래프랙만 답할 수 있습니다. 이제 뉴로심볼릭 AI와 네오포제이의 관계를 살펴보겠습니다. 뉴로, 즉 신경망은 패턴 인식과 학습에 강하고 비정형 데이터를 처리하지만 블랙박스로서 설명이 어렵습니다. 심볼릭은 명시적인 추론과 규칙기반 처리에 강하고 설명이 가능하지만 학습능력이 약합니다. 이 두 가지를 통합한 것이 뉴로심볼릭 AI입니다.
네오포제이의 역할을 보면 심볼릭 AI 구현에서 지식그래프는 명시적인 지식이고 사이퍼는 추론을 표현하며 온톨로지는 지식의 구조입니다. LLM과 네오포제이를 결합하면 LLM은 언어 이해, 즉 신경망을 담당하고, 네오포제이는 지식주론, 즉 심볼릭을 담당합니다. 그래프랙은 이러한 뉴로심볼릭 AI의 실질적인 구현이라고 할 수 있습니다. 이제 네오포제이의 4가지 구성요소를 시각화한 예시 그래프를 함께 살펴보겠습니다. 화면에는 4개의 노드와 이들을 연결하는 화살표들이 그려져 있습니다. 왼쪽에는 주황색의 김철수 노드가 있고, 레이블은 퍼슨과 인플로입니다. 그 위쪽에는 초록색의 삼성 노드가 있고, 레이블은 컴퍼니이며, 속성으로 섹터는 IT입니다.
오른쪽 아래에는 또 다른 주황색의 E0이 노드가 있고, 레이블은 마찬가지로 퍼슨과 인플로입니다. 그리고 가운데 아래쪽에는 보라색의 서울 노드가 있고, 레이블은 시티입니다. 이 노드들 사이에는 노란색의 화살표로 관계가 그려져 있습니다. 김철수에서 삼성으로 향하는 화살표에는 Works at since 2020이라는 라벨이 붙어있고, 이영희에서 삼성으로 향하는 화살표에는 'Works at since 2022'라는 라벨이 붙어있습니다. 김철수에서 이영희로 향하는 화살표에는 'Nodes years 5'라는 라벨이 붙어있고 김철수에서 서울로 향하는 화살표에는 'Lips in'이라는 라벨이 붙어있습니다. 이 그림 하나가 오늘 살펴본 네 가지 구성요소, 즉, 노드, 관계, 속성, 레이블을 모두 보여줍니다.
원으로 그려진 것이 노드이고 노란색 화살표가 관계이며 중과로 안의 킥밥 쌍이 속성이고 콜론으로 시작하는 person, employee, company, city가 레이블입니다. 이제 Neo4j 실습 환경을 살펴보겠습니다. 첫째, Neo4j Sandbox입니다. sandbox.neo4j.com에서 별도의 설치 없이 브라우저에서 즉시 사용할 수 있습니다. 영화, SNS 등 미리 구성된 데이터셋이 제공되어 가장 빠르게 시작할 수 있습니다. 둘째, Neo4j Aura 무료 플랜입니다. Aura.neo4j.io의 클라우드 무료 플랜으로 나만의 그래프 DB를 구축할 수 있고, 영구적으로 데이터를 보존할 수 있어서 실제 프로젝트 개발에 적합합니다.
셋째, Neo4j 데스크톱입니다 Neo4j.com 슬래시 다운로드에서 로컬 컴퓨터에 설치할 수 있습니다 Neo4j 브라우저는 시각적으로 그래프를 탐색할 수 있고 VLUM은 비개발자에게 친화적인 시각과 도구입니다 이제 Neo4j 실습 단계별 가이드를 살펴보겠습니다 1단계는 Neo4j 환경에 접속하는 것으로 sandbox.neo4j.com이나 aura.neo4j.io 즉 무료 환경을 사용합니다 2단계는 노드를 생성하는 것으로 Create Person Node Name 이름과 같이 작성합니다 3단계는 관계를 생성하는 것으로 Create A에서 B로 향하는 타입 관계와 같이 작성합니다 4단계는 기본 조회로
Match Person Node N, Return N과 같이 작성합니다 5단계는 조건 조회로 Match N, Where N.A가 30보다 큰 경우 Return N과 같이 작성합니다 6단계는 시각화로 Neo4j 브라우저에서 그래프를 탐색합니다 7단계는 심화로 온폴로지나 추천 시스템을 구현합니다 이 7단계는 오늘 살펴본 노드 생성에서부터 온톨로지 상속까지의 흐름을 실제로 실습할 때의 순서로 정리한 것입니다. 이제 네오포제이와 정보철학의 연결을 살펴보겠습니다. 네오포제이는 기호, 즉 심볼들 간의 관계를 명시적으로 표현함으로써 심볼 그라운딩을 지원합니다. 지식그래프는 퍼스의 기호 삼각형을 기계가 처리할 수 있는 형태로 구현한 것입니다.
온톨로지는 개념들의 계층과 관계를 통해 세상의 구조를 코드로 표현한 것입니다. 그래프 액은 LLM 즉 신경망과 지식 그래프 즉 심볼릭을 결합한 것으로 뉴로심볼릭 AI의 실용적인 구현입니다 구성적 정보철학의 관점에서 보면 정보는 관계의 망이며 네오프제이가 바로 이 관계를 저장하고 탐색하는 도구입니다 이는 4강 4부에서 살펴본 퍼스의 기호 삼각형, 표현체, 대상체, 해석체가 노드와 관계라는 형태로 데이터베이스 안에 구현된다는 것을 의미합니다 이제 네오프제의 심화 알고리즘을 살펴보겠습니다 첫째, 최단 경로, shortest pass입니다 매치 네임 김철수인 person A와 네임 최수진인 person B
P는 A와 B 사이의 노즈 관계의 최단 경로, return P와 같이 작성하면 두 사람 사이의 최단 연결 경로를 찾을 수 있습니다 둘째, 중심성, centrality입니다 페이지랭크는 가장 많이 연결된 중요한 노드를 찾고 이트 위니스는 정보 흐름의 핵심 중계자를 탐색합니다 즉, 인플루언서를 발굴하거나 핵심 허브를 탐색하는 데 사용됩니다. 셋째, 커뮤니티 탐지입니다. 루벵 알고리즘은 자연스러운 그룹을 발견하고, 레이블 프로퍼게이션은 빠른 클러스터링을 수행합니다. 즉, 숨겨진 집단을 탐색하거나 사기 링을 발견하거나 관심사별로 그룹화하는 데 사용됩니다. 이제 네오포제이의 네 가지 구성 요소를 핵심으로 정리해보겠습니다.
첫째, 노드입니다. 개체, 엔티티로서 원형으로 표현되고 레이블로 분류되며 속성을 가집니다. Create Label Node Key Value와 같이 생성합니다. 둘째, 관계 Relationship입니다. 노드 간의 연결로서 방향성과 유형, 타입이 필수이며 속성을 가질 수 있습니다. 타입 관계와 프로퍼티를 가진 화살표와 같이 표현합니다. 셋째, 속성 Properties입니다. Key Value 쌍으로서 노드와 관계 모두에 가능하며 문자열, 숫자, 날짜를 담을 수 있습니다. Name 김철수 age 30과 같은 형태입니다. 넷째, 레이블입니다. 노드의 분류나 유형으로서 하나의 노드가 여러 레이블을 동시에 가질 수 있습니다.
콜론 퍼슨, 콜론 임플로이를 동시에 가질 수 있으며 매치로 필터링합니다. 마지막으로 네오프제이로 만드는 AI를 마무리해보겠습니다. 흐름은 네오프제이에서 지식그래프로, 지식그래프에서 그래프렉으로, 그래프렉에서 뉴로심볼릭 AI로 이어집니다. 네오프제이의 4가지 구성요소는 노드, 관계, 속성, 레이블로 세상의 모든 관계를 표현하며 사이퍼로 직관적인 쿼리가 가능합니다. 지식 그래프 구축은 개체, 즉 노드와 관계, 즉 엣지의 그물망이며 온톨로지로 개념의 계층을 구조화합니다. 그래프랙과 뉴로심볼릭 AI는 LLM의 언어 이해와 네오포제이의 지식추론을 결합하여 더 정확하고 설명가능한 AI를 구현합니다.
이번 모듈의 목표를 달성하기 위한 질문을 스스로 해봅시다. 네오포제이의 네 가지 구성 요소를 설명하시오. 그리고 뉴로심볼릭 AI를 설명하시오. 오늘은 노드, 관계, 속성, 레이블이라는 네 가지 구성 요소를 실제 사이퍼 코리와 함께 살펴보고 SQL과 프로로그와 사이퍼의 비교, 온톨로지 상속 실습, 그래프랙, 그리고 최단 경로와 중심성, 커뮤니티 탐지와 같은 심화 알고리즘까지 살펴보았습니다. 감사합니다.