# 조직도 관리

## 조직도 관리

구성원 목록 페이지(`/member/list`)의 **뷰 전환** 을 통해 전체 구성원과 부서·그룹 단위의 조직도를 한 화면에서 관리합니다. 별도 경로였던 `/member/unit` 과 `/member/group` 은 현재 자동으로 `/member/list?view=unit` · `?view=group` 으로 리다이렉트됩니다.

{% hint style="info" %}
**부서(Unit) vs 그룹(Group)**

* **부서(Unit)**: 계층 구조를 가진 조직 단위 (회사 → 본부 → 팀 등). 구성원은 **하나의 부서**에만 직접 소속됩니다.
* **그룹(Group)**: 계층 없이 플랫한 구성원 그룹. TF·프로젝트팀 등 유연하게 묶을 때 사용하고, 구성원은 **여러 그룹**에 동시에 속할 수 있습니다.
  {% endhint %}

***

### 1. 뷰 전환

구성원 목록 페이지 상단 툴바에 세 가지 뷰 아이콘이 있습니다.

| 아이콘           | 뷰           | URL 파라미터      | 레이아웃                    |
| ------------- | ----------- | ------------- | ----------------------- |
| ListIcon      | **전체** (기본) | 없음            | 평면 구성원 그리드              |
| Building2Icon | **부서별**     | `?view=unit`  | 좌측 부서 트리 + 우측 해당 부서 구성원 |
| UsersIcon     | **그룹별**     | `?view=group` | 좌측 그룹 목록 + 우측 해당 그룹 구성원 |

부서·그룹 뷰는 **좌우 가변 분할 레이아웃** 으로 표시되며, 좌측 패널(기본 30%)과 우측 그리드(기본 70%)의 폭은 자유롭게 조정할 수 있습니다.

{% hint style="info" %}
**뒤로가기 동작** 뷰 전환은 브라우저 히스토리에 쌓이지 않고 URL만 교체됩니다. 뒤로가기를 누르면 뷰 전환이 아닌 **이전 페이지**로 이동합니다.
{% endhint %}

***

### 2. 부서 관리

#### 2-1. 부서 트리

부서 뷰 좌측에 계층 트리가 표시됩니다.

* 최상단에 가상 노드 **`회사 전체`** 가 있습니다. 클릭하면 어느 부서에도 배정되지 않은 구성원만 그리드에 표시됩니다.
* **접힌(▶)** 노드의 구성원 수는 **하위 부서를 포함한 재귀 카운트**입니다.
* **펼친(▼)** 노드의 구성원 수는 **직접 소속된 구성원만** 세는 카운트입니다.

#### 2-2. 부서 추가

1. 트리에서 상위가 될 부서에 마우스를 올리면 인라인 `+` 버튼이 표시됩니다. 최상위에 추가하려면 `회사 전체` 또는 페이지 상단의 추가 버튼을 사용합니다.
2. **`부서 추가`** 다이얼로그가 열립니다.
3. 필드:
   * **부서명** — 필수
   * **상위 부서** — 콤보박스에서 선택 (한글 검색 지원)
4. **`저장`** 클릭 → 토스트 *"부서가 추가되었습니다."*

#### 2-3. 부서 수정

1. 부서 노드에 마우스를 올리고 **수정(펜) 아이콘** 을 클릭합니다.
2. 기존 값이 채워진 폼에서 내용을 수정합니다.
3. 저장 시 토스트 *"부서가 수정되었습니다."*

#### 2-4. 부서 삭제

1. 부서 노드의 **삭제(휴지통) 아이콘** 을 클릭합니다.
2. 확인 다이얼로그가 열리며 부서명이 따옴표로 감싸져 표시됩니다.
3. 확인하면 *"부서가 삭제되었습니다."* 토스트가 표시됩니다.

{% hint style="warning" %}
**삭제할 수 없는 부서** 다음 조건이면 삭제 버튼이 비활성화됩니다.

* Google Workspace 등 외부 시스템과 동기화된 부서
* 하위 부서가 있는 경우
* 배정된 구성원이 있는 경우

외부 동기화된 부서는 **원본 시스템(Google Workspace / Microsoft 365)** 에서 삭제해야 합니다.
{% endhint %}

#### 2-5. 부서에 구성원 배정

