에코맵
에코맵이란
에코맵은 중심에 한 사람 또는 가족을 놓고, 그 주변에 확대 가족, 학교, 교회, 클리닉, 직장, 지원 단체 등 외부 시스템의 네트워크를 배열하는 단일 페이지 도식입니다. 각 연결선은 관계의 질(강함, 취약함, 스트레스 유발)과 방향(누가 주고 누가 받는지)을 기록합니다. 사회복지사, 학교 상담사, 케이스 매니저, 지역사회 건강 간호사들은 에코맵을 사용하여 클라이언트가 어디에 기반이 있고 어디서 안전망이 취약한지를 한눈에 파악합니다.
Schematex는 Hartman (1978) 에코맵 모델 — 표기법을 도입한 원본 Social Casework 논문 — 을 따르며, 현대 임상 사회복지 실천의 관례로 확장되었습니다. 배경은 Wikipedia: Ecomap을 참조하십시오. 이 페이지는 파서가 현재 허용하는 내용을 문서화합니다.
1. 첫 번째 에코맵
가장 작고 유용한 에코맵: 하나의 중심과 세 개의 외부 시스템.
네 가지 규칙으로 사용의 80%를 다룰 수 있습니다.
ecomap키워드로 시작하고, 선택적으로 따옴표로 묶인 제목을 추가합니다.- 중심을 독립된 줄에 선언합니다:
center: id [label: "…"]. 다이어그램당 정확히 하나의 중심. - 각 외부 시스템을 독립된 줄에 선언합니다:
id [label: "…", category: …]. - 선언된 두 ID를 연결 연산자로 연결합니다 —
===(강함),---(보통),<->(상호), 등. 전체 표는 §3을 참조하십시오. 후미의[label: "…"]는 엣지 레이블을 추가합니다.
주석은
#,//, 또는 Mermaid 스타일%%로 시작하는 독립된 줄에 있어야 합니다. 인라인 후미 주석은 파서를 중단시킵니다.
2. 중심과 외부 시스템
모든 에코맵에는 하나의 중심과 임의 수의 외부 시스템이 있습니다. 두 가지 모두 동일한 id [attrs] 문법을 사용합니다. 유일한 차이는 center: 접두사입니다.
ID 규칙. [a-zA-Z][a-zA-Z0-9_-]*와 일치해야 합니다. ID는 대소문자를 구분하지 않습니다. 원본 토큰이 기본 레이블로 유지됩니다.
파서가 오늘 허용하는 속성:
| 속성 | 값 | 효과 |
|---|---|---|
label:"…" | 임의 따옴표 문자열 | 표시 레이블 재정의 |
category:… | §2.1 참조 | 시스템 노드의 색상 / 그룹화 |
size:… | small, medium, large | 노드 크기 |
importance:… | major, moderate, minor | 시각적 비중 |
sector:… | top, right, bottom, left | 시스템이 중심의 어느 쪽에 위치하는지 힌트 |
age:N | 예: age:34 | 사람 유형 중심 내부에 표시되는 나이 |
male / female / unknown | 플래그 | 사람 유형 중심의 성별 |
2.1 시스템 카테고리
카테고리는 외부 시스템을 속하는 생활 영역으로 색상 코드를 지정합니다. 파서는 임의의 문자열을 허용합니다 — 다음은 렌더러가 테마 팔레트를 가진 값들입니다.
| 카테고리 | 일반적인 예시 |
|---|---|
family | 확대 가족, 시댁/처가, 사촌 |
friends | 친구, 이웃 |
work | 고용주, 동료 |
education | 학교, 대학, 훈련 프로그램 |
health | 주치의, 전문의, 병원 |
mental-health | 상담사, 정신과의사, 지원 그룹 |
religion | 교회, 사원, 영적 공동체 |
recreation | 스포츠, 취미, 클럽 |
legal | 변호사, 보호관찰, 법원 |
government | 사회 서비스, 주거, 이민 |
financial | 은행, 혜택, 재정 지원 |
community | 지역 단체, 후원자 |
cultural | 문화/민족 조직 |
substance | 회복 프로그램 또는 부정적인 경우 활성 사용 소스 |
technology | 온라인 커뮤니티, 지원 포럼 |
pet | 반려동물, 도우미 동물 |
3. 연결
연결은 한 줄입니다: fromId OP toId, 선택적으로 [label: "…"]가 뒤따릅니다. 두 ID 모두 이미 선언되어 있어야 합니다(중심도 포함).
3.1 관계 품질 연산자
| 연산자 | 유형 | 의미 |
|---|---|---|
=== | 강함 | 친밀하고, 지지적이며, 고빈도 |
== | 보통 | 긍정적, 중간 수준의 관여 |
--- | 보통 | 중립 / 평균 |
- - | 약함 | 취약하고, 불안정하며, 초기 단계 |
~~~ | 스트레스 | 스트레스를 주는 관계 |
~=~ | 스트레스-강함 | 친밀하면서 동시에 스트레스 |
~x~ | 갈등적 | 활성 갈등 |
-/- | 단절 | 끊어짐, 소원함, 차단 |
3.2 에너지 흐름 연산자
강함 또는 보통 선에 화살표 방향을 추가합니다.
| 연산자 | 의미 |
|---|---|
--> | 일방향: 에너지가 중심에서 시스템으로 흐름 |
<-- | 일방향: 에너지가 시스템에서 중심으로 흐름 |
<-> | 상호 / 양방향 |
===> | 강한 일방향 유출 (소모) |
<=== | 강한 일방향 유입 (영양 공급) |
<=> | 강한 상호 |
==> | 보통 일방향 유출 |
<== | 보통 일방향 유입 |
파서는 방향을 정규화하여 화살표가 중심에 대해 상대적으로 읽힙니다. family === resettlement와 resettlement === family를 작성하면 동일한 다이어그램이 생성됩니다. clinic --> family와 family <-- clinic도 마찬가지로 클리닉에서 가족으로 향하는 동일한 화살표를 생성합니다.
3.3 엣지 레이블
후미의 [label: "…"]는 연결선이 허용하는 유일한 속성입니다. 일정, 성격, 또는 짧은 메모를 여기에 기록합니다.
family === temple [label: "weekly service"]
clinic --> family [label: "vaccinations"]
caseworker <-> family [label: "every Tuesday"]4. 레이블 및 주석
- 제목:
ecomap "Nguyen Family"— 첫 줄에만. - 노드 레이블 재정의:
family [label: "The Nguyens"]. - 엣지 레이블: 연결선의 후미
[label: "…"]. - 모드 접미사:
ecomap:strengths "Smith family"가 허용됩니다. 접미사는metadata.mode에 저장되며, 현재 렌더러는 이를 무시합니다. - 주석: 줄 시작에
#,//, 또는%%(앞의 공백 이후). 인라인 후미 주석은 지원되지 않습니다.
ecomap "Marcus Intake"
# caseworker's notes — fine
// also fine
%% Mermaid-style comments are fine
mom [category: family] # ← 이 후미 주석은 파서를 중단시킴5. 예약어 및 이스케이프
줄 시작 예약어: ecomap, center:.
줄 내부 예약 연산자 토큰 — ID에서 이 시퀀스 사용을 피하십시오:
===, ==, ---, - -, ~~~, ~=~, ~x~, -/-, 및 §3.2의 방향 변형.
공백이 있는 문자열은 큰따옴표로 묶어야 합니다: 제목 및 모든 레이블. 작은따옴표와 백틱은 인식되지 않습니다.
6. 흔한 실수
실제 파서 오류, 발생 원인, 해결 방법.
| 작성한 내용 | 파서 오류 | 수정 방법 |
|---|---|---|
family -- school | Unexpected: family -- school | 에코맵은 ===/---/<-> 등을 사용합니다. --는 genogram/pedigree 연산자입니다 |
선언되지 않은 school을 사용한 family === school | 레이블/카테고리 없이 빈 school 노드를 자동 생성 | 시스템을 연결선보다 위에 선언하십시오 |
center:가 없음 | 렌더링되지만 시각적 중심 앵커가 없음 | 모든 에코맵에는 정확히 하나의 center: 줄이 필요합니다 |
두 개의 center: 줄 | 첫 번째만 중심으로 처리되고 두 번째는 일반 시스템이 됨 | 하나만 선택하십시오 |
family==school (공백 없음) | Unexpected: family==school | 연산자 양쪽에 공백이 필요합니다 |
family === school [weekly] | 베어 토큰 weekly가 속성 플래그로 파싱되어 레이블이 표시되지 않음 | [label: "weekly"] 사용 |
family === school # daily | 후미 #이 줄의 일부로 소비됨 | 주석을 위쪽 줄로 이동 |
7. 문법 (EBNF)
document = header (blank | comment | center | system | connection)*
header = "ecomap" ( ":" mode )? ( WS quoted-string )? NEWLINE
mode = [A-Za-z] [A-Za-z0-9_-]*
quoted-string = '"' any-char-but-quote* '"'
center = "center:" WS id ( "[" attrs "]" )? NEWLINE
system = id ( "[" attrs "]" )? NEWLINE
connection = id WS op WS id ( WS "[" "label:" quoted-string "]" )? NEWLINE
op = "===" | "==" | "---" | "- -" | "~~~" | "~=~" | "~x~" | "-/-"
| "===>" | "<===" | "<=>" | "==>" | "<=="
| "-->" | "<--" | "<->"
id = [a-zA-Z] [a-zA-Z0-9_-]*
attrs = attr ("," attr)*
attr = "label" ":" quoted-string
| "category" ":" category
| "size" ":" ("small" | "medium" | "large")
| "importance" ":" ("major" | "moderate" | "minor")
| "sector" ":" ("top" | "right" | "bottom" | "left")
| "age" ":" digits
| "male" | "female" | "unknown"
| key ":" value // 커스텀, 메타데이터로 저장
category = "family" | "friends" | "work" | "education" | "health"
| "mental-health" | "religion" | "recreation" | "legal"
| "government" | "financial" | "community" | "cultural"
| "substance" | "technology" | "pet" | "other"
comment = ( "#" | "//" | "%%" ) any NEWLINE권위 있는 소스: src/diagrams/ecomap/parser.ts. 파서와 다를 경우 파서가 우선합니다 — 이슈를 열어주십시오.
8. 표준 준수
Schematex 에코맵은 핵심 표기법에 대해 Hartman (1978), Diagrammatic Assessment of Family Relationships를 따릅니다: 외부 시스템으로 둘러싸인 경계 있는 중심, 품질과 방향성을 인코딩하는 연결선. 카테고리 팔레트와 확장된 연산자 세트(스트레스-강함, 상호 화살표)는 현대 임상 사회복지 및 간호 연구의 관례를 따릅니다.
현재 구현된 항목:
- ✅ 중심 + 외부 시스템 방사형 구조
- ✅ 8가지 품질 연산자 (강함 / 보통 / 보통 / 약함 / 스트레스 / 스트레스-강함 / 갈등적 / 단절)
- ✅ 8가지 방향 연산자 (세 가지 강도에서 일방향 및 상호)
- ✅ 카테고리 색상 코딩 (17개 카테고리)
- ✅ 엣지 레이블
- ⏳ 중심으로서의 내장 미니 genogram (§10 참조)
- ⏳ 현재 4가지 기본 방향 이외의 섹터 기반 레이아웃 힌트
참고 문헌:
- Hartman, A. (1978). Diagrammatic assessment of family relationships. Social Casework, 59(8), 465–476.
- Ray, R.A. & Street, A.F. (2005). Ecomapping: An innovative research tool for nurses. Journal of Advanced Nursing, 50(5), 545–552.
- Rempel, G.R., Neufeld, A., & Kushner, K.E. (2007). Interactive use of genograms and ecomaps in family caregiving research. Journal of Family Nursing, 13(4), 403–419.
9. 관련 예시
예시 갤러리에서 바로 사용할 수 있는 시나리오:
10. 로드맵
계획됨 — 아직 파싱 불가. 오늘 생성된 DSL에서 이것들을 사용하지 마십시오; 파서가 거부하거나 자동으로 무시합니다.
- 중심으로서의 내장 미니 genogram —
center:노드 안에 전체 가족 블록을 선언하여(들여쓰기된 커플과 자녀) 중심이 단일 형태가 아닌 작은 genogram이 되도록. 파서는 현재center:아래의 들여쓰기된 내용을 건너뛴 줄로 읽습니다. - 카테고리별 기본 화살표 의미 — 예:
health시스템(들어옴) vswork시스템(나감)을 위한 자동 방향 화살표. - 복수 중심 — 일부 시스템을 공유하는 두 클라이언트의 에코맵.
- 커스텀 색상 재정의 — 시스템 또는 연결에
[color: "#…"].
더 빨리 필요하다면 GitHub 이슈에서 추적하십시오.
Found this useful?
Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.