시스템에서 Redux를 포함한 개발 순서를 추천드리겠습니다:
먼저 해야 하는 이유: 데이터 흐름 구조 확립
TypeScript
React
Redux Toolkit
axios.interceptors.request.use((config) => {
const token = getToken();
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
});
export const mesApi = createApi({
baseQuery: fetchBaseQuery({
baseUrl: '/api',
prepareHeaders: (headers, { getState }) => {
const token = selectToken(getState());
if (token) {
headers.set('authorization', `Bearer ${token}`);
}
return headers;
},
}),
endpoints: (builder) => ({
getEquipmentStatus: builder.query({
query: (id) => `equipment/${id}/status`,
providesTags: ['Equipment']
}),
updateProduction: builder.mutation({
query: (data) => ({
url: 'production',
method: 'POST',
body: data
}),
invalidatesTags: ['Production']
})
})
});
const ProtectedRoute = ({ children, requiredRole }) => {
const user = useSelector(selectUser);
if (!user || !hasPermission(user.role, requiredRole)) {
return <Navigate to="/unauthorized" />;
}
return children;
};
const RealTimeChart = ({ data, dataKey }) => {
return (
<LineChart width={600} height={400} data={data}>
<XAxis dataKey="timestamp" />
<YAxis />
<Tooltip />
<Line
type="monotone"
dataKey={dataKey}
stroke="#8884d8"
isAnimationActive={false}
/>
</LineChart>
);
};
이 문서는 지속적으로 업데이트되어야 하며, 팀의 피드백과 프로젝트 요구사항에 따라 조정될 수 있습니다.