๋ณตํฉ ์ปดํฌ๋ํธ ํจํด์ ์ฌ์ฉํ์ฌ ์ ์ฐํ๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ API๋ฅผ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ์ธ์. ์ฅ์ , ๊ตฌํ ๊ธฐ์ , ๊ณ ๊ธ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ดํด๋ด ๋๋ค.
๋ฆฌ์กํธ ๋ณตํฉ ์ปดํฌ๋ํธ: ์ ์ฐํ๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ API ๋ง๋ค๊ธฐ
๋์์์ด ๋ฐ์ ํ๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋๋ ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ฆฌ์กํธ๋ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ฅผ ํตํด ์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํ ์ฌ๋ฌ ํจํด์ ์ ๊ณตํฉ๋๋ค. ๊ทธ์ค ํนํ ๊ฐ๋ ฅํ ํจํด ์ค ํ๋๋ ๋ณตํฉ ์ปดํฌ๋ํธ(Compound Component)๋ก, ๋ณต์กํ ๊ตฌํ ์ธ๋ถ ์ฌํญ์ ์ถ์ํํ๋ฉด์ ์ฌ์ฉ์์๊ฒ ์ธ๋ฐํ ์ ์ด๊ถ์ ๋ถ์ฌํ๋ ์ ์ฐํ๊ณ ์ ์ธ์ ์ธ ์ปดํฌ๋ํธ API๋ฅผ ๋ง๋ค ์ ์๊ฒ ํด์ค๋๋ค.
๋ณตํฉ ์ปดํฌ๋ํธ๋ ๋ฌด์์ธ๊ฐ์?
๋ณตํฉ ์ปดํฌ๋ํธ๋ ์์ ์ปดํฌ๋ํธ๋ค์ ์ํ์ ๋ก์ง์ ๊ด๋ฆฌํ๋ฉฐ ์ด๋ค ๊ฐ์ ์๋ฌต์ ์ธ ํ๋ ฅ์ ์ ๊ณตํ๋ ์ปดํฌ๋ํธ์ ๋๋ค. ์ฌ๋ฌ ๋ ๋ฒจ์ ๊ฑธ์ณ props๋ฅผ ์ ๋ฌํ๋ ๋์ , ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ ์์ ์ปดํฌ๋ํธ๊ฐ ์ง์ ์ ๊ทผํ๊ณ ์ํธ์์ฉํ ์ ์๋ ์ปจํ ์คํธ(context)๋ ๊ณต์ ์ํ๋ฅผ ๋ ธ์ถํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ ์ ์ธ์ ์ด๊ณ ์ง๊ด์ ์ธ API๋ฅผ ๊ตฌํํ ์ ์์ผ๋ฉฐ, ์ฌ์ฉ์์๊ฒ ์ปดํฌ๋ํธ์ ๋์๊ณผ ๋ชจ์์ ๋ํ ๋ ๋ง์ ์ ์ด๊ถ์ ์ ๊ณตํฉ๋๋ค.
๋ ๊ณ ๋ธ๋ก ์ธํธ๋ฅผ ์๊ฐํด๋ณด์ธ์. ๊ฐ ๋ธ๋ก(์์ ์ปดํฌ๋ํธ)์ ํน์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ง๋ง, ๋ชจ๋ ์ฐ๊ฒฐ๋์ด ๋ ํฐ ๊ตฌ์กฐ๋ฌผ(๋ณตํฉ ์ปดํฌ๋ํธ)์ ๋ง๋ญ๋๋ค. '์ค๋ช ์'(์ปจํ ์คํธ)๋ ๊ฐ ๋ธ๋ก์ด ๋ค๋ฅธ ๋ธ๋ก๊ณผ ์ด๋ป๊ฒ ์ํธ์์ฉํด์ผ ํ๋์ง ์๋ ค์ค๋๋ค.
๋ณตํฉ ์ปดํฌ๋ํธ ์ฌ์ฉ์ ์ด์
- ์ ์ฐ์ฑ ์ฆ๋: ์ฌ์ฉ์๋ ๊ธฐ๋ณธ ๊ตฌํ์ ์์ ํ์ง ์๊ณ ๋ ์ปดํฌ๋ํธ์ ๊ฐ๋ณ ๋ถ๋ถ์ ๋ํ ๋์๊ณผ ๋ชจ์์ ์ปค์คํฐ๋ง์ด์งํ ์ ์์ต๋๋ค. ์ด๋ ๋ค์ํ ์ปจํ ์คํธ์ ๊ฑธ์ณ ๋ ํฐ ์ ์์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ผ๋ก ์ด์ด์ง๋๋ค.
- ์ฌ์ฌ์ฉ์ฑ ํฅ์: ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ๊ณ ๋ช ํํ API๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ๋ณตํฉ ์ปดํฌ๋ํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅธ ๋ถ๋ถ์ด๋ ์ฌ๋ฌ ํ๋ก์ ํธ์์ ์ฝ๊ฒ ์ฌ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
- ์ ์ธ์ ๊ตฌ๋ฌธ: ๋ณตํฉ ์ปดํฌ๋ํธ๋ ์ฌ์ฉ์๊ฐ ์ด๋ป๊ฒ ๋ฌ์ฑํ ๊ฒ์ธ์ง๊ฐ ์๋ ๋ฌด์์ ๋ฌ์ฑํ๊ณ ์ถ์์ง๋ฅผ ์ค๋ช ํ๋ ๋ณด๋ค ์ ์ธ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์คํ์ผ์ ์ฅ๋ คํฉ๋๋ค.
- Prop Drilling ๊ฐ์: ์ฌ๋ฌ ๊ณ์ธต์ ์ค์ฒฉ๋ ์ปดํฌ๋ํธ๋ฅผ ํตํด props๋ฅผ ์ ๋ฌํ๋ ์ง๋ฃจํ ๊ณผ์ ์ ํผํ ์ ์์ต๋๋ค. ์ปจํ ์คํธ๋ ๊ณต์ ์ํ์ ์ ๊ทผํ๊ณ ์ ๋ฐ์ดํธํ๋ ์ค์ ์ง์ ์ ์ ๊ณตํฉ๋๋ค.
- ์ ์ง๋ณด์์ฑ ๊ฐํ: ๋ช ํํ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ๋ ์ฝ๋๋ฅผ ์ดํดํ๊ณ , ์์ ํ๊ณ , ๋๋ฒ๊น ํ๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
์๋ ์๋ฆฌ ์ดํด: ์ปจํ ์คํธ์ ์กฐํฉ
๋ณตํฉ ์ปดํฌ๋ํธ ํจํด์ ๋ ๊ฐ์ง ํต์ฌ ๋ฆฌ์กํธ ๊ฐ๋ ์ ํฌ๊ฒ ์์กดํฉ๋๋ค:
- ์ปจํ ์คํธ(Context): ์ปจํ ์คํธ๋ ๋ชจ๋ ๋ ๋ฒจ์์ ์๋์ผ๋ก props๋ฅผ ์ ๋ฌํ ํ์ ์์ด ์ปดํฌ๋ํธ ํธ๋ฆฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ์์ ์ปดํฌ๋ํธ๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ์ํ์ ์ ๊ทผํ๊ณ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
- ์กฐํฉ(Composition): ๋ฆฌ์กํธ์ ์กฐํฉ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉด ์๊ณ ๋ ๋ฆฝ์ ์ธ ์ปดํฌ๋ํธ๋ค์ ๊ฒฐํฉํ์ฌ ๋ณต์กํ UI๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๋ณตํฉ ์ปดํฌ๋ํธ๋ ์กฐํฉ์ ํ์ฉํ์ฌ ์ผ๊ด์ฑ ์๊ณ ์ ์ฐํ API๋ฅผ ๋ง๋ญ๋๋ค.
๋ณตํฉ ์ปดํฌ๋ํธ ๊ตฌํ: ์ค์ฉ์ ์ธ ์์ - ํญ(Tab) ์ปดํฌ๋ํธ
๋ณตํฉ ์ปดํฌ๋ํธ ํจํด์ ์ค์ฉ์ ์ธ ์์ ์ธ ํญ ์ปดํฌ๋ํธ๋ก ์ค๋ช ํด ๋ณด๊ฒ ์ต๋๋ค. ํ์ฑ ํญ์ ๊ด๋ฆฌํ๊ณ ์์ ์ปดํฌ๋ํธ๋ค(`TabList`, `Tab`, `TabPanel`)์ ์ํ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ๋ `Tabs` ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด ๋ณด๊ฒ ์ต๋๋ค.
1. `Tabs` ์ปดํฌ๋ํธ (๋ถ๋ชจ)
์ด ์ปดํฌ๋ํธ๋ ํ์ฑ ํญ ์ธ๋ฑ์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
```javascript import React, { createContext, useState, useContext } from 'react'; const TabsContext = createContext(null); function Tabs({ children, defaultIndex = 0 }) { const [activeIndex, setActiveIndex] = useState(defaultIndex); const value = { activeIndex, setActiveIndex, }; return (2. `TabList` ์ปดํฌ๋ํธ
์ด ์ปดํฌ๋ํธ๋ ํญ ํค๋ ๋ชฉ๋ก์ ๋ ๋๋งํฉ๋๋ค.
```javascript function TabList({ children }) { return (3. `Tab` ์ปดํฌ๋ํธ
์ด ์ปดํฌ๋ํธ๋ ๋จ์ผ ํญ ํค๋๋ฅผ ๋ ๋๋งํฉ๋๋ค. ์ปจํ ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฑ ํญ ์ธ๋ฑ์ค์ ์ ๊ทผํ๊ณ , ํด๋ฆญ ์ ์ด๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
```javascript function Tab({ children, index }) { const { activeIndex, setActiveIndex } = useContext(TabsContext); const isActive = activeIndex === index; return ( ); } export { Tab }; ```4. `TabPanel` ์ปดํฌ๋ํธ
์ด ์ปดํฌ๋ํธ๋ ๋จ์ผ ํญ์ ์ฝํ ์ธ ๋ฅผ ๋ ๋๋งํฉ๋๋ค. ํด๋น ํญ์ด ํ์ฑํ๋ ๊ฒฝ์ฐ์๋ง ๋ ๋๋ง๋ฉ๋๋ค.
```javascript function TabPanel({ children, index }) { const { activeIndex } = useContext(TabsContext); const isActive = activeIndex === index; return isActive ?5. ์ฌ์ฉ ์์
์ ํ๋ฆฌ์ผ์ด์ ์์ `Tabs` ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
```javascript import Tabs, { TabList, Tab, TabPanel } from './Tabs'; function App() { return (ํญ 1์ ์ฝํ ์ธ
ํญ 2์ ์ฝํ ์ธ
ํญ 3์ ์ฝํ ์ธ
์ด ์์ ์์ `Tabs` ์ปดํฌ๋ํธ๋ ํ์ฑ ํญ์ ๊ด๋ฆฌํฉ๋๋ค. `TabList`, `Tab`, `TabPanel` ์ปดํฌ๋ํธ๋ค์ `Tabs`๊ฐ ์ ๊ณตํ๋ ์ปจํ ์คํธ๋ก๋ถํฐ `activeIndex`์ `setActiveIndex` ๊ฐ์ ๊ฐ์ ธ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ๋ด๋ถ ๊ตฌํ ์ธ๋ถ ์ฌํญ์ ๊ฑฑ์ ํ ํ์ ์์ด ํญ์ ๊ตฌ์กฐ์ ์ฝํ ์ธ ๋ฅผ ์ฝ๊ฒ ์ ์ํ ์ ์๋, ์ผ๊ด์ฑ ์๊ณ ์ ์ฐํ API๊ฐ ๋ง๋ค์ด์ง๋๋ค.
๊ณ ๊ธ ์ฌ์ฉ ์ฌ๋ก ๋ฐ ๊ณ ๋ ค ์ฌํญ
- ์ ์ด ์ปดํฌ๋ํธ vs. ๋น์ ์ด ์ปดํฌ๋ํธ: ๋ณตํฉ ์ปดํฌ๋ํธ๋ฅผ ์ ์ด(๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ์ํ๋ฅผ ์์ ํ ์ ์ด) ๋๋ ๋น์ ์ด(์์ ์ปดํฌ๋ํธ๊ฐ ์์ฒด ์ํ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ ๋ถ๋ชจ๋ ๊ธฐ๋ณธ๊ฐ์ด๋ ์ฝ๋ฐฑ์ ์ ๊ณต) ๋ฐฉ์์ผ๋ก ๋ง๋ค ์ ์์ต๋๋ค. ํญ ์ปดํฌ๋ํธ ์์ ๋ Tabs ์ปดํฌ๋ํธ์ `activeIndex` prop๊ณผ `onChange` ์ฝ๋ฐฑ์ ์ ๊ณตํ์ฌ ์ ์ด ์ปดํฌ๋ํธ๋ก ๋ง๋ค ์ ์์ต๋๋ค.
- ์ ๊ทผ์ฑ (ARIA): ๋ณตํฉ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ๋ ์ ๊ทผ์ฑ์ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ARIA ์์ฑ์ ์ฌ์ฉํ์ฌ ์คํฌ๋ฆฐ ๋ฆฌ๋ ๋ฐ ๊ธฐํ ๋ณด์กฐ ๊ธฐ์ ์ ์๋งจํฑ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ธ์. ์๋ฅผ ๋ค์ด, ํญ ์ปดํฌ๋ํธ์์๋ `role="tablist"`, `role="tab"`, `aria-selected="true"`, `role="tabpanel"`์ ์ฌ์ฉํ์ฌ ์ ๊ทผ์ฑ์ ๋ณด์ฅํด์ผ ํฉ๋๋ค.
- ๊ตญ์ ํ(i18n) ๋ฐ ํ์งํ(l10n): ๋ณตํฉ ์ปดํฌ๋ํธ๊ฐ ๋ค๋ฅธ ์ธ์ด์ ๋ฌธํ์ ๋งฅ๋ฝ์ ์ง์ํ๋๋ก ์ค๊ณ๋์๋์ง ํ์ธํ์ธ์. ์ ์ ํ i18n ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ(RTL) ๋ ์ด์์์ ๊ณ ๋ คํ์ธ์.
- ํ ๋ง ๋ฐ ์คํ์ผ๋ง: CSS ๋ณ์๋ Styled Components ๋๋ Emotion๊ณผ ๊ฐ์ ์คํ์ผ๋ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ์ปดํฌ๋ํธ์ ๋ชจ์์ ์ฝ๊ฒ ์ปค์คํฐ๋ง์ด์งํ ์ ์๋๋ก ํ์ธ์.
- ์ ๋๋ฉ์ด์ ๋ฐ ์ ํ ํจ๊ณผ: ์ ๋๋ฉ์ด์ ๊ณผ ์ ํ ํจ๊ณผ๋ฅผ ์ถ๊ฐํ์ฌ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํค์ธ์. React Transition Group์ ๋ค๋ฅธ ์ํ ๊ฐ์ ์ ํ์ ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
- ์ค๋ฅ ์ฒ๋ฆฌ: ์๊ธฐ์น ์์ ์ํฉ์ ์ฐ์ํ๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๊ฒฌ๊ณ ํ ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ๊ตฌํํ์ธ์. `try...catch` ๋ธ๋ก์ ์ฌ์ฉํ๊ณ ์ ์ฉํ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ๊ณตํ์ธ์.
ํผํด์ผ ํ ํจ์
- ๊ณผ๋ํ ์์ง๋์ด๋ง: Prop Drilling์ด ํฐ ๋ฌธ์ ๊ฐ ์๋ ๊ฐ๋จํ ์ฌ์ฉ ์ฌ๋ก์ ๋ณตํฉ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ง ๋ง์ธ์. ๋จ์ํ๊ฒ ์ ์งํ์ธ์!
- ๊ฐํ ๊ฒฐํฉ: ๋๋ฌด ๊ฐํ๊ฒ ๊ฒฐํฉ๋ ์์ ์ปดํฌ๋ํธ ๊ฐ์ ์์กด์ฑ์ ๋ง๋ค์ง ๋ง์ธ์. ์ ์ฐ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ ์ฌ์ด์ ๊ท ํ์ ๋ชฉํ๋ก ํ์ธ์.
- ๋ณต์กํ ์ปจํ ์คํธ: ๋๋ฌด ๋ง์ ๊ฐ์ ๊ฐ์ง ์ปจํ ์คํธ๋ฅผ ๋ง๋ค์ง ๋ง์ธ์. ์ด๋ ์ปดํฌ๋ํธ๋ฅผ ์ดํดํ๊ณ ์ ์ง๋ณด์ํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ๋ ์๊ณ ์ง์ค๋ ์ปจํ ์คํธ๋ก ๋๋๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์.
- ์ฑ๋ฅ ๋ฌธ์ : ์ปจํ ์คํธ๋ฅผ ์ฌ์ฉํ ๋ ์ฑ๋ฅ์ ์ ์ํ์ธ์. ์ปจํ ์คํธ์ ์ฆ์ ์ ๋ฐ์ดํธ๋ ์์ ์ปดํฌ๋ํธ์ ์ฌ๋ ๋๋ง์ ์ ๋ฐํ ์ ์์ต๋๋ค. `React.memo` ๋ฐ `useMemo`์ ๊ฐ์ ๋ฉ๋ชจ์ด์ ์ด์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ์ ์ต์ ํํ์ธ์.
๋ณตํฉ ์ปดํฌ๋ํธ์ ๋์
๋ณตํฉ ์ปดํฌ๋ํธ๋ ๊ฐ๋ ฅํ ํจํด์ด์ง๋ง ํญ์ ์ต์์ ํด๊ฒฐ์ฑ ์ ์๋๋๋ค. ๊ณ ๋ คํด ๋ณผ ๋งํ ๋ช ๊ฐ์ง ๋์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๋ ๋ ํ๋กญ(Render Props): ๋ ๋ ํ๋กญ์ ๊ฐ์ด ํจ์์ธ prop์ ์ฌ์ฉํ์ฌ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ ๊ฐ์ ์ฝ๋๋ฅผ ๊ณต์ ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ปดํฌ๋ํธ์ ๋ ๋๋ง์ ์ปค์คํฐ๋ง์ด์งํ ์ ์๋ค๋ ์ ์์ ๋ณตํฉ ์ปดํฌ๋ํธ์ ์ ์ฌํฉ๋๋ค.
- ๊ณ ์ฐจ ์ปดํฌ๋ํธ(HOCs): HOC๋ ์ปดํฌ๋ํธ๋ฅผ ์ธ์๋ก ๋ฐ์ ์๋กญ๊ณ ํฅ์๋ ์ปดํฌ๋ํธ๋ฅผ ๋ฐํํ๋ ํจ์์ ๋๋ค. ์ปดํฌ๋ํธ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ ๋์์ ์์ ํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
- ๋ฆฌ์กํธ ํ (React Hooks): ํ ์ ์ฌ์ฉํ๋ฉด ํจ์ํ ์ปดํฌ๋ํธ์์ ์ํ ๋ฐ ๊ธฐํ ๋ฆฌ์กํธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ก์ง์ ์ถ์ถํ๊ณ ์ปดํฌ๋ํธ ๊ฐ์ ๊ณต์ ํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
๋ณตํฉ ์ปดํฌ๋ํธ ํจํด์ ๋ฆฌ์กํธ์์ ์ ์ฐํ๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ ์ ์ธ์ ์ธ ์ปดํฌ๋ํธ API๋ฅผ ๊ตฌ์ถํ๋ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ปจํ ์คํธ์ ์กฐํฉ์ ํ์ฉํ์ฌ, ๋ณต์กํ ๊ตฌํ ์ธ๋ถ ์ฌํญ์ ์ถ์ํํ๋ฉด์ ์ฌ์ฉ์์๊ฒ ์ธ๋ฐํ ์ ์ด๊ถ์ ๋ถ์ฌํ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ํจํด์ ๊ตฌํํ๊ธฐ ์ ์ ์ฅ๋จ์ ๊ณผ ์ ์ฌ์ ์ธ ํจ์ ์ ์ ์คํ๊ฒ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ณตํฉ ์ปดํฌ๋ํธ์ ๊ธฐ๋ณธ ์์น์ ์ดํดํ๊ณ ์ ์ ํ๊ฒ ์ ์ฉํจ์ผ๋ก์จ ๋ ์ ์ง๋ณด์ํ๊ธฐ ์ฝ๊ณ ํ์ฅ ๊ฐ๋ฅํ ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ ์ธ๊ณ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ํ๋ฅญํ ๊ฒฝํ์ ๋ณด์ฅํ๊ธฐ ์ํด ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ๋ ํญ์ ์ ๊ทผ์ฑ, ๊ตญ์ ํ, ์ฑ๋ฅ์ ์ฐ์ ์ํด์ผ ํ๋ค๋ ์ ์ ๊ธฐ์ตํ์ธ์.
์ด 'ํฌ๊ด์ ์ธ' ๊ฐ์ด๋๋ ์ค๋ ๋ฐ๋ก ์ ์ฐํ๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ API๋ฅผ ๊ตฌ์ถํ๊ธฐ ์์ํ๋ ๋ฐ ํ์ํ ๋ฆฌ์กํธ ๋ณตํฉ ์ปดํฌ๋ํธ์ ๋ํ ๋ชจ๋ ๊ฒ์ ๋ค๋ฃจ์์ต๋๋ค.