Notice
Recent Posts
Recent Comments
Link
250x250
반응형
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- 자격증
- go
- 보안 분석
- GraphDB
- 그래프 데이터베이스
- cypher
- 공부
- 위협 탐지
- 정보보안기사
- 해킹
- Database
- IT보안
- 랜섬웨어
- 정보보안
- 프로그래밍
- 데이터모델링
- 사이버 보안
- Neo4j
- security
- 시험
- 보안솔루션
- Golang
- 그래프데이터베이스
- 정리
- concurrency
- 보안
- neo4j성능
- 사이버보안
- graph
- SQLD
Archives
- Today
- Total
Jamie the programmer
Neo4j Cypher, 이렇게 쓰면 진짜 프로다: 컨벤션 가이드 본문
Contents
접기
반응형

Neo4j의 Cypher 쿼리 언어를 사용할 때 권장되는 컨벤션(Convention)은 코드의 가독성, 일관성, 유지보수성을 높이는 데 도움을 줍니다. 아래는 Cypher를 작성할 때 일반적으로 따르는 컨벤션들입니다.
1. 키워드(Keyword)
- Cypher의 키워드는 대문자로 작성합니다.
- 예:
MATCH,RETURN,WHERE,CREATE,MERGE,SET,DELETE,WITH,ORDER BY,LIMIT등. - 예시:
MATCH (p:Person)-[:ACTED_IN]->(m:Movie) RETURN p.name, m.title;
- 예:
2. 라벨(Labels)
- 라벨은 파스칼 케이스(PascalCase)로 작성합니다.
- 예:
Person,Movie,UserProfile,CustomerOrder. - 예시:
MATCH (p:Person {name: 'Tom Hanks'}) RETURN p;
- 예:
3. 관계 유형(Relationship Types)
- 관계 유형은 대문자 스네이크 케이스(UPPER_SNAKE_CASE)로 작성합니다.
- 예:
ACTED_IN,DIRECTED,IS_FRIEND_OF,HAS_REVIEWED. - 예시:
MATCH (p:Person)-[:ACTED_IN]->(m:Movie) RETURN p, m;
- 예:
4. 변수(Variables)
- 변수는 소문자 스네이크 케이스(lower_snake_case)로 작성합니다.
- 예:
p,movie,user_profile,customer_order. - 예시:
MATCH (p:Person)-[:ACTED_IN]->(m:Movie) RETURN p.name, m.title;
- 예:
5. 속성(Properties)
- 속성 이름은 소문자 스네이크 케이스(lower_snake_case)로 작성합니다.
- 예:
name,release_year,user_id,created_at. - 예시:
MATCH (p:Person {name: 'Tom Hanks'}) RETURN p.birth_year;
- 예:
6. 문자열(Strings)
- 문자열은 작은따옴표(
')를 사용합니다.- 예:
'Tom Hanks','Apollo 13'. - 예시:
MATCH (p:Person {name: 'Tom Hanks'}) RETURN p;
- 예:
7. 노드와 관계 표현
- 노드와 관계는 *괄호
()와 *대괄호[]로 명확히 구분합니다.- 노드:
(p:Person) - 관계:
[r:ACTED_IN]-> - 예시:
MATCH (p:Person)-[r:ACTED_IN]->(m:Movie) RETURN p, r, m;
- 노드:
8. 들여쓰기(Indentation)
- 쿼리의 가독성을 높이기 위해 적절히 들여쓰기를 사용합니다.
- 예시:
MATCH (p:Person)-[:ACTED_IN]->(m:Movie) WHERE m.release_year > 2000 RETURN p.name, m.title ORDER BY m.release_year DESC;
- 예시:
9. 쿼리 종료
- Cypher 쿼리는 세미콜론(
;)으로 끝냅니다.- 예시:
MATCH (p:Person) RETURN p;
- 예시:
10. 고유 식별자(Unique Identifiers)
- 고유 식별자는 소문자 스네이크 케이스(lower_snake_case)로 작성하며,
id와 같은 일반적인 이름 대신 도메인에 맞는 이름을 사용합니다.- 예:
person_id,movie_id,user_uuid. - 예시:
MATCH (p:Person {person_id: 123}) RETURN p;
- 예:
11. WITH 절
WITH절을 사용하여 쿼리를 단계적으로 나눌 때는 적절히 들여쓰기하고, 변수 이름을 명확히 지정합니다.- 예시:
MATCH (p:Person)-[:ACTED_IN]->(m:Movie) WITH p, COUNT(m) AS movie_count WHERE movie_count > 5 RETURN p.name, movie_count;
- 예시:
12. 함수(Functions)
- 함수는 소문자 스네이크 케이스(lower_snake_case)로 작성합니다.
- 예:
COUNT(),SUM(),toLower(),toString(). - 예시:
MATCH (p:Person) RETURN COUNT(p) AS total_people;
- 예:
13. 주석(Comments)
- 주석은
//를 사용하여 추가합니다.- 예시:
// 모든 사람을 찾고 이름을 반환합니다. MATCH (p:Person) RETURN p.name;
- 예시:
14. 패턴 매칭(Pattern Matching)
- 패턴 매칭 시 방향성을 명확히 표시합니다.
- 예:
()-[:ACTED_IN]->()또는()<-[:DIRECTED]-(). - 예시:
MATCH (p:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(d:Person) RETURN p, m, d;
- 예:
15. 데이터 타입(Data Types)
- 데이터 타입은 명확히 지정합니다.
- 예:
INTEGER,STRING,BOOLEAN,FLOAT,DATE. - 예시:
CREATE (p:Person {name: 'Tom Hanks', birth_year: 1956});
- 예:
16. 인덱스 및 제약 조건(Indexes and Constraints)
- 인덱스와 제약 조건은 명확히 정의하고, 이름은 소문자 스네이크 케이스(lower_snake_case)로 작성합니다.
- 예시:
CREATE INDEX person_name_index FOR (p:Person) ON (p.name); CREATE CONSTRAINT unique_person_id FOR (p:Person) REQUIRE p.person_id IS UNIQUE;
- 예시:
728x90
반응형
'programming > database' 카테고리의 다른 글
| Cypher 쿼리가 느리다고? PROFILE로 문제를 찾아라! (0) | 2025.02.25 |
|---|---|
| Fanout 문제, 이제는 제대로 알고 해결하자: Neo4j 성능 최적화 가이드 (0) | 2025.02.25 |
| 🛠️ Neo4j Cypher Workbench: 그래프 데이터베이스 쿼리 작성을 위한 최적의 도구 🚀 (0) | 2025.02.20 |
| 🚀 Neo4j Arrows.app: 그래프 데이터 모델링을 위한 최고의 온라인 도구 🌐 (2) | 2025.02.20 |
| Neo4j Graph DB - Enterprise vs Community: 기업의 데이터 전략을 위한 현명한 선택 (0) | 2025.02.20 |