1. 트리에서 부서를 선택합니다.
2. 우측 그리드 상단의 **`구성원 관리`** 버튼(또는 유사 UI)을 클릭하면 **부서 구성원 관리 다이얼로그** 가 열립니다.
3. 전체 활성 구성원 목록에서 체크박스로 **이 부서에 속할 구성원** 을 선택합니다.
4. **`저장`** 클릭 → 변경된 소속이 즉시 반영됩니다.

구성원은 **하나의 부서에만** 속할 수 있으므로, 다른 부서 소속자를 체크하면 소속이 자동으로 이동합니다.

***

### 3. 그룹 관리

그룹 뷰 좌측의 그룹 목록에서 동일한 패턴으로 관리합니다.

#### 3-1. 그룹 추가

1. 그룹 목록 상단 **`+ 그룹 추가`** 버튼 클릭 → **`그룹 추가`** 다이얼로그
2. 필드: **그룹명** (단일 필드, 상위 그룹 없음)
3. **`저장`** → *"그룹이 추가되었습니다."*

#### 3-2. 그룹 수정 / 삭제

* 그룹 항목 hover 시 펜/휴지통 아이콘 노출
* 수정 다이얼로그는 기존 값 프리필
* 삭제 확인 다이얼로그에 그룹명 표시

#### 3-3. 그룹 구성원 관리

1. 그룹을 선택합니다.
2. 우측 그리드 상단 **`구성원 관리`** 버튼을 클릭해 **그룹 구성원 관리 다이얼로그** 를 엽니다.
3. 체크박스로 그룹에 포함할 구성원을 선택/해제합니다.

**한 구성원이 여러 그룹에 동시에 속할 수 있습니다.**

***

### 4. 외부 연동 조직/그룹

Google Workspace·Microsoft 365 연동이 활성화되어 있으면, 외부 시스템의 조직 단위(OU)·그룹이 자동으로 동기화되어 같은 트리/목록에 함께 표시됩니다.

| 상태         | 설명           | 가능한 작업            |
| ---------- | ------------ | ----------------- |
| **동기화됨**   | 외부 시스템과 연결됨  | 조회만 가능 (편집·삭제 불가) |
| **연결 해제됨** | 외부 시스템에서 삭제됨 | 삭제 가능             |

{% hint style="info" %}
**동기화 조직 편집은 원본 시스템에서** 동기화된 부서/그룹은 SMPLY에서 직접 수정·삭제할 수 없습니다. 변경이 필요하면 Google Workspace 또는 Microsoft 365 관리 콘솔에서 작업하세요. 변경 내용은 다음 동기화 때 SMPLY에도 반영됩니다.
{% endhint %}

***

### 5. 접근 경로 요약

| 하고 싶은 것            | 경로                                              |
| ------------------ | ----------------------------------------------- |
| 전체 구성원 목록          | `/member/list`                                  |
| 부서별 조직도            | `/member/list?view=unit` 또는 기존 `/member/unit`   |
| 그룹별 조직도            | `/member/list?view=group` 또는 기존 `/member/group` |
| 어디에도 속하지 않은 구성원 확인 | 부서 뷰에서 **`회사 전체`** 선택                           |

***

### 6. 자주 묻는 질문

#### Q: 구성원을 여러 부서에 동시에 배정하고 싶어요

부서는 **1인 1부서** 구조입니다. 여러 조직에 걸치는 구성원이 있다면 **그룹** 기능을 함께 활용하세요 (예: "TF-신사업" 그룹에 복수 부서 인원 추가).

#### Q: 외부 동기화된 부서를 SMPLY에서 수정할 수 있나요

아니요. 원본 시스템(Google Workspace / Microsoft 365)에서 수정해야 합니다. 동기화되지 않게 하려면 GWS 연동 설정의 **선택적 동기화**에서 해당 조직 단위를 제외하세요.

#### Q: 부서·그룹 이름을 바꿨는데 검색에서 예전 이름이 나와요

브라우저 캐시 영향일 수 있습니다. 페이지를 강력 새로고침(Cmd+Shift+R / Ctrl+Shift+R)해 보세요.

#### Q: 이 외의 문제

채널톡으로 문의해 주세요.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.smply.one/member/undefined.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
