**CalmDesk**๋ ์ฝ์ผํฐ ์๋ด ์ธ๋ ฅ์ด ๊ฒช๋ ๊ฐ์ ๋
ธ๋๊ณผ ์ ์ ์ ๋ถ๋ด์ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ๋ณดํธํ๊ธฐ ์ํ HRยท๊ฑด๊ฐ ํตํฉ ๊ด๋ฆฌ ์์คํ
์
๋๋ค.
์๋ด ์ค ๋ฐ์ํ๋ ์คํธ๋ ์ค์ ์
์ฑ ๋ฏผ์ ๋
ธ์ถ์ ์ ๋์ ์ผ๋ก ๋ถ์ํ์ฌ ์๋ด์์ ๋ณดํธํ ์ ์๋ ์ค์ง์ ์ธ ๊ด๋ฆฌ ์ฒด๊ณ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๐น AI๋ฅผ ํ์ฉํด ์ฝ์ผํฐ ์๋ด์์ ์คํธ๋ ์ค ์ํ๋ฅผ ๋ถ์ํ๊ณ ๊ด๋ฆฌํ๋ ์์คํ ์ ๊ตฌ์ถํ์ฌ, ๊ณ ์ํ๊ตฐ ๋ฐ์ ์ ์๋ด ๋งค์นญ ๋ฐ ๊ฐ์ ํด์(Cooldown)์ ํตํด ๋ฒ์์์ ์๋ฐฉ.
๐น ๊ทผํ ์ ๋ณด์ ์คํธ๋ ์ค ๋ฐ์ดํฐ๋ฅผ ์ฐ๋ํด ์ง์์ ๊ฑด๊ฐ ์ํ๊น์ง ๊ณ ๋ คํ ์ค๋งํธ ๊ด๋ฆฌ ํ๊ฒฝ์ ์ ๊ณตํ๊ณ , ํตํฉ ๋์๋ณด๋๋ฅผ ํตํด ์กฐ์ง ์ํ๋ฅผ ์ง๊ด์ ์ผ๋ก ํ์ ํ ์ ์๋๋ก ์ง์.
๐น ๊ธฐ์ ๋ณ ๋ฐ์ดํฐ๊ฐ ์์ ํ ๋ถ๋ฆฌ๋๋๋ก ๋ฉํฐํ ๋์ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ์ฌ ์ฌ๋ฌ ๊ธฐ์ ์ด ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ํ์ฅ ๊ฐ๋ฅํ ๊ตฌ๋ ํ ์๋น์ค ํ๊ฒฝ์ ์ ๊ณต.
๐น WebSocket๊ณผ SSE๋ฅผ ํ์ฉํ ์ค์๊ฐ ์๋ฆผ ๋ฐ ์ฑํ ๊ธฐ๋ฅ๊ณผ ํฌ์ธํธยท๊ธฐํํฐ์ฝ ๋ณด์ ์ฒด๊ณ๋ฅผ ํตํด ์ง์ ์ฐธ์ฌ์ ์๋น์ค ๋ชฐ์ ๋๋ฅผ ๋์.
๊ธฐ์ ์ ์์์ ํจ์จ์ ์ผ๋ก ์ด์ํ๊ณ ์กฐ์ง์์ ์ ์์ ๊ฑด๊ฐ์ ๊ด๋ฆฌํฉ๋๋ค.
-
ํตํฉํํฉ: ์ ์ฌ ์คํธ๋ ์ค ์ง์ ๋ฐ ๋ถ์๋ณ ์ ๋ฌด ํํฉ ์์ฝ.
-
ํ์๊ด๋ฆฌ: ์ ์ฌ์์ ๊ฐ์ธ ์ ๋ณด, ์ง๊ธ ๋ฐ ๊ถํ ์ค์ ๊ด๋ฆฌ.
-
์์ธ๋ถ์: ์ฌ์ธต์ ์ธ ํํฐ๋ง์ ํตํ ์๊ฐ/๋ถ๊ธฐ๋ณ ์ ์ ์งํ ๋ถ์.
-
์ ์ฒญ๊ด๋ฆฌ: ํด๊ฐ, ์ฐ์ฐจ, ์๋ด ๋ฑ ๋ชจ๋ ๊ฒฐ์ฌ ์์ฒญ ๊ฑด์ ๋ํ ์น์ธ/๋ฐ๋ ค ์ฒ๋ฆฌ.
-
๊ธฐํํฐ์ฝ ๊ด๋ฆฌ: ๋ณต์ง ๋ชฐ ์ํ ๋ฑ๋ก ๋ฐ ๋ฐ๊ธ ๋ด์ญ ๊ด๋ฆฌ.
-
๋ง์ดํ์ด์ง: ๊ฐ์ธ์ ๋ณด ์์ ๋ฐ ๋น๋ฐ๋ฒํธ ๊ด๋ฆฌ.
- ์ด์ ์๋ฆผ ์ผํฐ: ์ ๊ท ํ์ ๊ฐ์ ์์ฒญ, ๊ธด๊ธ ์๋ด ์ ์ฒญ ๋ฑ์ ์ค์๊ฐ์ผ๋ก ๊ฐ์งํ์ฌ ์๋ฆผ ์ ๊ณต.
- ํตํฉ ์ฑํ ๊ด๋ฆฌ: ์ง์๋ค์ ์๋ด ์์ฒญ์ ๋ํ ์ค์๊ฐ ์๋ ๋ฐ ์ด๋ ฅ ๊ด๋ฆฌ.
์ ๋ฌด ์์ฐ์ฑ ํฅ์๊ณผ ์ ์์ ์ผ์ด๋ฅผ ์ํ ๊ฐ์ธ ํนํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
-
๋์๋ณด๋: ๊ฐ์ธ ์ ๋ฌด ํต๊ณ ๋ฐ ์ ์ ์ง์ ์์ฝ ์ ๋ณด ํ์ธ.
-
๋ถ์์ ๋ณด: ์์ ๋ถ์์ ํ์ ๋ช ๋จ ๋ฐ ์กฐ์ง๋ ํ์ธ.
-
๊ทผํ๊ด๋ฆฌ: ์ค์๊ฐ ์ถํด๊ทผ ์ฒดํฌ ๋ฐ ์ฐ์ฐจ ์ฌ์ฉ ๋ด์ญ ๊ด๋ฆฌ.
-
์๋ด์ ์ฒญ: ์ ๋ฌธ ์๋ด์ฌ์์ ์ค์๊ฐ ์๋ด ์์ฝ ๋ฐ ๋ด์ญ ํ์ธ.
-
ํตํ๊ธฐ๋ก: AI๊ฐ ์์ฝํ ๋ณธ์ธ์ ํตํ ๋ น์ทจ๋ก ๋ฐ ๊ฐ์ ๋ถ์ ๊ฒฐ๊ณผ ์กฐํ.
-
ํฌ์ธํธ๋ชฐ: ์ ๋ฆฝ๋ ์ฑ๊ณผ ํฌ์ธํธ๋ก ๊ธฐํํฐ์ฝ ๋ฑ ๋ณต์ง ์ํ ๊ตฌ๋งค.
-
๋ง์ดํ์ด์ง: ๊ฐ์ธ ํ๋กํ ๊ด๋ฆฌ , ๊ธฐํํฐ์ฝ ๋ณด๊ดํจ , ํฌ์ธํธ ๋ฐ ๊ฒฐ์ ๋ด์ญ ๊ด๋ฆฌ.
- ์ค์๊ฐ ์ฑ๋ด: AI ๋น์ ๊ธฐ๋ฅ์ ํตํด ์ ๋ฌด ๊ด๋ จ ์ง๋ฌธ์ ์ฆ๊ฐ์ ์ธ ๋ต๋ณ ์ ๊ณต.
- ๊ทธ๋ฃน ์ฑํ : N:N ๋๋ 1:1 ์ฑํ ์ ํตํ ์ค์๊ฐ ์ ์ ์ผ์ด ๋ฐ ์ ๋ฌด ์ง์.
- ์ค๋งํธ ์๋ฆผ ์ผํฐ: SSE๊ธฐ์ ์ ํ์ฉํ์ฌ ํด๊ฐ ์น์ธ, ๊ณต์ง์ฌํญ ๋ฑ์ ์ค์๊ฐ ํธ์ ์๋ฆผ์ผ๋ก ์์ .
| ๋ถ๋ฅ | ๊ตฌ๋ถ | ๊ธฐ์ ์์ธ |
|---|---|---|
| Backend | ํ๋ ์์ํฌ / ์ธ์ด | Spring Boot , Java 17 |
| ๋ฐ์ดํฐ๋ฒ ์ด์ค / ์บ์ | MySQL , Redis , JPA | |
| AI ์ง๋ฅํ ์๋น์ค | Spring AI (OpenAI, Ollama, Google GenAI), Google Cloud STT API | |
| ๋ณด์ / ์ธํฐํ์ด์ค | Spring Security, JWT , WebSocket , Swagger |
| ๋ถ๋ฅ | ๊ตฌ๋ถ | ๊ธฐ์ ์์ธ |
|---|---|---|
| Frontend | ํ๋ ์์ํฌ / ์ธ์ด | React , JavaScript |
| ์ํ / ์คํ์ผ๋ง | Zustand , Styled-components, Vanilla CSS | |
| ๋ฐ์ดํฐ ์๊ฐํ | Recharts , Lucide React | |
| ํต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ | Axios, StompJS | |
| ์ํต | Slack, Notion, ์นด์นด์คํก |
| ์ง์์ ํ์ด์ง | ๊ด๋ฆฌ์ ํ์ด์ง |
|---|---|
![]() |
![]() |
| ์ค์๊ฐ ํฌ์ธํธ๋ชฐ ์ ๋ฐ์ดํธ | ๋ฏธ์ ์งํ/์๋ฃ | ๊ทผํ ์ ์ฒญ |
|---|---|---|
![]() |
![]() |
![]() |
| ์๋ฆผ | ์ฑํ | ์์ค ๋ น์ |
|---|---|---|
![]() |
![]() |
![]() |
๐ Backend ์์ธ ํด๋ ๊ตฌ์กฐ ๋ณด๊ธฐ (Click to expand)
โโโ src/main/java/com/code808/calmdesk/ โ โโโ domain/ # ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง โ โ โโโ ai/ # AI ์๋น์ค ํตํฉ โ โ โโโ attendance/ # ๊ทผํ ๋ฐ ์ฐ์ฐจ ๊ด๋ฆฌ โ โ โโโ auth/ # ๋ก๊ทธ์ธ ๋ฐ ๊ถํ ์ธ์ฆ โ โ โโโ businesscard/ # ๋ช ํจ ๊ด๋ฆฌ โ โ โโโ callrecord/ # STT ๋ฐ ๊ฐ์ ๋ถ์ โ โ โโโ chat/ # ์ค์๊ฐ ์ฑํ ๋ชจ๋ โ โ โโโ company/ # ํ์ฌ ๋ฐ ์กฐ์ง ๊ด๋ฆฌ โ โ โโโ consultation/ # ์ฌ๋ฆฌ ์๋ด ์ ์ฒญ โ โ โโโ dashboard/ # ๋ฐ์ดํฐ ์๊ฐํ โ โ โโโ gifticon/ # ๋ณต์ง ํฌ์ธํธ ๋ชฐ โ โ โโโ member/ # ์ฌ์ฉ์ ์ ๋ณด ๊ด๋ฆฌ โ โ โโโ monitoring/ # ์ค์๊ฐ ์ํ ๋ชจ๋ํฐ๋ง โ โ โโโ mypage/ # ๊ฐ์ธ ์ค์ โ โ โโโ Notification/ # ์ค์๊ฐ ์๋ฆผ โ โ โโโ team/ # ํ ๊ตฌ์ฑ ๊ด๋ฆฌ โ โ โโโ vacation/ # ํด๊ฐ ๊ฒฐ์ฌ ์์คํ โ โโโ global/ # ๊ณตํต ์ค์ ๋ฐ ๋ณด์ โ โโโ config/ # App/Security ์ค์ โ โโโ dto/ # ๊ณตํต DTO โ โโโ exception/ # ์์ธ ์ฒ๋ฆฌ โ โโโ security/ # JWT ์ค์ โโโ src/main/resources/ # ํ๊ฒฝ ์ค์ ๋ฐ SQL โโโ build.gradle # ๋น๋ ๋ฐ ์์กด์ฑ ๊ด๋ฆฌ โโโ docs/ # ์ค๊ณ ๋ฐ ๊ฐ์ด๋ ๋ฌธ์
๐ Frontend ์์ธ ํด๋ ๊ตฌ์กฐ ๋ณด๊ธฐ (Click to expand)
โโโ src/ โโโ components/ # ์ฌ์ฌ์ฉ UI ์ปดํฌ๋ํธ โโโ pages/ # ๋ผ์ฐํ ํ์ด์ง ๊ตฌ์ฑ โโโ store/ # Zustand ์ ์ญ ์ํ ๊ด๋ฆฌ โโโ api/ # API ํต์ ์ค์ โโโ assets/ # ์ด๋ฏธ์ง ๋ฐ ์คํ์ผ ์์ โโโ hooks/ # ์ปค์คํ React ํ โโโ utils/ # ๊ณต์ฉ ์ ํธ๋ฆฌํฐ ํจ์
- Java 17 ๋ฐ MySQL ์ค์น ํ์ธ
Backend/src/main/resources/application-secret.yaml์์ฑ (API ํค ๋ฑ ๋ฏผ๊ฐ ์ ๋ณด)- ๋น๋ ๋ฐ ์คํ:
cd Backend ./gradlew bootRun
- Node.js ์ค์น ํ์ธ
- ์์กด์ฑ ์ค์น ๋ฐ ์คํ:
cd Frontend npm install npm run dev
๐ฅ CalmDesk ์ต์ข ํ๋ก์ ํธ ๋ณด๊ณ ์ ๐ฅ
| ์ด๋ฆ | ํฌ์ง์ | ๋ด๋น ์ญํ | GitHub / Contact |
|---|---|---|---|
| ๐ ๋ฐ์ค์ธ | ์กฐ์ฅ (Team Lead) | ํ๋ก์ ํธ ์ด๊ด ๋ฐ ์์ฌ ๊ฒฐ์ | GitHub: ๋ฐ์ค์ธ |
| โ๏ธ ๋ฐฑ์น์ | ํ์ ๊ด๋ฆฌ์ (SCM) | Git ๋ธ๋์น ์ ๋ต ๋ฐ ๋ฒ์ ๊ด๋ฆฌ | ๋ฉ์ผ: ๋ฐฑ์น์ |
| ๐๏ธ ๊น์ ํ | DB ๊ด๋ฆฌ์ | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ ๋ฐ ์ด๊ธฐ ๊ตฌ์ถ | GitHub: ๊น์ ํ |
| ๐๏ธ ์ฅ์์ | ์ผ์ ๊ด๋ฆฌ์ | Sprint ๋ฐ ๋ง์ผ์คํค ๊ด๋ฆฌ | GitHub: ์ฅ์์ |
| ๐ ์กฐ์นํธ | ์ด์ ๊ด๋ฆฌ์ | ์ด์ ํธ๋ํน ๋ฐ ํผ๋๋ฐฑ ํตํฉ ๊ด๋ฆฌ | GitHub: ์กฐ์นํธ |







