From 0d5e7a697576159d582c0011b047f6bbaa2ce434 Mon Sep 17 00:00:00 2001 From: Sang-Ho Jeon <67211899+Sang-Ho-Jeon@users.noreply.github.com> Date: Wed, 8 Jan 2025 14:41:50 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8=20?= =?UTF-8?q?=EC=A2=85=ED=95=A9=20=EB=8C=80=EC=8B=9C=EB=B3=B4=EB=93=9C=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 검색 및 필터링 기능 구현 - 프로젝트 현황 조회 기능 구현 - MSW를 통한 API 연동 테스트 --- app/layout.tsx | 16 +- src/api/projects.ts | 8 +- src/components/common/BasicTable.tsx | 135 +- src/components/common/CustomBox.tsx | 27 + src/components/common/Loading.tsx | 12 + src/components/common/MSWComponent.tsx | 26 + src/components/common/Pagination.tsx | 3 +- src/components/common/ProjectsStatusCard.tsx | 2 +- src/components/common/ProjectsStatusCards.tsx | 67 +- src/components/common/SearchSection.tsx | 86 +- src/components/common/SelectBox.tsx | 37 + src/components/common/SidebarTab.tsx | 13 +- src/components/pages/ProjectsPage/index.tsx | 20 +- src/components/ui/native-select.tsx | 57 + src/data/projects_mock_data.json | 4014 +++++++++-------- src/data/projects_page_1.json | 62 - src/data/projects_page_2.json | 62 - src/data/projects_page_3.json | 42 - src/mocks/handlers.ts | 92 +- src/mocks/index.ts | 2 +- src/types/project.ts | 8 +- src/utils/getTranslatedStatus.ts | 13 + src/utils/temp.ts | 0 23 files changed, 2507 insertions(+), 2297 deletions(-) create mode 100644 src/components/common/CustomBox.tsx create mode 100644 src/components/common/Loading.tsx create mode 100644 src/components/common/MSWComponent.tsx create mode 100644 src/components/common/SelectBox.tsx create mode 100644 src/components/ui/native-select.tsx delete mode 100644 src/data/projects_page_1.json delete mode 100644 src/data/projects_page_2.json delete mode 100644 src/data/projects_page_3.json create mode 100644 src/utils/getTranslatedStatus.ts delete mode 100644 src/utils/temp.ts diff --git a/app/layout.tsx b/app/layout.tsx index 6f29ba9..58dd2b2 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -5,14 +5,16 @@ import { Provider } from "@/src/components/ui/provider"; import { Box, Container, Flex } from "@chakra-ui/react"; import Header from "@/src/components/layouts/Header"; import Sidebar from "@/src/components/layouts/Sidebar"; +import { MSWComponent } from "@/src/components/common/MSWComponent"; export const metadata: Metadata = { title: "FlowSync", - description: "Generated by create next app", + description: "The World Best PMS Service", }; const RootLayout = (props: { children: React.ReactNode }) => { const { children } = props; + const useMsw = process.env.USE_MSW === "true"; return ( @@ -24,6 +26,7 @@ const RootLayout = (props: { children: React.ReactNode }) => { flexDirection="row" margin={0} padding={0} + bg="gray.50" > { height="100%" align="center" justify="center" - bg="gray.50" p={6} > - - {children} + + {useMsw ? {children} : children} diff --git a/src/api/projects.ts b/src/api/projects.ts index b6b7929..e7ed18c 100644 --- a/src/api/projects.ts +++ b/src/api/projects.ts @@ -3,12 +3,12 @@ import { BoardResponse, ProjectProps } from "@/src/types"; export const fetchProjects = async ( currentPage: number, - pageSize: number + pageSize: number, + query: string = "", // 검색어 + filter: string = "" // 필터링 값 ): Promise> => { - console.log("Fetching projects with params:", { currentPage, pageSize }); - const response = await axiosInstance.get("/projects", { - params: { currentPage, pageSize } + params: { currentPage, pageSize, query, filter }, }); return response.data; }; diff --git a/src/components/common/BasicTable.tsx b/src/components/common/BasicTable.tsx index c6e89e5..0b8ad6b 100644 --- a/src/components/common/BasicTable.tsx +++ b/src/components/common/BasicTable.tsx @@ -1,10 +1,15 @@ "use client"; -import { useEffect, useState, useCallback } from "react"; -import { Stack, Table } from "@chakra-ui/react"; +import { useEffect, useState, useCallback, useRef } from "react"; +import { Box, Heading, Stack, Table } from "@chakra-ui/react"; import Pagination from "./Pagination"; import { fetchProjects } from "@/src/api/projects"; import { ProjectProps, BoardResponse, PaginationMeta } from "@/src/types"; +import { Loading } from "./Loading"; +import { CustomBox } from "./CustomBox"; +import { useRouter } from "next/navigation"; +import SearchSection from "./SearchSection"; +import { getTranslatedStatus } from "@/src/utils/getTranslatedStatus"; interface BasicTableProps { headerTitle: React.ReactNode; @@ -15,56 +20,128 @@ const BasicTable: React.FC = ({ headerTitle }) => { const [meta, setMeta] = useState(null); const [loading, setLoading] = useState(true); - const fetchData = useCallback( - async (page: number) => { - setLoading(true); - try { - const response: BoardResponse = await fetchProjects( - page - 1, // 서버에서 0-indexed 페이지를 사용 - meta?.pageSize || 5 - ); - setData(response.data); - setMeta(response.meta); - } catch (error) { - console.error("Failed to fetch data:", error); - } finally { - setLoading(false); - } - }, - [meta?.pageSize] - ); + const [query, setQuery] = useState(""); // 검색어 상태 + const [filter, setFilter] = useState(""); // 필터링 상태 + + // 최신 상태 값을 참조하기 위한 useRef + const queryRef = useRef(query); + const filterRef = useRef(filter); + + // query와 filter가 변경될 때 useRef 업데이트 + useEffect(() => { + queryRef.current = query; + }, [query]); + + useEffect(() => { + filterRef.current = filter; + }, [filter]); + + const router = useRouter(); + + const fetchData = useCallback(async (page: number, pageSize: number) => { + setLoading(true); + try { + const response: BoardResponse = await fetchProjects( + page - 1, // 서버에서 0-indexed 페이지를 사용 + pageSize, + queryRef.current, + filterRef.current + ); + setData(response.data); + setMeta(response.meta); + } catch (error) { + console.error("Failed to fetch data:", error); + } finally { + setLoading(false); + } + }, []); useEffect(() => { - fetchData(meta?.currentPage ? meta.currentPage + 1 : 1); // 초기 로드 또는 페이지 변경 시 데이터 가져오기 - }, [meta?.currentPage, fetchData]); + if (!meta) { + // 초기 로드 시 데이터 가져오기 + fetchData(1, 5); + } + }, [meta, fetchData]); const handlePageChange = (page: number) => { if (meta) { - setMeta({ ...meta, currentPage: page - 1 }); // 페이지 변경 + // 페이지 변경 시 새로운 데이터를 가져오기 + fetchData(page, meta.pageSize || 5); + setMeta((prev) => ({ ...prev!, currentPage: page - 1 })); + } + }; + + const handleSearch = (newQuery: string, newFilter: string) => { + if (newQuery !== query) { + setQuery(newQuery); + } + if (newFilter !== filter) { + setFilter(newFilter); } + fetchData(1, 5); + }; + + const handleRowClick = (id: number) => { + router.push(`/projects/${id}`); }; return ( + + 프로젝트 목록 + + {headerTitle} {loading ? ( - Loading... + ) : ( data.map((item) => ( - + handleRowClick(item.id)} + css={{ + "& > td": { + textAlign: "center", + }, + }} + > {item.projectName} {item.client} {item.developer} - {item.contractStage} - {item.progressStage} - {item.startDate} - {item.endDate} + + + + {getTranslatedStatus(item.projectStatus)} + + + + + + {item.progressStepName} + + + {item.startAt} + {item.closeAt} )) )} diff --git a/src/components/common/CustomBox.tsx b/src/components/common/CustomBox.tsx new file mode 100644 index 0000000..b19a431 --- /dev/null +++ b/src/components/common/CustomBox.tsx @@ -0,0 +1,27 @@ +import { Box, Text } from "@chakra-ui/react"; + +interface CustomBoxProps { + children: string; +} + +export const CustomBox = ({ children }: CustomBoxProps) => { + const color = children === "진행중" ? "#21A366" : "#505050"; + return ( + + {children} + + ); +}; diff --git a/src/components/common/Loading.tsx b/src/components/common/Loading.tsx new file mode 100644 index 0000000..3de27dc --- /dev/null +++ b/src/components/common/Loading.tsx @@ -0,0 +1,12 @@ +import { Spinner, Text, VStack } from "@chakra-ui/react"; + +export const Loading = () => { + return ( + + + + Loading... + + + ); +}; diff --git a/src/components/common/MSWComponent.tsx b/src/components/common/MSWComponent.tsx new file mode 100644 index 0000000..f1e5bbc --- /dev/null +++ b/src/components/common/MSWComponent.tsx @@ -0,0 +1,26 @@ +"use client"; + +import { useEffect, useState } from "react"; + +export const MSWComponent = ({ children }: { children: React.ReactNode }) => { + const [mswReady, setMswReady] = useState(false); + useEffect(() => { + const init = async () => { + const initMsw = await import("@/src/mocks/index").then( + (res) => res.initMSW + ); + await initMsw(); + setMswReady(true); + }; + + if (!mswReady) { + init(); + } + }, [mswReady]); + + if (!mswReady) { + return null; + } + + return <>{children}; +}; diff --git a/src/components/common/Pagination.tsx b/src/components/common/Pagination.tsx index 7d0e388..39746dd 100644 --- a/src/components/common/Pagination.tsx +++ b/src/components/common/Pagination.tsx @@ -8,8 +8,7 @@ interface PaginationProps { const Pagination: React.FC = ({ meta, onPageChange }) => { const { currentPage, totalPages, isFirstPage, isLastPage } = meta; // 필요한 데이터만 추출 - const maxVisibleButtons = 10; // 한 번에 보여줄 페이지 번호 개수 - + const maxVisibleButtons = 5; // 한 번에 보여줄 페이지 번호 개수 // 현재 페이지 그룹 계산 const currentGroup = Math.ceil(currentPage / maxVisibleButtons); const startPage = (currentGroup - 1) * maxVisibleButtons + 1; diff --git a/src/components/common/ProjectsStatusCard.tsx b/src/components/common/ProjectsStatusCard.tsx index 7fba09a..59b2019 100644 --- a/src/components/common/ProjectsStatusCard.tsx +++ b/src/components/common/ProjectsStatusCard.tsx @@ -12,7 +12,7 @@ const StatusCard: React.FC = ({ count, label, iconSrc }) => { return ( = ({ title }) => { - // 목데이터 (백엔드에서 받은 데이터로 대체 가능) - const data = [ - { count: 3, label: "계약", iconSrc: "/contract.png" }, - { count: 2, label: "진행 중", iconSrc: "/running.png" }, - { count: 4, label: "납품 완료", iconSrc: "/complete.png" }, - { count: 1, label: "하자 보수", iconSrc: "/support.png" }, - ]; + const [data, setData] = useState< + { count: number; label: string; iconSrc: string }[] + >([]); + const [loading, setLoading] = useState(true); + + useEffect(() => { + const fetchStatusSummary = async () => { + try { + setLoading(true); + const apiBaseUrl = process.env.NEXT_PUBLIC_API_BASE_URL; + const response = await axios.get( + `${apiBaseUrl}/projects/status-summary` + ); + + const { statusSummary, total } = response.data; + + // 데이터 매핑 + const mappedData = [ + { count: total, label: "전체", iconSrc: "/contract.png" }, + { + count: statusSummary["contract"] || 0, + label: "계약", + iconSrc: "/contract.png", + }, + { + count: statusSummary["inProgress"] || 0, + label: "진행 중", + iconSrc: "/running.png", + }, + { + count: statusSummary["completed"] || 0, + label: "납품 완료", + iconSrc: "/complete.png", + }, + { + count: statusSummary["maintenance"] || 0, + label: "하자 보수", + iconSrc: "/support.png", + }, + ]; + + setData(mappedData); + } catch (error) { + console.error("Failed to fetch status summary:", error); + } finally { + setLoading(false); + } + }; + + fetchStatusSummary(); + }, []); + + if (loading) { + return ; + } return ( diff --git a/src/components/common/SearchSection.tsx b/src/components/common/SearchSection.tsx index 983e797..ec67c79 100644 --- a/src/components/common/SearchSection.tsx +++ b/src/components/common/SearchSection.tsx @@ -1,36 +1,70 @@ "use client"; -import { HStack, Input, Button, Heading, Box } from "@chakra-ui/react"; -import { ChangeEvent, useState } from "react"; +import { HStack, Input, Button, Box, Flex } from "@chakra-ui/react"; +import { ChangeEvent, KeyboardEvent } from "react"; +import { SelectBox } from "./SelectBox"; -const SearchSection = () => { - const [query, setQuery] = useState(""); +interface SearchSectionProps { + query: string; + filter: string; + onQueryChange: (value: string) => void; + onFilterChange: (value: string) => void; + onSearch: (query: string, filter: string) => void; +} - const handleSearch = () => { - console.log("검색어:", query); - // 검색 로직 추가 가능 +const SearchSection: React.FC = ({ + query, + filter, + onQueryChange, + onFilterChange, + onSearch, +}) => { + // Enter 키 입력 처리 함수 + const handleKeyPress = (e: KeyboardEvent) => { + if (e.key === "Enter") { + onSearch(query, filter); + } }; - return ( - - 프로젝트 목록 - - - ) => - setQuery(e.target.value) - } - /> - - + + + ) => + onQueryChange(e.target.value) + } + onKeyDown={handleKeyPress} + width="400px" + /> + + + + onFilterChange(value)} + > + + + + + + + + + ); }; diff --git a/src/components/common/SelectBox.tsx b/src/components/common/SelectBox.tsx new file mode 100644 index 0000000..386ba49 --- /dev/null +++ b/src/components/common/SelectBox.tsx @@ -0,0 +1,37 @@ +import { + NativeSelectField, + NativeSelectRoot, +} from "@/src/components/ui/native-select"; +import { ChangeEvent, ReactNode } from "react"; + +interface SelectBoxProps { + children: ReactNode; + placeholder: string; + value: string; + onChange?: (value: string) => void; +} + +export const SelectBox: React.FC = ({ + children, + placeholder, + value, + onChange, +}) => { + const handleChange = (event: ChangeEvent) => { + const selectedValue = event.target.value; + if (onChange) { + onChange(selectedValue); // 부모 컴포넌트로 선택된 값 전달 + } + }; + + return ( + + + + {children} + + + ); +}; diff --git a/src/components/common/SidebarTab.tsx b/src/components/common/SidebarTab.tsx index 1d89013..1f971c9 100644 --- a/src/components/common/SidebarTab.tsx +++ b/src/components/common/SidebarTab.tsx @@ -7,16 +7,17 @@ export default function SidebarTab({ }: { projectStatus: string; }) { - const list = Data.filter((Data) => - projectStatus === "완료 프로젝트" - ? Data.progressStage === "완료" - : Data.progressStage === "진행 중" - ) + const list = Data.data + .filter((item) => + projectStatus === "완료 프로젝트" + ? item.projectStatus === "completed" + : item.projectStatus === "inProgress" + ) .slice(0, 5) .map((item) => { return ( - {item.projectName} + {item.projectName}
); diff --git a/src/components/pages/ProjectsPage/index.tsx b/src/components/pages/ProjectsPage/index.tsx index 79c48f3..f549ca6 100644 --- a/src/components/pages/ProjectsPage/index.tsx +++ b/src/components/pages/ProjectsPage/index.tsx @@ -1,20 +1,26 @@ -import { Box, Flex, Table } from "@chakra-ui/react"; +import { Table } from "@chakra-ui/react"; import BasicTable from "@/src/components/common/BasicTable"; -import SearchSection from "@/src/components/common/SearchSection"; -import StatusCards from "@/src/components/common/ProjectsStatusCards"; +import ProjectStatusCards from "@/src/components/common/ProjectsStatusCards"; export default function Home() { return ( <> - - + + th": { + // 모든 자식 `th` 태그에 스타일 적용 + textAlign: "center", + }, + }} + > 프로젝트명 고객사 개발사 - 계약 단계 + 프로젝트 상태 진행 단계 프로젝트 시작일 diff --git a/src/components/ui/native-select.tsx b/src/components/ui/native-select.tsx new file mode 100644 index 0000000..9e6ebf5 --- /dev/null +++ b/src/components/ui/native-select.tsx @@ -0,0 +1,57 @@ +"use client" + +import { NativeSelect as Select } from "@chakra-ui/react" +import * as React from "react" + +interface NativeSelectRootProps extends Select.RootProps { + icon?: React.ReactNode +} + +export const NativeSelectRoot = React.forwardRef< + HTMLDivElement, + NativeSelectRootProps +>(function NativeSelect(props, ref) { + const { icon, children, ...rest } = props + return ( + + {children} + {icon} + + ) +}) + +interface NativeSelectItem { + value: string + label: string + disabled?: boolean +} + +interface NativeSelectField extends Select.FieldProps { + items?: Array +} + +export const NativeSelectField = React.forwardRef< + HTMLSelectElement, + NativeSelectField +>(function NativeSelectField(props, ref) { + const { items: itemsProp, children, ...rest } = props + + const items = React.useMemo( + () => + itemsProp?.map((item) => + typeof item === "string" ? { label: item, value: item } : item, + ), + [itemsProp], + ) + + return ( + + {children} + {items?.map((item) => ( + + ))} + + ) +}) diff --git a/src/data/projects_mock_data.json b/src/data/projects_mock_data.json index 6562abd..a1eed16 100644 --- a/src/data/projects_mock_data.json +++ b/src/data/projects_mock_data.json @@ -1,2002 +1,2012 @@ -[ - { - "id": 1, - "projectName": "ERP 시스템 구축 #1", - "client": "DataCloud", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "완료", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 2, - "projectName": "모바일 앱 개발 #2", - "client": "CloudWorks", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 3, - "projectName": "AI 플랫폼 개발 #3", - "client": "DataCloud", - "developer": "Tech Solutions", - "contractStage": "계약 완료", - "progressStage": "대기", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 4, - "projectName": "모바일 앱 개발 #4", - "client": "CloudWorks", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 5, - "projectName": "웹사이트 리뉴얼 #5", - "client": "Startup Inc", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 6, - "projectName": "ERP 시스템 구축 #6", - "client": "ABC Corp", - "developer": "MobilePro", - "contractStage": "계약 완료", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 7, - "projectName": "클라우드 인프라 설계 #7", - "client": "DataCloud", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 8, - "projectName": "ERP 시스템 구축 #8", - "client": "CloudWorks", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 9, - "projectName": "AI 플랫폼 개발 #9", - "client": "DataCloud", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 10, - "projectName": "웹사이트 리뉴얼 #10", - "client": "Startup Inc", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "완료", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 11, - "projectName": "웹사이트 리뉴얼 #11", - "client": "ABC Corp", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 12, - "projectName": "ERP 시스템 구축 #12", - "client": "ABC Corp", - "developer": "Tech Solutions", - "contractStage": "계약 완료", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 13, - "projectName": "AI 플랫폼 개발 #13", - "client": "Startup Inc", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 14, - "projectName": "AI 플랫폼 개발 #14", - "client": "DataCloud", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 15, - "projectName": "모바일 앱 개발 #15", - "client": "ABC Corp", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 16, - "projectName": "모바일 앱 개발 #16", - "client": "ABC Corp", - "developer": "Tech Solutions", - "contractStage": "계약 완료", - "progressStage": "대기", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 17, - "projectName": "ERP 시스템 구축 #17", - "client": "XYZ Ltd", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 18, - "projectName": "웹사이트 리뉴얼 #18", - "client": "CloudWorks", - "developer": "Tech Solutions", - "contractStage": "계약 완료", - "progressStage": "설계 단계", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 19, - "projectName": "모바일 앱 개발 #19", - "client": "CloudWorks", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 20, - "projectName": "클라우드 인프라 설계 #20", - "client": "CloudWorks", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 21, - "projectName": "클라우드 인프라 설계 #21", - "client": "ABC Corp", - "developer": "Tech Solutions", - "contractStage": "계약 진행 중", - "progressStage": "설계 단계", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 22, - "projectName": "AI 플랫폼 개발 #22", - "client": "ABC Corp", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 23, - "projectName": "모바일 앱 개발 #23", - "client": "ABC Corp", - "developer": "Tech Solutions", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 24, - "projectName": "모바일 앱 개발 #24", - "client": "XYZ Ltd", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 25, - "projectName": "ERP 시스템 구축 #25", - "client": "ABC Corp", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 26, - "projectName": "웹사이트 리뉴얼 #26", - "client": "XYZ Ltd", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 27, - "projectName": "웹사이트 리뉴얼 #27", - "client": "DataCloud", - "developer": "MobilePro", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 28, - "projectName": "모바일 앱 개발 #28", - "client": "XYZ Ltd", - "developer": "Tech Solutions", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 29, - "projectName": "AI 플랫폼 개발 #29", - "client": "ABC Corp", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 30, - "projectName": "AI 플랫폼 개발 #30", - "client": "ABC Corp", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 31, - "projectName": "AI 플랫폼 개발 #31", - "client": "DataCloud", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "완료", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 32, - "projectName": "클라우드 인프라 설계 #32", - "client": "CloudWorks", - "developer": "FutureSoft", - "contractStage": "계약 완료", - "progressStage": "대기", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 33, - "projectName": "ERP 시스템 구축 #33", - "client": "DataCloud", - "developer": "MobilePro", - "contractStage": "계약 완료", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 34, - "projectName": "AI 플랫폼 개발 #34", - "client": "ABC Corp", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 35, - "projectName": "클라우드 인프라 설계 #35", - "client": "XYZ Ltd", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 36, - "projectName": "AI 플랫폼 개발 #36", - "client": "CloudWorks", - "developer": "MobilePro", - "contractStage": "계약 진행 중", - "progressStage": "설계 단계", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 37, - "projectName": "클라우드 인프라 설계 #37", - "client": "DataCloud", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "완료", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 38, - "projectName": "ERP 시스템 구축 #38", - "client": "CloudWorks", - "developer": "Tech Solutions", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 39, - "projectName": "ERP 시스템 구축 #39", - "client": "DataCloud", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 40, - "projectName": "AI 플랫폼 개발 #40", - "client": "CloudWorks", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "완료", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 41, - "projectName": "클라우드 인프라 설계 #41", - "client": "DataCloud", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 42, - "projectName": "ERP 시스템 구축 #42", - "client": "DataCloud", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 43, - "projectName": "AI 플랫폼 개발 #43", - "client": "CloudWorks", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 44, - "projectName": "클라우드 인프라 설계 #44", - "client": "CloudWorks", - "developer": "MobilePro", - "contractStage": "계약 완료", - "progressStage": "설계 단계", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 45, - "projectName": "ERP 시스템 구축 #45", - "client": "ABC Corp", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 46, - "projectName": "모바일 앱 개발 #46", - "client": "Startup Inc", - "developer": "Tech Solutions", - "contractStage": "계약 완료", - "progressStage": "설계 단계", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 47, - "projectName": "AI 플랫폼 개발 #47", - "client": "XYZ Ltd", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "완료", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 48, - "projectName": "AI 플랫폼 개발 #48", - "client": "ABC Corp", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 49, - "projectName": "클라우드 인프라 설계 #49", - "client": "ABC Corp", - "developer": "Tech Solutions", - "contractStage": "계약 완료", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 50, - "projectName": "AI 플랫폼 개발 #50", - "client": "Startup Inc", - "developer": "Tech Solutions", - "contractStage": "계약 완료", - "progressStage": "설계 단계", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 51, - "projectName": "웹사이트 리뉴얼 #51", - "client": "DataCloud", - "developer": "Tech Solutions", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 52, - "projectName": "웹사이트 리뉴얼 #52", - "client": "ABC Corp", - "developer": "WebCrew", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 53, - "projectName": "ERP 시스템 구축 #53", - "client": "CloudWorks", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 54, - "projectName": "AI 플랫폼 개발 #54", - "client": "ABC Corp", - "developer": "FutureSoft", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 55, - "projectName": "클라우드 인프라 설계 #55", - "client": "CloudWorks", - "developer": "MobilePro", - "contractStage": "계약 진행 중", - "progressStage": "완료", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 56, - "projectName": "모바일 앱 개발 #56", - "client": "Startup Inc", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 57, - "projectName": "웹사이트 리뉴얼 #57", - "client": "ABC Corp", - "developer": "Tech Solutions", - "contractStage": "계약 진행 중", - "progressStage": "완료", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 58, - "projectName": "AI 플랫폼 개발 #58", - "client": "XYZ Ltd", - "developer": "MobilePro", - "contractStage": "계약 진행 중", - "progressStage": "완료", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 59, - "projectName": "클라우드 인프라 설계 #59", - "client": "DataCloud", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 60, - "projectName": "클라우드 인프라 설계 #60", - "client": "XYZ Ltd", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "완료", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 61, - "projectName": "모바일 앱 개발 #61", - "client": "CloudWorks", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "완료", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 62, - "projectName": "ERP 시스템 구축 #62", - "client": "ABC Corp", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 63, - "projectName": "모바일 앱 개발 #63", - "client": "CloudWorks", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 64, - "projectName": "AI 플랫폼 개발 #64", - "client": "Startup Inc", - "developer": "Tech Solutions", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 65, - "projectName": "모바일 앱 개발 #65", - "client": "CloudWorks", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "완료", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 66, - "projectName": "웹사이트 리뉴얼 #66", - "client": "Startup Inc", - "developer": "MobilePro", - "contractStage": "계약 완료", - "progressStage": "설계 단계", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 67, - "projectName": "ERP 시스템 구축 #67", - "client": "CloudWorks", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "설계 단계", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 68, - "projectName": "웹사이트 리뉴얼 #68", - "client": "Startup Inc", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 69, - "projectName": "모바일 앱 개발 #69", - "client": "Startup Inc", - "developer": "FutureSoft", - "contractStage": "계약 진행 중", - "progressStage": "설계 단계", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 70, - "projectName": "클라우드 인프라 설계 #70", - "client": "ABC Corp", - "developer": "WebCrew", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 71, - "projectName": "AI 플랫폼 개발 #71", - "client": "Startup Inc", - "developer": "Tech Solutions", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 72, - "projectName": "웹사이트 리뉴얼 #72", - "client": "XYZ Ltd", - "developer": "WebCrew", - "contractStage": "계약 완료", - "progressStage": "진행 중", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 73, - "projectName": "모바일 앱 개발 #73", - "client": "CloudWorks", - "developer": "MobilePro", - "contractStage": "계약 완료", - "progressStage": "설계 단계", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 74, - "projectName": "웹사이트 리뉴얼 #74", - "client": "DataCloud", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 75, - "projectName": "클라우드 인프라 설계 #75", - "client": "Startup Inc", - "developer": "FutureSoft", - "contractStage": "계약 진행 중", - "progressStage": "설계 단계", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 76, - "projectName": "AI 플랫폼 개발 #76", - "client": "ABC Corp", - "developer": "FutureSoft", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 77, - "projectName": "ERP 시스템 구축 #77", - "client": "DataCloud", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 78, - "projectName": "모바일 앱 개발 #78", - "client": "DataCloud", - "developer": "Tech Solutions", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 79, - "projectName": "모바일 앱 개발 #79", - "client": "Startup Inc", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 80, - "projectName": "모바일 앱 개발 #80", - "client": "XYZ Ltd", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 81, - "projectName": "웹사이트 리뉴얼 #81", - "client": "XYZ Ltd", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "완료", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 82, - "projectName": "ERP 시스템 구축 #82", - "client": "Startup Inc", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "완료", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 83, - "projectName": "웹사이트 리뉴얼 #83", - "client": "CloudWorks", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 84, - "projectName": "ERP 시스템 구축 #84", - "client": "DataCloud", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 85, - "projectName": "웹사이트 리뉴얼 #85", - "client": "XYZ Ltd", - "developer": "WebCrew", - "contractStage": "계약 완료", - "progressStage": "대기", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 86, - "projectName": "AI 플랫폼 개발 #86", - "client": "CloudWorks", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 87, - "projectName": "ERP 시스템 구축 #87", - "client": "XYZ Ltd", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "완료", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 88, - "projectName": "웹사이트 리뉴얼 #88", - "client": "DataCloud", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 89, - "projectName": "ERP 시스템 구축 #89", - "client": "CloudWorks", - "developer": "MobilePro", - "contractStage": "계약 완료", - "progressStage": "진행 중", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 90, - "projectName": "모바일 앱 개발 #90", - "client": "DataCloud", - "developer": "FutureSoft", - "contractStage": "계약 진행 중", - "progressStage": "완료", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 91, - "projectName": "AI 플랫폼 개발 #91", - "client": "CloudWorks", - "developer": "MobilePro", - "contractStage": "계약 진행 중", - "progressStage": "설계 단계", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 92, - "projectName": "클라우드 인프라 설계 #92", - "client": "Startup Inc", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 93, - "projectName": "클라우드 인프라 설계 #93", - "client": "CloudWorks", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "완료", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 94, - "projectName": "AI 플랫폼 개발 #94", - "client": "Startup Inc", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 95, - "projectName": "모바일 앱 개발 #95", - "client": "Startup Inc", - "developer": "FutureSoft", - "contractStage": "계약 진행 중", - "progressStage": "설계 단계", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 96, - "projectName": "클라우드 인프라 설계 #96", - "client": "ABC Corp", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 97, - "projectName": "ERP 시스템 구축 #97", - "client": "DataCloud", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "설계 단계", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 98, - "projectName": "웹사이트 리뉴얼 #98", - "client": "CloudWorks", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "대기", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 99, - "projectName": "웹사이트 리뉴얼 #99", - "client": "DataCloud", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 100, - "projectName": "클라우드 인프라 설계 #100", - "client": "Startup Inc", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 101, - "projectName": "AI 플랫폼 개발 #101", - "client": "Startup Inc", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 102, - "projectName": "웹사이트 리뉴얼 #102", - "client": "ABC Corp", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 103, - "projectName": "AI 플랫폼 개발 #103", - "client": "CloudWorks", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "완료", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 104, - "projectName": "클라우드 인프라 설계 #104", - "client": "Startup Inc", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "완료", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 105, - "projectName": "클라우드 인프라 설계 #105", - "client": "CloudWorks", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "설계 단계", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 106, - "projectName": "모바일 앱 개발 #106", - "client": "Startup Inc", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 107, - "projectName": "ERP 시스템 구축 #107", - "client": "ABC Corp", - "developer": "FutureSoft", - "contractStage": "계약 완료", - "progressStage": "설계 단계", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 108, - "projectName": "웹사이트 리뉴얼 #108", - "client": "DataCloud", - "developer": "FutureSoft", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 109, - "projectName": "웹사이트 리뉴얼 #109", - "client": "XYZ Ltd", - "developer": "Tech Solutions", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 110, - "projectName": "모바일 앱 개발 #110", - "client": "ABC Corp", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 111, - "projectName": "ERP 시스템 구축 #111", - "client": "ABC Corp", - "developer": "FutureSoft", - "contractStage": "계약 완료", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 112, - "projectName": "모바일 앱 개발 #112", - "client": "Startup Inc", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 113, - "projectName": "모바일 앱 개발 #113", - "client": "Startup Inc", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 114, - "projectName": "AI 플랫폼 개발 #114", - "client": "XYZ Ltd", - "developer": "FutureSoft", - "contractStage": "계약 완료", - "progressStage": "대기", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 115, - "projectName": "모바일 앱 개발 #115", - "client": "Startup Inc", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 116, - "projectName": "웹사이트 리뉴얼 #116", - "client": "ABC Corp", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 117, - "projectName": "AI 플랫폼 개발 #117", - "client": "Startup Inc", - "developer": "FutureSoft", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 118, - "projectName": "ERP 시스템 구축 #118", - "client": "Startup Inc", - "developer": "FutureSoft", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 119, - "projectName": "ERP 시스템 구축 #119", - "client": "CloudWorks", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 120, - "projectName": "클라우드 인프라 설계 #120", - "client": "XYZ Ltd", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 121, - "projectName": "AI 플랫폼 개발 #121", - "client": "ABC Corp", - "developer": "FutureSoft", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 122, - "projectName": "클라우드 인프라 설계 #122", - "client": "Startup Inc", - "developer": "WebCrew", - "contractStage": "계약 완료", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 123, - "projectName": "클라우드 인프라 설계 #123", - "client": "ABC Corp", - "developer": "FutureSoft", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 124, - "projectName": "ERP 시스템 구축 #124", - "client": "DataCloud", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 125, - "projectName": "AI 플랫폼 개발 #125", - "client": "ABC Corp", - "developer": "Tech Solutions", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 126, - "projectName": "모바일 앱 개발 #126", - "client": "XYZ Ltd", - "developer": "FutureSoft", - "contractStage": "계약 완료", - "progressStage": "진행 중", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 127, - "projectName": "모바일 앱 개발 #127", - "client": "Startup Inc", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 128, - "projectName": "ERP 시스템 구축 #128", - "client": "CloudWorks", - "developer": "MobilePro", - "contractStage": "계약 완료", - "progressStage": "설계 단계", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 129, - "projectName": "클라우드 인프라 설계 #129", - "client": "CloudWorks", - "developer": "Tech Solutions", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 130, - "projectName": "클라우드 인프라 설계 #130", - "client": "DataCloud", - "developer": "FutureSoft", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 131, - "projectName": "웹사이트 리뉴얼 #131", - "client": "XYZ Ltd", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 132, - "projectName": "클라우드 인프라 설계 #132", - "client": "XYZ Ltd", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 133, - "projectName": "AI 플랫폼 개발 #133", - "client": "CloudWorks", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 134, - "projectName": "모바일 앱 개발 #134", - "client": "DataCloud", - "developer": "FutureSoft", - "contractStage": "계약 완료", - "progressStage": "설계 단계", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 135, - "projectName": "웹사이트 리뉴얼 #135", - "client": "DataCloud", - "developer": "FutureSoft", - "contractStage": "계약 진행 중", - "progressStage": "설계 단계", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 136, - "projectName": "AI 플랫폼 개발 #136", - "client": "XYZ Ltd", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "진행 중", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 137, - "projectName": "AI 플랫폼 개발 #137", - "client": "ABC Corp", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 138, - "projectName": "웹사이트 리뉴얼 #138", - "client": "ABC Corp", - "developer": "FutureSoft", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 139, - "projectName": "AI 플랫폼 개발 #139", - "client": "CloudWorks", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "설계 단계", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 140, - "projectName": "클라우드 인프라 설계 #140", - "client": "CloudWorks", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 141, - "projectName": "ERP 시스템 구축 #141", - "client": "XYZ Ltd", - "developer": "MobilePro", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 142, - "projectName": "AI 플랫폼 개발 #142", - "client": "Startup Inc", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 143, - "projectName": "클라우드 인프라 설계 #143", - "client": "CloudWorks", - "developer": "Tech Solutions", - "contractStage": "계약 완료", - "progressStage": "설계 단계", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 144, - "projectName": "AI 플랫폼 개발 #144", - "client": "Startup Inc", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 145, - "projectName": "클라우드 인프라 설계 #145", - "client": "CloudWorks", - "developer": "FutureSoft", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 146, - "projectName": "모바일 앱 개발 #146", - "client": "CloudWorks", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 147, - "projectName": "클라우드 인프라 설계 #147", - "client": "Startup Inc", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "설계 단계", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 148, - "projectName": "웹사이트 리뉴얼 #148", - "client": "Startup Inc", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "완료", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 149, - "projectName": "ERP 시스템 구축 #149", - "client": "Startup Inc", - "developer": "FutureSoft", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 150, - "projectName": "클라우드 인프라 설계 #150", - "client": "DataCloud", - "developer": "MobilePro", - "contractStage": "계약 진행 중", - "progressStage": "완료", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 151, - "projectName": "AI 플랫폼 개발 #151", - "client": "XYZ Ltd", - "developer": "WebCrew", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 152, - "projectName": "ERP 시스템 구축 #152", - "client": "DataCloud", - "developer": "MobilePro", - "contractStage": "계약 진행 중", - "progressStage": "설계 단계", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 153, - "projectName": "ERP 시스템 구축 #153", - "client": "ABC Corp", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "설계 단계", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 154, - "projectName": "클라우드 인프라 설계 #154", - "client": "XYZ Ltd", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 155, - "projectName": "클라우드 인프라 설계 #155", - "client": "CloudWorks", - "developer": "FutureSoft", - "contractStage": "계약 완료", - "progressStage": "대기", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 156, - "projectName": "ERP 시스템 구축 #156", - "client": "DataCloud", - "developer": "FutureSoft", - "contractStage": "계약 완료", - "progressStage": "설계 단계", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 157, - "projectName": "AI 플랫폼 개발 #157", - "client": "ABC Corp", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "완료", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 158, - "projectName": "ERP 시스템 구축 #158", - "client": "CloudWorks", - "developer": "Tech Solutions", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 159, - "projectName": "ERP 시스템 구축 #159", - "client": "Startup Inc", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 160, - "projectName": "ERP 시스템 구축 #160", - "client": "DataCloud", - "developer": "FutureSoft", - "contractStage": "계약 완료", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 161, - "projectName": "모바일 앱 개발 #161", - "client": "XYZ Ltd", - "developer": "FutureSoft", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 162, - "projectName": "ERP 시스템 구축 #162", - "client": "CloudWorks", - "developer": "FutureSoft", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 163, - "projectName": "클라우드 인프라 설계 #163", - "client": "CloudWorks", - "developer": "MobilePro", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 164, - "projectName": "ERP 시스템 구축 #164", - "client": "Startup Inc", - "developer": "FutureSoft", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 165, - "projectName": "AI 플랫폼 개발 #165", - "client": "DataCloud", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "완료", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 166, - "projectName": "웹사이트 리뉴얼 #166", - "client": "DataCloud", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 167, - "projectName": "클라우드 인프라 설계 #167", - "client": "XYZ Ltd", - "developer": "FutureSoft", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 168, - "projectName": "클라우드 인프라 설계 #168", - "client": "ABC Corp", - "developer": "FutureSoft", - "contractStage": "계약 완료", - "progressStage": "설계 단계", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 169, - "projectName": "모바일 앱 개발 #169", - "client": "CloudWorks", - "developer": "MobilePro", - "contractStage": "계약 완료", - "progressStage": "대기", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 170, - "projectName": "AI 플랫폼 개발 #170", - "client": "XYZ Ltd", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "진행 중", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 171, - "projectName": "모바일 앱 개발 #171", - "client": "CloudWorks", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 172, - "projectName": "웹사이트 리뉴얼 #172", - "client": "DataCloud", - "developer": "Tech Solutions", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 173, - "projectName": "클라우드 인프라 설계 #173", - "client": "Startup Inc", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 174, - "projectName": "AI 플랫폼 개발 #174", - "client": "CloudWorks", - "developer": "MobilePro", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 175, - "projectName": "클라우드 인프라 설계 #175", - "client": "ABC Corp", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 176, - "projectName": "ERP 시스템 구축 #176", - "client": "ABC Corp", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 177, - "projectName": "클라우드 인프라 설계 #177", - "client": "ABC Corp", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 178, - "projectName": "AI 플랫폼 개발 #178", - "client": "XYZ Ltd", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 179, - "projectName": "AI 플랫폼 개발 #179", - "client": "ABC Corp", - "developer": "FutureSoft", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 180, - "projectName": "ERP 시스템 구축 #180", - "client": "Startup Inc", - "developer": "WebCrew", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 181, - "projectName": "AI 플랫폼 개발 #181", - "client": "XYZ Ltd", - "developer": "Tech Solutions", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 182, - "projectName": "ERP 시스템 구축 #182", - "client": "DataCloud", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 183, - "projectName": "클라우드 인프라 설계 #183", - "client": "XYZ Ltd", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 184, - "projectName": "클라우드 인프라 설계 #184", - "client": "ABC Corp", - "developer": "WebCrew", - "contractStage": "계약 진행 중", - "progressStage": "완료", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - }, - { - "id": 185, - "projectName": "모바일 앱 개발 #185", - "client": "ABC Corp", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 186, - "projectName": "ERP 시스템 구축 #186", - "client": "DataCloud", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 187, - "projectName": "ERP 시스템 구축 #187", - "client": "XYZ Ltd", - "developer": "Tech Solutions", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 188, - "projectName": "AI 플랫폼 개발 #188", - "client": "XYZ Ltd", - "developer": "FutureSoft", - "contractStage": "계약 진행 중", - "progressStage": "대기", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 189, - "projectName": "모바일 앱 개발 #189", - "client": "XYZ Ltd", - "developer": "MobilePro", - "contractStage": "계약 완료", - "progressStage": "진행 중", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 190, - "projectName": "ERP 시스템 구축 #190", - "client": "ABC Corp", - "developer": "MobilePro", - "contractStage": "계약 검토 중", - "progressStage": "대기", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 191, - "projectName": "AI 플랫폼 개발 #191", - "client": "DataCloud", - "developer": "InfraBuilders", - "contractStage": "계약 진행 중", - "progressStage": "완료", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 192, - "projectName": "ERP 시스템 구축 #192", - "client": "XYZ Ltd", - "developer": "FutureSoft", - "contractStage": "계약 진행 중", - "progressStage": "진행 중", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 193, - "projectName": "모바일 앱 개발 #193", - "client": "CloudWorks", - "developer": "Tech Solutions", - "contractStage": "계약 진행 중", - "progressStage": "완료", - "startDate": "2023-09-01", - "endDate": "2024-02-28" - }, - { - "id": 194, - "projectName": "ERP 시스템 구축 #194", - "client": "XYZ Ltd", - "developer": "InfraBuilders", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-03-01", - "endDate": "2024-11-30" - }, - { - "id": 195, - "projectName": "AI 플랫폼 개발 #195", - "client": "Startup Inc", - "developer": "Tech Solutions", - "contractStage": "계약 진행 중", - "progressStage": "설계 단계", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 196, - "projectName": "AI 플랫폼 개발 #196", - "client": "DataCloud", - "developer": "Tech Solutions", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 197, - "projectName": "AI 플랫폼 개발 #197", - "client": "XYZ Ltd", - "developer": "FutureSoft", - "contractStage": "계약 검토 중", - "progressStage": "설계 단계", - "startDate": "2024-01-01", - "endDate": "2024-12-31" - }, - { - "id": 198, - "projectName": "웹사이트 리뉴얼 #198", - "client": "XYZ Ltd", - "developer": "MobilePro", - "contractStage": "계약 완료", - "progressStage": "진행 중", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 199, - "projectName": "웹사이트 리뉴얼 #199", - "client": "DataCloud", - "developer": "FutureSoft", - "contractStage": "계약 완료", - "progressStage": "완료", - "startDate": "2024-05-15", - "endDate": "2024-09-15" - }, - { - "id": 200, - "projectName": "클라우드 인프라 설계 #200", - "client": "CloudWorks", - "developer": "InfraBuilders", - "contractStage": "계약 검토 중", - "progressStage": "진행 중", - "startDate": "2024-02-01", - "endDate": "2024-08-31" - } -] +{ + "data": [ + { + "id": 1, + "projectName": "스마트 팩토리 솔루션", + "client": "AutoAI", + "developer": "CloudSecure", + "projectStatus": "inProgress", + "progressStepName": "화면설계", + "startAt": "2023-02-21", + "closeAt": "2025-01-14" + }, + { + "id": 2, + "projectName": "스마트 팩토리 솔루션", + "client": "AutoAI", + "developer": "SmartDrive", + "projectStatus": "deleted", + "progressStepName": "요구사항정의", + "startAt": "2022-11-09", + "closeAt": "2023-07-04" + }, + { + "id": 3, + "projectName": "가상 회의 플랫폼", + "client": "AutoAI", + "developer": "CloudSecure", + "projectStatus": "completed", + "progressStepName": "개발", + "startAt": "2022-08-11", + "closeAt": "2023-12-28" + }, + { + "id": 4, + "projectName": "사이버 보안 툴킷", + "client": "AutoAI", + "developer": "MedTech", + "projectStatus": "paused", + "progressStepName": "요구사항정의", + "startAt": "2022-11-15", + "closeAt": "2022-12-29" + }, + { + "id": 5, + "projectName": "AR/VR 콘텐츠 제작", + "client": "RoboTech", + "developer": "SmartDrive", + "projectStatus": "deleted", + "progressStepName": "디자인", + "startAt": "2022-04-11", + "closeAt": "2023-05-13" + }, + { + "id": 6, + "projectName": "전자상거래 플랫폼", + "client": "RoboTech", + "developer": "ControlExperts", + "projectStatus": "inProgress", + "progressStepName": "디자인", + "startAt": "2023-12-26", + "closeAt": "2024-05-18" + }, + { + "id": 7, + "projectName": "헬스 모니터링 디바이스", + "client": "SecureCloud", + "developer": "SensorPro", + "projectStatus": "contract", + "progressStepName": "퍼블리싱", + "startAt": "2023-09-19", + "closeAt": "2024-01-17" + }, + { + "id": 8, + "projectName": "디지털 헬스케어 앱", + "client": "NetSensors", + "developer": "AviationExperts", + "projectStatus": "deleted", + "progressStepName": "요구사항정의", + "startAt": "2022-02-01", + "closeAt": "2023-10-31" + }, + { + "id": 9, + "projectName": "게임 개발 프로젝트", + "client": "DesignPro", + "developer": "ControlExperts", + "projectStatus": "inProgress", + "progressStepName": "검수", + "startAt": "2022-01-21", + "closeAt": "2023-02-19" + }, + { + "id": 10, + "projectName": "게임 개발 프로젝트", + "client": "DroneTech", + "developer": "3DExperts", + "projectStatus": "contract", + "progressStepName": "퍼블리싱", + "startAt": "2022-10-20", + "closeAt": "2024-03-26" + }, + { + "id": 11, + "projectName": "가상 회의 플랫폼", + "client": "RoboTech", + "developer": "AviationExperts", + "projectStatus": "deleted", + "progressStepName": "개발", + "startAt": "2023-02-27", + "closeAt": "2024-05-17" + }, + { + "id": 12, + "projectName": "사이버 보안 툴킷", + "client": "DesignPro", + "developer": "AviationExperts", + "projectStatus": "inProgress", + "progressStepName": "화면설계", + "startAt": "2023-03-03", + "closeAt": "2024-05-18" + }, + { + "id": 13, + "projectName": "디지털 헬스케어 앱", + "client": "NetSensors", + "developer": "CloudSecure", + "projectStatus": "deleted", + "progressStepName": "요구사항정의", + "startAt": "2022-05-16", + "closeAt": "2022-07-21" + }, + { + "id": 14, + "projectName": "CRM 시스템 업그레이드", + "client": "DroneTech", + "developer": "SensorPro", + "projectStatus": "inProgress", + "progressStepName": "요구사항정의", + "startAt": "2022-09-22", + "closeAt": "2024-01-06" + }, + { + "id": 15, + "projectName": "ERP 시스템 구현", + "client": "HealthSmart", + "developer": "ControlExperts", + "projectStatus": "maintenance", + "progressStepName": "요구사항정의", + "startAt": "2022-04-15", + "closeAt": "2022-09-07" + }, + { + "id": 16, + "projectName": "모바일 앱 개발", + "client": "RoboTech", + "developer": "AviationExperts", + "projectStatus": "completed", + "progressStepName": "검수", + "startAt": "2023-09-20", + "closeAt": "2024-06-18" + }, + { + "id": 17, + "projectName": "마케팅 자동화 도구", + "client": "SecureCloud", + "developer": "AviationExperts", + "projectStatus": "maintenance", + "progressStepName": "화면설계", + "startAt": "2023-01-22", + "closeAt": "2023-07-04" + }, + { + "id": 18, + "projectName": "증강현실 플랫폼", + "client": "DesignPro", + "developer": "SmartDrive", + "projectStatus": "deleted", + "progressStepName": "퍼블리싱", + "startAt": "2023-08-06", + "closeAt": "2024-07-10" + }, + { + "id": 19, + "projectName": "가상 회의 플랫폼", + "client": "AutoAI", + "developer": "ControlExperts", + "projectStatus": "completed", + "progressStepName": "화면설계", + "startAt": "2022-09-30", + "closeAt": "2024-06-19" + }, + { + "id": 20, + "projectName": "비디오 스트리밍 플랫폼", + "client": "NetSensors", + "developer": "3DExperts", + "projectStatus": "completed", + "progressStepName": "화면설계", + "startAt": "2023-12-26", + "closeAt": "2024-04-21" + }, + { + "id": 21, + "projectName": "지능형 교통 시스템", + "client": "AutoAI", + "developer": "MedTech", + "projectStatus": "inProgress", + "progressStepName": "화면설계", + "startAt": "2023-02-22", + "closeAt": "2024-09-10" + }, + { + "id": 22, + "projectName": "ERP 시스템 구현", + "client": "AutoAI", + "developer": "ControlExperts", + "projectStatus": "inProgress", + "progressStepName": "검수", + "startAt": "2023-10-05", + "closeAt": "2025-08-11" + }, + { + "id": 23, + "projectName": "사물인터넷 디바이스 네트워크", + "client": "RoboTech", + "developer": "SensorPro", + "projectStatus": "paused", + "progressStepName": "디자인", + "startAt": "2023-07-19", + "closeAt": "2024-08-22" + }, + { + "id": 24, + "projectName": "스마트 팩토리 솔루션", + "client": "RoboTech", + "developer": "AviationExperts", + "projectStatus": "maintenance", + "progressStepName": "퍼블리싱", + "startAt": "2022-08-20", + "closeAt": "2022-08-26" + }, + { + "id": 25, + "projectName": "고객 데이터 분석 엔진", + "client": "RoboTech", + "developer": "SmartDrive", + "projectStatus": "maintenance", + "progressStepName": "디자인", + "startAt": "2022-11-20", + "closeAt": "2023-12-10" + }, + { + "id": 26, + "projectName": "인공지능 챗봇 개발", + "client": "RoboTech", + "developer": "SmartDrive", + "projectStatus": "contract", + "progressStepName": "검수", + "startAt": "2023-12-04", + "closeAt": "2024-09-26" + }, + { + "id": 27, + "projectName": "모바일 앱 개발", + "client": "DroneTech", + "developer": "AviationExperts", + "projectStatus": "paused", + "progressStepName": "퍼블리싱", + "startAt": "2022-05-10", + "closeAt": "2023-06-22" + }, + { + "id": 28, + "projectName": "CRM 시스템 업그레이드", + "client": "SecureCloud", + "developer": "ControlExperts", + "projectStatus": "contract", + "progressStepName": "화면설계", + "startAt": "2022-03-17", + "closeAt": "2023-01-20" + }, + { + "id": 29, + "projectName": "드론 비행 제어 플랫폼", + "client": "DesignPro", + "developer": "AviationExperts", + "projectStatus": "maintenance", + "progressStepName": "퍼블리싱", + "startAt": "2022-11-21", + "closeAt": "2024-02-26" + }, + { + "id": 30, + "projectName": "CRM 시스템 업그레이드", + "client": "RoboTech", + "developer": "CloudSecure", + "projectStatus": "inProgress", + "progressStepName": "개발", + "startAt": "2022-10-14", + "closeAt": "2024-01-06" + }, + { + "id": 31, + "projectName": "ERP 시스템 구현", + "client": "DesignPro", + "developer": "3DExperts", + "projectStatus": "inProgress", + "progressStepName": "개발", + "startAt": "2023-05-15", + "closeAt": "2024-08-09" + }, + { + "id": 32, + "projectName": "디지털 헬스케어 앱", + "client": "HealthSmart", + "developer": "ControlExperts", + "projectStatus": "contract", + "progressStepName": "화면설계", + "startAt": "2023-07-15", + "closeAt": "2023-09-27" + }, + { + "id": 33, + "projectName": "증강현실 플랫폼", + "client": "AutoAI", + "developer": "3DExperts", + "projectStatus": "maintenance", + "progressStepName": "디자인", + "startAt": "2022-07-01", + "closeAt": "2023-03-08" + }, + { + "id": 34, + "projectName": "빅데이터 분석 시스템", + "client": "HealthSmart", + "developer": "SmartDrive", + "projectStatus": "inProgress", + "progressStepName": "디자인", + "startAt": "2023-06-30", + "closeAt": "2024-07-08" + }, + { + "id": 35, + "projectName": "디지털 헬스케어 앱", + "client": "DesignPro", + "developer": "SmartDrive", + "projectStatus": "deleted", + "progressStepName": "퍼블리싱", + "startAt": "2023-12-29", + "closeAt": "2024-07-08" + }, + { + "id": 36, + "projectName": "디지털 헬스케어 앱", + "client": "NetSensors", + "developer": "SmartDrive", + "projectStatus": "contract", + "progressStepName": "검수", + "startAt": "2022-06-04", + "closeAt": "2023-03-15" + }, + { + "id": 37, + "projectName": "인사 관리 솔루션", + "client": "DesignPro", + "developer": "SensorPro", + "projectStatus": "deleted", + "progressStepName": "퍼블리싱", + "startAt": "2023-08-03", + "closeAt": "2025-03-16" + }, + { + "id": 38, + "projectName": "전자 서명 인증 서비스", + "client": "RoboTech", + "developer": "3DExperts", + "projectStatus": "completed", + "progressStepName": "퍼블리싱", + "startAt": "2023-02-21", + "closeAt": "2025-01-31" + }, + { + "id": 39, + "projectName": "AR/VR 콘텐츠 제작", + "client": "AutoAI", + "developer": "CloudSecure", + "projectStatus": "maintenance", + "progressStepName": "디자인", + "startAt": "2023-11-27", + "closeAt": "2024-11-24" + }, + { + "id": 40, + "projectName": "고객 데이터 분석 엔진", + "client": "SecureCloud", + "developer": "SmartDrive", + "projectStatus": "inProgress", + "progressStepName": "요구사항정의", + "startAt": "2023-10-14", + "closeAt": "2024-04-11" + }, + { + "id": 41, + "projectName": "스마트 팩토리 솔루션", + "client": "AutoAI", + "developer": "SensorPro", + "projectStatus": "deleted", + "progressStepName": "검수", + "startAt": "2023-06-07", + "closeAt": "2024-10-12" + }, + { + "id": 42, + "projectName": "드론 비행 제어 플랫폼", + "client": "SecureCloud", + "developer": "SmartDrive", + "projectStatus": "completed", + "progressStepName": "검수", + "startAt": "2022-03-13", + "closeAt": "2023-08-09" + }, + { + "id": 43, + "projectName": "전자상거래 플랫폼", + "client": "NetSensors", + "developer": "CloudSecure", + "projectStatus": "completed", + "progressStepName": "개발", + "startAt": "2022-09-29", + "closeAt": "2023-08-11" + }, + { + "id": 44, + "projectName": "CRM 시스템 업그레이드", + "client": "NetSensors", + "developer": "ControlExperts", + "projectStatus": "contract", + "progressStepName": "검수", + "startAt": "2022-05-19", + "closeAt": "2022-08-11" + }, + { + "id": 45, + "projectName": "비디오 스트리밍 플랫폼", + "client": "RoboTech", + "developer": "CloudSecure", + "projectStatus": "paused", + "progressStepName": "화면설계", + "startAt": "2023-01-06", + "closeAt": "2023-10-16" + }, + { + "id": 46, + "projectName": "디지털 헬스케어 앱", + "client": "NetSensors", + "developer": "AviationExperts", + "projectStatus": "paused", + "progressStepName": "검수", + "startAt": "2022-05-11", + "closeAt": "2024-01-23" + }, + { + "id": 47, + "projectName": "가상 회의 플랫폼", + "client": "RoboTech", + "developer": "SensorPro", + "projectStatus": "paused", + "progressStepName": "퍼블리싱", + "startAt": "2022-08-08", + "closeAt": "2023-12-02" + }, + { + "id": 48, + "projectName": "교육 플랫폼 개발", + "client": "RoboTech", + "developer": "MedTech", + "projectStatus": "contract", + "progressStepName": "요구사항정의", + "startAt": "2022-12-09", + "closeAt": "2024-05-24" + }, + { + "id": 49, + "projectName": "AR/VR 콘텐츠 제작", + "client": "NetSensors", + "developer": "SmartDrive", + "projectStatus": "contract", + "progressStepName": "검수", + "startAt": "2022-05-24", + "closeAt": "2023-01-25" + }, + { + "id": 50, + "projectName": "지능형 교통 시스템", + "client": "DroneTech", + "developer": "3DExperts", + "projectStatus": "paused", + "progressStepName": "요구사항정의", + "startAt": "2022-09-12", + "closeAt": "2024-04-15" + }, + { + "id": 51, + "projectName": "스마트 홈 관리 시스템", + "client": "HealthSmart", + "developer": "AviationExperts", + "projectStatus": "inProgress", + "progressStepName": "퍼블리싱", + "startAt": "2022-03-24", + "closeAt": "2022-09-03" + }, + { + "id": 52, + "projectName": "지능형 교통 시스템", + "client": "DroneTech", + "developer": "SmartDrive", + "projectStatus": "deleted", + "progressStepName": "디자인", + "startAt": "2023-12-01", + "closeAt": "2025-01-08" + }, + { + "id": 53, + "projectName": "스마트 홈 관리 시스템", + "client": "SecureCloud", + "developer": "AviationExperts", + "projectStatus": "contract", + "progressStepName": "개발", + "startAt": "2022-10-10", + "closeAt": "2024-01-20" + }, + { + "id": 54, + "projectName": "게임 개발 프로젝트", + "client": "HealthSmart", + "developer": "SmartDrive", + "projectStatus": "inProgress", + "progressStepName": "개발", + "startAt": "2023-02-27", + "closeAt": "2023-10-06" + }, + { + "id": 55, + "projectName": "로보틱스 제어 소프트웨어", + "client": "DroneTech", + "developer": "3DExperts", + "projectStatus": "completed", + "progressStepName": "퍼블리싱", + "startAt": "2022-11-18", + "closeAt": "2023-09-03" + }, + { + "id": 56, + "projectName": "사물인터넷 디바이스 네트워크", + "client": "RoboTech", + "developer": "CloudSecure", + "projectStatus": "maintenance", + "progressStepName": "디자인", + "startAt": "2022-10-22", + "closeAt": "2024-06-11" + }, + { + "id": 57, + "projectName": "모바일 앱 개발", + "client": "HealthSmart", + "developer": "ControlExperts", + "projectStatus": "maintenance", + "progressStepName": "퍼블리싱", + "startAt": "2022-07-02", + "closeAt": "2024-04-20" + }, + { + "id": 58, + "projectName": "전자 서명 인증 서비스", + "client": "HealthSmart", + "developer": "SensorPro", + "projectStatus": "paused", + "progressStepName": "개발", + "startAt": "2023-07-12", + "closeAt": "2025-06-25" + }, + { + "id": 59, + "projectName": "AR/VR 콘텐츠 제작", + "client": "HealthSmart", + "developer": "ControlExperts", + "projectStatus": "completed", + "progressStepName": "개발", + "startAt": "2022-01-29", + "closeAt": "2022-01-31" + }, + { + "id": 60, + "projectName": "블록체인 네트워크 설계", + "client": "SecureCloud", + "developer": "SmartDrive", + "projectStatus": "maintenance", + "progressStepName": "퍼블리싱", + "startAt": "2022-08-17", + "closeAt": "2023-09-29" + }, + { + "id": 61, + "projectName": "CRM 시스템 업그레이드", + "client": "AutoAI", + "developer": "MedTech", + "projectStatus": "contract", + "progressStepName": "개발", + "startAt": "2022-06-24", + "closeAt": "2024-03-17" + }, + { + "id": 62, + "projectName": "전자상거래 플랫폼", + "client": "HealthSmart", + "developer": "SmartDrive", + "projectStatus": "deleted", + "progressStepName": "요구사항정의", + "startAt": "2022-05-24", + "closeAt": "2023-05-24" + }, + { + "id": 63, + "projectName": "빅데이터 분석 시스템", + "client": "AutoAI", + "developer": "AviationExperts", + "projectStatus": "contract", + "progressStepName": "화면설계", + "startAt": "2023-06-23", + "closeAt": "2023-10-18" + }, + { + "id": 64, + "projectName": "지능형 교통 시스템", + "client": "DroneTech", + "developer": "3DExperts", + "projectStatus": "inProgress", + "progressStepName": "화면설계", + "startAt": "2023-08-17", + "closeAt": "2023-11-07" + }, + { + "id": 65, + "projectName": "클라우드 백업 솔루션", + "client": "HealthSmart", + "developer": "SmartDrive", + "projectStatus": "paused", + "progressStepName": "검수", + "startAt": "2023-05-13", + "closeAt": "2023-07-27" + }, + { + "id": 66, + "projectName": "전자 서명 인증 서비스", + "client": "AutoAI", + "developer": "CloudSecure", + "projectStatus": "paused", + "progressStepName": "검수", + "startAt": "2023-04-20", + "closeAt": "2024-07-25" + }, + { + "id": 67, + "projectName": "비디오 스트리밍 플랫폼", + "client": "SecureCloud", + "developer": "AviationExperts", + "projectStatus": "paused", + "progressStepName": "퍼블리싱", + "startAt": "2022-07-06", + "closeAt": "2023-08-19" + }, + { + "id": 68, + "projectName": "빅데이터 분석 시스템", + "client": "NetSensors", + "developer": "ControlExperts", + "projectStatus": "contract", + "progressStepName": "개발", + "startAt": "2022-06-02", + "closeAt": "2023-10-26" + }, + { + "id": 69, + "projectName": "블록체인 네트워크 설계", + "client": "AutoAI", + "developer": "CloudSecure", + "projectStatus": "paused", + "progressStepName": "검수", + "startAt": "2022-12-31", + "closeAt": "2024-01-01" + }, + { + "id": 70, + "projectName": "빅데이터 분석 시스템", + "client": "DroneTech", + "developer": "CloudSecure", + "projectStatus": "maintenance", + "progressStepName": "화면설계", + "startAt": "2022-07-22", + "closeAt": "2023-03-07" + }, + { + "id": 71, + "projectName": "전자상거래 플랫폼", + "client": "SecureCloud", + "developer": "CloudSecure", + "projectStatus": "deleted", + "progressStepName": "퍼블리싱", + "startAt": "2023-03-27", + "closeAt": "2023-12-19" + }, + { + "id": 72, + "projectName": "블록체인 네트워크 설계", + "client": "NetSensors", + "developer": "3DExperts", + "projectStatus": "completed", + "progressStepName": "디자인", + "startAt": "2023-06-14", + "closeAt": "2023-08-01" + }, + { + "id": 73, + "projectName": "모바일 앱 개발", + "client": "NetSensors", + "developer": "MedTech", + "projectStatus": "contract", + "progressStepName": "요구사항정의", + "startAt": "2022-05-26", + "closeAt": "2023-07-13" + }, + { + "id": 74, + "projectName": "전자 서명 인증 서비스", + "client": "AutoAI", + "developer": "3DExperts", + "projectStatus": "inProgress", + "progressStepName": "화면설계", + "startAt": "2023-01-17", + "closeAt": "2024-10-06" + }, + { + "id": 75, + "projectName": "로보틱스 제어 소프트웨어", + "client": "SecureCloud", + "developer": "MedTech", + "projectStatus": "paused", + "progressStepName": "개발", + "startAt": "2022-10-04", + "closeAt": "2024-07-25" + }, + { + "id": 76, + "projectName": "클라우드 백업 솔루션", + "client": "AutoAI", + "developer": "ControlExperts", + "projectStatus": "paused", + "progressStepName": "검수", + "startAt": "2023-05-22", + "closeAt": "2024-07-06" + }, + { + "id": 77, + "projectName": "AR/VR 콘텐츠 제작", + "client": "RoboTech", + "developer": "ControlExperts", + "projectStatus": "maintenance", + "progressStepName": "화면설계", + "startAt": "2022-12-08", + "closeAt": "2024-04-26" + }, + { + "id": 78, + "projectName": "인공지능 챗봇 개발", + "client": "DesignPro", + "developer": "SmartDrive", + "projectStatus": "paused", + "progressStepName": "검수", + "startAt": "2022-01-11", + "closeAt": "2022-07-19" + }, + { + "id": 79, + "projectName": "사물인터넷 디바이스 네트워크", + "client": "DroneTech", + "developer": "3DExperts", + "projectStatus": "inProgress", + "progressStepName": "디자인", + "startAt": "2022-02-17", + "closeAt": "2022-10-05" + }, + { + "id": 80, + "projectName": "로보틱스 제어 소프트웨어", + "client": "AutoAI", + "developer": "SmartDrive", + "projectStatus": "deleted", + "progressStepName": "요구사항정의", + "startAt": "2023-12-30", + "closeAt": "2025-11-15" + }, + { + "id": 81, + "projectName": "CRM 시스템 업그레이드", + "client": "RoboTech", + "developer": "3DExperts", + "projectStatus": "contract", + "progressStepName": "요구사항정의", + "startAt": "2022-03-23", + "closeAt": "2023-05-28" + }, + { + "id": 82, + "projectName": "인공지능 챗봇 개발", + "client": "HealthSmart", + "developer": "MedTech", + "projectStatus": "deleted", + "progressStepName": "검수", + "startAt": "2023-11-30", + "closeAt": "2025-04-12" + }, + { + "id": 83, + "projectName": "가상 회의 플랫폼", + "client": "DroneTech", + "developer": "AviationExperts", + "projectStatus": "maintenance", + "progressStepName": "요구사항정의", + "startAt": "2023-02-10", + "closeAt": "2023-04-11" + }, + { + "id": 84, + "projectName": "사물인터넷 디바이스 네트워크", + "client": "DroneTech", + "developer": "MedTech", + "projectStatus": "contract", + "progressStepName": "퍼블리싱", + "startAt": "2023-07-26", + "closeAt": "2023-12-03" + }, + { + "id": 85, + "projectName": "모바일 앱 개발", + "client": "AutoAI", + "developer": "CloudSecure", + "projectStatus": "contract", + "progressStepName": "퍼블리싱", + "startAt": "2023-06-07", + "closeAt": "2025-05-01" + }, + { + "id": 86, + "projectName": "스마트 홈 관리 시스템", + "client": "DroneTech", + "developer": "CloudSecure", + "projectStatus": "completed", + "progressStepName": "디자인", + "startAt": "2023-10-10", + "closeAt": "2025-06-02" + }, + { + "id": 87, + "projectName": "모바일 앱 개발", + "client": "DroneTech", + "developer": "SmartDrive", + "projectStatus": "inProgress", + "progressStepName": "퍼블리싱", + "startAt": "2023-09-19", + "closeAt": "2024-09-17" + }, + { + "id": 88, + "projectName": "로보틱스 제어 소프트웨어", + "client": "NetSensors", + "developer": "3DExperts", + "projectStatus": "paused", + "progressStepName": "개발", + "startAt": "2023-01-01", + "closeAt": "2023-10-25" + }, + { + "id": 89, + "projectName": "ERP 시스템 구현", + "client": "RoboTech", + "developer": "MedTech", + "projectStatus": "inProgress", + "progressStepName": "디자인", + "startAt": "2023-04-24", + "closeAt": "2024-07-09" + }, + { + "id": 90, + "projectName": "소셜 미디어 분석 엔진", + "client": "NetSensors", + "developer": "3DExperts", + "projectStatus": "completed", + "progressStepName": "검수", + "startAt": "2022-04-16", + "closeAt": "2022-12-31" + }, + { + "id": 91, + "projectName": "교육 플랫폼 개발", + "client": "DroneTech", + "developer": "ControlExperts", + "projectStatus": "maintenance", + "progressStepName": "요구사항정의", + "startAt": "2022-11-28", + "closeAt": "2024-08-05" + }, + { + "id": 92, + "projectName": "드론 비행 제어 플랫폼", + "client": "RoboTech", + "developer": "ControlExperts", + "projectStatus": "deleted", + "progressStepName": "개발", + "startAt": "2023-04-25", + "closeAt": "2024-04-18" + }, + { + "id": 93, + "projectName": "헬스 모니터링 디바이스", + "client": "RoboTech", + "developer": "CloudSecure", + "projectStatus": "deleted", + "progressStepName": "요구사항정의", + "startAt": "2023-11-16", + "closeAt": "2023-11-23" + }, + { + "id": 94, + "projectName": "블록체인 네트워크 설계", + "client": "RoboTech", + "developer": "AviationExperts", + "projectStatus": "maintenance", + "progressStepName": "요구사항정의", + "startAt": "2023-11-13", + "closeAt": "2025-07-20" + }, + { + "id": 95, + "projectName": "인사 관리 솔루션", + "client": "RoboTech", + "developer": "3DExperts", + "projectStatus": "contract", + "progressStepName": "개발", + "startAt": "2022-10-01", + "closeAt": "2024-02-10" + }, + { + "id": 96, + "projectName": "빅데이터 분석 시스템", + "client": "HealthSmart", + "developer": "ControlExperts", + "projectStatus": "deleted", + "progressStepName": "요구사항정의", + "startAt": "2023-11-10", + "closeAt": "2024-12-01" + }, + { + "id": 97, + "projectName": "증강현실 플랫폼", + "client": "RoboTech", + "developer": "AviationExperts", + "projectStatus": "paused", + "progressStepName": "디자인", + "startAt": "2023-05-19", + "closeAt": "2023-07-25" + }, + { + "id": 98, + "projectName": "사물인터넷 디바이스 네트워크", + "client": "SecureCloud", + "developer": "MedTech", + "projectStatus": "deleted", + "progressStepName": "검수", + "startAt": "2023-05-05", + "closeAt": "2024-11-01" + }, + { + "id": 99, + "projectName": "ERP 시스템 구현", + "client": "HealthSmart", + "developer": "ControlExperts", + "projectStatus": "completed", + "progressStepName": "퍼블리싱", + "startAt": "2023-04-13", + "closeAt": "2024-03-11" + }, + { + "id": 100, + "projectName": "빅데이터 분석 시스템", + "client": "HealthSmart", + "developer": "SensorPro", + "projectStatus": "contract", + "progressStepName": "화면설계", + "startAt": "2022-07-02", + "closeAt": "2023-12-01" + }, + { + "id": 101, + "projectName": "스마트 홈 관리 시스템", + "client": "DesignPro", + "developer": "SensorPro", + "projectStatus": "maintenance", + "progressStepName": "개발", + "startAt": "2023-09-06", + "closeAt": "2025-01-19" + }, + { + "id": 102, + "projectName": "헬스 모니터링 디바이스", + "client": "DroneTech", + "developer": "CloudSecure", + "projectStatus": "completed", + "progressStepName": "퍼블리싱", + "startAt": "2023-07-28", + "closeAt": "2025-01-15" + }, + { + "id": 103, + "projectName": "로보틱스 제어 소프트웨어", + "client": "HealthSmart", + "developer": "3DExperts", + "projectStatus": "deleted", + "progressStepName": "검수", + "startAt": "2023-09-21", + "closeAt": "2025-01-26" + }, + { + "id": 104, + "projectName": "전자상거래 플랫폼", + "client": "DesignPro", + "developer": "SmartDrive", + "projectStatus": "contract", + "progressStepName": "퍼블리싱", + "startAt": "2022-02-12", + "closeAt": "2023-10-20" + }, + { + "id": 105, + "projectName": "가상 회의 플랫폼", + "client": "AutoAI", + "developer": "MedTech", + "projectStatus": "paused", + "progressStepName": "퍼블리싱", + "startAt": "2022-03-01", + "closeAt": "2023-10-06" + }, + { + "id": 106, + "projectName": "자율주행 시스템 개발", + "client": "SecureCloud", + "developer": "SmartDrive", + "projectStatus": "paused", + "progressStepName": "화면설계", + "startAt": "2022-06-21", + "closeAt": "2023-04-07" + }, + { + "id": 107, + "projectName": "게임 개발 프로젝트", + "client": "AutoAI", + "developer": "AviationExperts", + "projectStatus": "paused", + "progressStepName": "개발", + "startAt": "2022-11-25", + "closeAt": "2023-08-11" + }, + { + "id": 108, + "projectName": "비디오 스트리밍 플랫폼", + "client": "HealthSmart", + "developer": "3DExperts", + "projectStatus": "deleted", + "progressStepName": "퍼블리싱", + "startAt": "2022-10-15", + "closeAt": "2024-08-12" + }, + { + "id": 109, + "projectName": "인공지능 챗봇 개발", + "client": "NetSensors", + "developer": "MedTech", + "projectStatus": "inProgress", + "progressStepName": "디자인", + "startAt": "2023-05-25", + "closeAt": "2024-01-08" + }, + { + "id": 110, + "projectName": "증강현실 플랫폼", + "client": "NetSensors", + "developer": "ControlExperts", + "projectStatus": "maintenance", + "progressStepName": "퍼블리싱", + "startAt": "2023-05-17", + "closeAt": "2024-03-28" + }, + { + "id": 111, + "projectName": "가상 회의 플랫폼", + "client": "NetSensors", + "developer": "MedTech", + "projectStatus": "inProgress", + "progressStepName": "디자인", + "startAt": "2022-10-18", + "closeAt": "2023-11-01" + }, + { + "id": 112, + "projectName": "사물인터넷 디바이스 네트워크", + "client": "SecureCloud", + "developer": "MedTech", + "projectStatus": "paused", + "progressStepName": "개발", + "startAt": "2022-03-05", + "closeAt": "2023-03-24" + }, + { + "id": 113, + "projectName": "CRM 시스템 업그레이드", + "client": "RoboTech", + "developer": "3DExperts", + "projectStatus": "maintenance", + "progressStepName": "검수", + "startAt": "2022-07-07", + "closeAt": "2024-03-13" + }, + { + "id": 114, + "projectName": "드론 비행 제어 플랫폼", + "client": "NetSensors", + "developer": "MedTech", + "projectStatus": "contract", + "progressStepName": "개발", + "startAt": "2023-09-22", + "closeAt": "2024-06-12" + }, + { + "id": 115, + "projectName": "마케팅 자동화 도구", + "client": "DesignPro", + "developer": "CloudSecure", + "projectStatus": "deleted", + "progressStepName": "개발", + "startAt": "2023-08-30", + "closeAt": "2024-07-31" + }, + { + "id": 116, + "projectName": "빅데이터 분석 시스템", + "client": "DroneTech", + "developer": "SensorPro", + "projectStatus": "inProgress", + "progressStepName": "개발", + "startAt": "2023-01-24", + "closeAt": "2023-04-14" + }, + { + "id": 117, + "projectName": "고객 데이터 분석 엔진", + "client": "DesignPro", + "developer": "AviationExperts", + "projectStatus": "deleted", + "progressStepName": "퍼블리싱", + "startAt": "2022-06-08", + "closeAt": "2023-02-13" + }, + { + "id": 118, + "projectName": "가상 회의 플랫폼", + "client": "DroneTech", + "developer": "3DExperts", + "projectStatus": "maintenance", + "progressStepName": "화면설계", + "startAt": "2023-03-27", + "closeAt": "2024-03-20" + }, + { + "id": 119, + "projectName": "디지털 헬스케어 앱", + "client": "DroneTech", + "developer": "AviationExperts", + "projectStatus": "contract", + "progressStepName": "개발", + "startAt": "2023-03-23", + "closeAt": "2024-08-23" + }, + { + "id": 120, + "projectName": "헬스 모니터링 디바이스", + "client": "AutoAI", + "developer": "SensorPro", + "projectStatus": "inProgress", + "progressStepName": "개발", + "startAt": "2023-05-14", + "closeAt": "2024-01-05" + }, + { + "id": 121, + "projectName": "전자상거래 플랫폼", + "client": "DesignPro", + "developer": "MedTech", + "projectStatus": "paused", + "progressStepName": "퍼블리싱", + "startAt": "2023-09-16", + "closeAt": "2024-10-13" + }, + { + "id": 122, + "projectName": "전자상거래 플랫폼", + "client": "SecureCloud", + "developer": "MedTech", + "projectStatus": "deleted", + "progressStepName": "개발", + "startAt": "2023-07-09", + "closeAt": "2024-01-07" + }, + { + "id": 123, + "projectName": "마케팅 자동화 도구", + "client": "RoboTech", + "developer": "ControlExperts", + "projectStatus": "contract", + "progressStepName": "화면설계", + "startAt": "2023-05-17", + "closeAt": "2024-12-03" + }, + { + "id": 124, + "projectName": "게임 개발 프로젝트", + "client": "NetSensors", + "developer": "CloudSecure", + "projectStatus": "contract", + "progressStepName": "퍼블리싱", + "startAt": "2023-10-17", + "closeAt": "2023-12-02" + }, + { + "id": 125, + "projectName": "전자 서명 인증 서비스", + "client": "DesignPro", + "developer": "ControlExperts", + "projectStatus": "maintenance", + "progressStepName": "개발", + "startAt": "2023-10-17", + "closeAt": "2024-03-12" + }, + { + "id": 126, + "projectName": "CRM 시스템 업그레이드", + "client": "SecureCloud", + "developer": "MedTech", + "projectStatus": "maintenance", + "progressStepName": "퍼블리싱", + "startAt": "2022-02-28", + "closeAt": "2023-02-20" + }, + { + "id": 127, + "projectName": "게임 개발 프로젝트", + "client": "SecureCloud", + "developer": "3DExperts", + "projectStatus": "deleted", + "progressStepName": "디자인", + "startAt": "2022-05-02", + "closeAt": "2022-09-30" + }, + { + "id": 128, + "projectName": "가상 회의 플랫폼", + "client": "SecureCloud", + "developer": "AviationExperts", + "projectStatus": "completed", + "progressStepName": "검수", + "startAt": "2023-07-17", + "closeAt": "2025-04-10" + }, + { + "id": 129, + "projectName": "교육 플랫폼 개발", + "client": "RoboTech", + "developer": "3DExperts", + "projectStatus": "deleted", + "progressStepName": "퍼블리싱", + "startAt": "2022-08-23", + "closeAt": "2023-09-18" + }, + { + "id": 130, + "projectName": "자율주행 시스템 개발", + "client": "DroneTech", + "developer": "SensorPro", + "projectStatus": "deleted", + "progressStepName": "개발", + "startAt": "2023-09-29", + "closeAt": "2024-12-03" + }, + { + "id": 131, + "projectName": "디지털 헬스케어 앱", + "client": "NetSensors", + "developer": "SensorPro", + "projectStatus": "deleted", + "progressStepName": "개발", + "startAt": "2022-07-22", + "closeAt": "2023-06-03" + }, + { + "id": 132, + "projectName": "클라우드 백업 솔루션", + "client": "DesignPro", + "developer": "ControlExperts", + "projectStatus": "inProgress", + "progressStepName": "검수", + "startAt": "2023-10-10", + "closeAt": "2024-06-16" + }, + { + "id": 133, + "projectName": "드론 비행 제어 플랫폼", + "client": "RoboTech", + "developer": "CloudSecure", + "projectStatus": "deleted", + "progressStepName": "검수", + "startAt": "2022-02-26", + "closeAt": "2023-01-26" + }, + { + "id": 134, + "projectName": "헬스 모니터링 디바이스", + "client": "AutoAI", + "developer": "MedTech", + "projectStatus": "completed", + "progressStepName": "화면설계", + "startAt": "2023-12-09", + "closeAt": "2024-08-30" + }, + { + "id": 135, + "projectName": "가상 회의 플랫폼", + "client": "SecureCloud", + "developer": "3DExperts", + "projectStatus": "deleted", + "progressStepName": "퍼블리싱", + "startAt": "2023-04-23", + "closeAt": "2023-05-07" + }, + { + "id": 136, + "projectName": "디지털 헬스케어 앱", + "client": "DroneTech", + "developer": "AviationExperts", + "projectStatus": "inProgress", + "progressStepName": "퍼블리싱", + "startAt": "2022-06-30", + "closeAt": "2024-04-28" + }, + { + "id": 137, + "projectName": "가상 회의 플랫폼", + "client": "DesignPro", + "developer": "AviationExperts", + "projectStatus": "inProgress", + "progressStepName": "디자인", + "startAt": "2023-05-04", + "closeAt": "2023-12-22" + }, + { + "id": 138, + "projectName": "소셜 미디어 분석 엔진", + "client": "DesignPro", + "developer": "SensorPro", + "projectStatus": "contract", + "progressStepName": "검수", + "startAt": "2023-01-09", + "closeAt": "2024-03-01" + }, + { + "id": 139, + "projectName": "자율주행 시스템 개발", + "client": "NetSensors", + "developer": "ControlExperts", + "projectStatus": "contract", + "progressStepName": "퍼블리싱", + "startAt": "2022-09-25", + "closeAt": "2023-05-30" + }, + { + "id": 140, + "projectName": "IoT 플랫폼 구축", + "client": "RoboTech", + "developer": "MedTech", + "projectStatus": "completed", + "progressStepName": "요구사항정의", + "startAt": "2022-03-09", + "closeAt": "2023-10-22" + }, + { + "id": 141, + "projectName": "마케팅 자동화 도구", + "client": "HealthSmart", + "developer": "SensorPro", + "projectStatus": "inProgress", + "progressStepName": "검수", + "startAt": "2023-05-01", + "closeAt": "2024-02-27" + }, + { + "id": 142, + "projectName": "디지털 헬스케어 앱", + "client": "RoboTech", + "developer": "MedTech", + "projectStatus": "completed", + "progressStepName": "퍼블리싱", + "startAt": "2022-05-20", + "closeAt": "2023-11-06" + }, + { + "id": 143, + "projectName": "소셜 미디어 분석 엔진", + "client": "SecureCloud", + "developer": "AviationExperts", + "projectStatus": "maintenance", + "progressStepName": "화면설계", + "startAt": "2022-09-24", + "closeAt": "2023-12-21" + }, + { + "id": 144, + "projectName": "빅데이터 분석 시스템", + "client": "HealthSmart", + "developer": "AviationExperts", + "projectStatus": "maintenance", + "progressStepName": "디자인", + "startAt": "2022-06-24", + "closeAt": "2022-07-11" + }, + { + "id": 145, + "projectName": "전자 서명 인증 서비스", + "client": "HealthSmart", + "developer": "AviationExperts", + "projectStatus": "completed", + "progressStepName": "디자인", + "startAt": "2023-06-30", + "closeAt": "2024-06-04" + }, + { + "id": 146, + "projectName": "고객 데이터 분석 엔진", + "client": "RoboTech", + "developer": "ControlExperts", + "projectStatus": "completed", + "progressStepName": "디자인", + "startAt": "2022-09-26", + "closeAt": "2022-11-26" + }, + { + "id": 147, + "projectName": "증강현실 플랫폼", + "client": "NetSensors", + "developer": "CloudSecure", + "projectStatus": "contract", + "progressStepName": "디자인", + "startAt": "2022-05-04", + "closeAt": "2023-06-08" + }, + { + "id": 148, + "projectName": "증강현실 플랫폼", + "client": "DesignPro", + "developer": "CloudSecure", + "projectStatus": "maintenance", + "progressStepName": "퍼블리싱", + "startAt": "2023-12-28", + "closeAt": "2024-06-22" + }, + { + "id": 149, + "projectName": "증강현실 플랫폼", + "client": "DroneTech", + "developer": "CloudSecure", + "projectStatus": "maintenance", + "progressStepName": "검수", + "startAt": "2022-03-07", + "closeAt": "2023-03-28" + }, + { + "id": 150, + "projectName": "사이버 보안 툴킷", + "client": "SecureCloud", + "developer": "3DExperts", + "projectStatus": "deleted", + "progressStepName": "퍼블리싱", + "startAt": "2022-01-10", + "closeAt": "2022-06-02" + }, + { + "id": 151, + "projectName": "마케팅 자동화 도구", + "client": "NetSensors", + "developer": "SensorPro", + "projectStatus": "completed", + "progressStepName": "요구사항정의", + "startAt": "2023-08-10", + "closeAt": "2024-11-07" + }, + { + "id": 152, + "projectName": "클라우드 백업 솔루션", + "client": "DroneTech", + "developer": "MedTech", + "projectStatus": "deleted", + "progressStepName": "검수", + "startAt": "2023-11-22", + "closeAt": "2024-05-07" + }, + { + "id": 153, + "projectName": "사이버 보안 툴킷", + "client": "DroneTech", + "developer": "MedTech", + "projectStatus": "contract", + "progressStepName": "검수", + "startAt": "2022-01-12", + "closeAt": "2023-12-06" + }, + { + "id": 154, + "projectName": "디지털 헬스케어 앱", + "client": "DroneTech", + "developer": "MedTech", + "projectStatus": "inProgress", + "progressStepName": "퍼블리싱", + "startAt": "2023-08-05", + "closeAt": "2024-05-28" + }, + { + "id": 155, + "projectName": "드론 비행 제어 플랫폼", + "client": "RoboTech", + "developer": "ControlExperts", + "projectStatus": "inProgress", + "progressStepName": "개발", + "startAt": "2022-06-14", + "closeAt": "2022-12-21" + }, + { + "id": 156, + "projectName": "증강현실 플랫폼", + "client": "RoboTech", + "developer": "ControlExperts", + "projectStatus": "maintenance", + "progressStepName": "개발", + "startAt": "2023-08-19", + "closeAt": "2025-01-30" + }, + { + "id": 157, + "projectName": "빅데이터 분석 시스템", + "client": "NetSensors", + "developer": "CloudSecure", + "projectStatus": "contract", + "progressStepName": "디자인", + "startAt": "2023-02-14", + "closeAt": "2023-10-30" + }, + { + "id": 158, + "projectName": "비디오 스트리밍 플랫폼", + "client": "DesignPro", + "developer": "MedTech", + "projectStatus": "completed", + "progressStepName": "퍼블리싱", + "startAt": "2023-12-28", + "closeAt": "2025-08-10" + }, + { + "id": 159, + "projectName": "디지털 헬스케어 앱", + "client": "NetSensors", + "developer": "MedTech", + "projectStatus": "completed", + "progressStepName": "개발", + "startAt": "2023-05-04", + "closeAt": "2024-11-10" + }, + { + "id": 160, + "projectName": "자율주행 시스템 개발", + "client": "NetSensors", + "developer": "SensorPro", + "projectStatus": "contract", + "progressStepName": "화면설계", + "startAt": "2023-01-28", + "closeAt": "2023-07-16" + }, + { + "id": 161, + "projectName": "전자상거래 플랫폼", + "client": "AutoAI", + "developer": "SmartDrive", + "projectStatus": "completed", + "progressStepName": "개발", + "startAt": "2023-05-23", + "closeAt": "2024-07-17" + }, + { + "id": 162, + "projectName": "인공지능 챗봇 개발", + "client": "SecureCloud", + "developer": "3DExperts", + "projectStatus": "maintenance", + "progressStepName": "검수", + "startAt": "2023-09-15", + "closeAt": "2025-03-12" + }, + { + "id": 163, + "projectName": "AR/VR 콘텐츠 제작", + "client": "SecureCloud", + "developer": "SensorPro", + "projectStatus": "deleted", + "progressStepName": "퍼블리싱", + "startAt": "2023-02-19", + "closeAt": "2024-12-26" + }, + { + "id": 164, + "projectName": "사이버 보안 툴킷", + "client": "SecureCloud", + "developer": "SensorPro", + "projectStatus": "deleted", + "progressStepName": "검수", + "startAt": "2023-07-07", + "closeAt": "2024-01-31" + }, + { + "id": 165, + "projectName": "인사 관리 솔루션", + "client": "DroneTech", + "developer": "SensorPro", + "projectStatus": "inProgress", + "progressStepName": "디자인", + "startAt": "2023-01-13", + "closeAt": "2023-04-27" + }, + { + "id": 166, + "projectName": "스마트 홈 관리 시스템", + "client": "DesignPro", + "developer": "ControlExperts", + "projectStatus": "contract", + "progressStepName": "화면설계", + "startAt": "2023-07-11", + "closeAt": "2023-12-24" + }, + { + "id": 167, + "projectName": "사이버 보안 툴킷", + "client": "RoboTech", + "developer": "AviationExperts", + "projectStatus": "maintenance", + "progressStepName": "퍼블리싱", + "startAt": "2022-12-16", + "closeAt": "2023-07-12" + }, + { + "id": 168, + "projectName": "지능형 교통 시스템", + "client": "SecureCloud", + "developer": "SensorPro", + "projectStatus": "maintenance", + "progressStepName": "퍼블리싱", + "startAt": "2022-04-04", + "closeAt": "2022-12-31" + }, + { + "id": 169, + "projectName": "로보틱스 제어 소프트웨어", + "client": "NetSensors", + "developer": "MedTech", + "projectStatus": "inProgress", + "progressStepName": "요구사항정의", + "startAt": "2022-08-28", + "closeAt": "2023-01-05" + }, + { + "id": 170, + "projectName": "ERP 시스템 구현", + "client": "HealthSmart", + "developer": "3DExperts", + "projectStatus": "contract", + "progressStepName": "요구사항정의", + "startAt": "2022-04-14", + "closeAt": "2022-07-26" + }, + { + "id": 171, + "projectName": "블록체인 네트워크 설계", + "client": "DroneTech", + "developer": "AviationExperts", + "projectStatus": "completed", + "progressStepName": "검수", + "startAt": "2023-01-20", + "closeAt": "2024-09-20" + }, + { + "id": 172, + "projectName": "클라우드 백업 솔루션", + "client": "SecureCloud", + "developer": "CloudSecure", + "projectStatus": "paused", + "progressStepName": "요구사항정의", + "startAt": "2023-03-08", + "closeAt": "2023-12-15" + }, + { + "id": 173, + "projectName": "블록체인 네트워크 설계", + "client": "DroneTech", + "developer": "MedTech", + "projectStatus": "paused", + "progressStepName": "디자인", + "startAt": "2022-02-04", + "closeAt": "2022-03-19" + }, + { + "id": 174, + "projectName": "ERP 시스템 구현", + "client": "SecureCloud", + "developer": "SensorPro", + "projectStatus": "contract", + "progressStepName": "디자인", + "startAt": "2022-04-22", + "closeAt": "2023-04-07" + }, + { + "id": 175, + "projectName": "사이버 보안 툴킷", + "client": "DroneTech", + "developer": "SensorPro", + "projectStatus": "paused", + "progressStepName": "화면설계", + "startAt": "2023-11-13", + "closeAt": "2024-01-11" + }, + { + "id": 176, + "projectName": "블록체인 네트워크 설계", + "client": "DesignPro", + "developer": "SensorPro", + "projectStatus": "inProgress", + "progressStepName": "요구사항정의", + "startAt": "2023-11-18", + "closeAt": "2024-04-15" + }, + { + "id": 177, + "projectName": "사물인터넷 디바이스 네트워크", + "client": "HealthSmart", + "developer": "ControlExperts", + "projectStatus": "deleted", + "progressStepName": "퍼블리싱", + "startAt": "2023-03-06", + "closeAt": "2023-11-17" + }, + { + "id": 178, + "projectName": "교육 플랫폼 개발", + "client": "SecureCloud", + "developer": "SmartDrive", + "projectStatus": "paused", + "progressStepName": "요구사항정의", + "startAt": "2022-12-11", + "closeAt": "2023-06-21" + }, + { + "id": 179, + "projectName": "헬스 모니터링 디바이스", + "client": "DroneTech", + "developer": "ControlExperts", + "projectStatus": "inProgress", + "progressStepName": "화면설계", + "startAt": "2022-07-23", + "closeAt": "2024-03-10" + }, + { + "id": 180, + "projectName": "지능형 교통 시스템", + "client": "NetSensors", + "developer": "CloudSecure", + "projectStatus": "completed", + "progressStepName": "퍼블리싱", + "startAt": "2023-09-04", + "closeAt": "2025-02-16" + }, + { + "id": 181, + "projectName": "가상 회의 플랫폼", + "client": "DesignPro", + "developer": "MedTech", + "projectStatus": "contract", + "progressStepName": "화면설계", + "startAt": "2023-09-15", + "closeAt": "2025-03-01" + }, + { + "id": 182, + "projectName": "ERP 시스템 구현", + "client": "DesignPro", + "developer": "ControlExperts", + "projectStatus": "deleted", + "progressStepName": "디자인", + "startAt": "2022-02-21", + "closeAt": "2022-07-22" + }, + { + "id": 183, + "projectName": "자율주행 시스템 개발", + "client": "NetSensors", + "developer": "MedTech", + "projectStatus": "deleted", + "progressStepName": "퍼블리싱", + "startAt": "2022-06-24", + "closeAt": "2022-12-25" + }, + { + "id": 184, + "projectName": "가상 회의 플랫폼", + "client": "NetSensors", + "developer": "SmartDrive", + "projectStatus": "contract", + "progressStepName": "개발", + "startAt": "2023-02-27", + "closeAt": "2023-04-11" + }, + { + "id": 185, + "projectName": "드론 비행 제어 플랫폼", + "client": "HealthSmart", + "developer": "AviationExperts", + "projectStatus": "inProgress", + "progressStepName": "화면설계", + "startAt": "2023-09-19", + "closeAt": "2024-02-14" + }, + { + "id": 186, + "projectName": "고객 데이터 분석 엔진", + "client": "AutoAI", + "developer": "AviationExperts", + "projectStatus": "maintenance", + "progressStepName": "요구사항정의", + "startAt": "2023-03-03", + "closeAt": "2024-06-26" + }, + { + "id": 187, + "projectName": "사물인터넷 디바이스 네트워크", + "client": "DesignPro", + "developer": "3DExperts", + "projectStatus": "completed", + "progressStepName": "개발", + "startAt": "2023-03-29", + "closeAt": "2024-08-30" + }, + { + "id": 188, + "projectName": "사이버 보안 툴킷", + "client": "DroneTech", + "developer": "3DExperts", + "projectStatus": "maintenance", + "progressStepName": "검수", + "startAt": "2022-10-30", + "closeAt": "2024-07-14" + }, + { + "id": 189, + "projectName": "디지털 헬스케어 앱", + "client": "NetSensors", + "developer": "ControlExperts", + "projectStatus": "inProgress", + "progressStepName": "검수", + "startAt": "2022-07-26", + "closeAt": "2024-04-16" + }, + { + "id": 190, + "projectName": "헬스 모니터링 디바이스", + "client": "NetSensors", + "developer": "AviationExperts", + "projectStatus": "maintenance", + "progressStepName": "화면설계", + "startAt": "2023-12-05", + "closeAt": "2024-01-27" + }, + { + "id": 191, + "projectName": "로보틱스 제어 소프트웨어", + "client": "DesignPro", + "developer": "3DExperts", + "projectStatus": "completed", + "progressStepName": "개발", + "startAt": "2023-04-19", + "closeAt": "2025-03-06" + }, + { + "id": 192, + "projectName": "마케팅 자동화 도구", + "client": "RoboTech", + "developer": "SensorPro", + "projectStatus": "contract", + "progressStepName": "디자인", + "startAt": "2022-02-16", + "closeAt": "2022-02-21" + }, + { + "id": 193, + "projectName": "사이버 보안 툴킷", + "client": "AutoAI", + "developer": "AviationExperts", + "projectStatus": "paused", + "progressStepName": "검수", + "startAt": "2022-05-07", + "closeAt": "2023-03-16" + }, + { + "id": 194, + "projectName": "인공지능 챗봇 개발", + "client": "DesignPro", + "developer": "SmartDrive", + "projectStatus": "inProgress", + "progressStepName": "검수", + "startAt": "2023-09-04", + "closeAt": "2024-09-28" + }, + { + "id": 195, + "projectName": "지능형 교통 시스템", + "client": "DroneTech", + "developer": "ControlExperts", + "projectStatus": "contract", + "progressStepName": "퍼블리싱", + "startAt": "2023-06-21", + "closeAt": "2024-04-30" + }, + { + "id": 196, + "projectName": "전자상거래 플랫폼", + "client": "SecureCloud", + "developer": "MedTech", + "projectStatus": "inProgress", + "progressStepName": "퍼블리싱", + "startAt": "2022-11-09", + "closeAt": "2023-10-21" + }, + { + "id": 197, + "projectName": "CRM 시스템 업그레이드", + "client": "SecureCloud", + "developer": "SmartDrive", + "projectStatus": "contract", + "progressStepName": "개발", + "startAt": "2022-08-03", + "closeAt": "2023-12-27" + }, + { + "id": 198, + "projectName": "헬스 모니터링 디바이스", + "client": "DesignPro", + "developer": "CloudSecure", + "projectStatus": "paused", + "progressStepName": "요구사항정의", + "startAt": "2022-12-06", + "closeAt": "2023-02-05" + }, + { + "id": 199, + "projectName": "CRM 시스템 업그레이드", + "client": "RoboTech", + "developer": "MedTech", + "projectStatus": "deleted", + "progressStepName": "화면설계", + "startAt": "2022-10-25", + "closeAt": "2022-11-27" + }, + { + "id": 200, + "projectName": "마케팅 자동화 도구", + "client": "HealthSmart", + "developer": "AviationExperts", + "projectStatus": "maintenance", + "progressStepName": "개발", + "startAt": "2022-01-01", + "closeAt": "2022-03-26" + } + ], + "meta": { + "currentPage": 0, + "totalPages": 1, + "pageSize": 200, + "totalElements": 200, + "isFirstPage": true, + "isLastPage": true + } +} \ No newline at end of file diff --git a/src/data/projects_page_1.json b/src/data/projects_page_1.json deleted file mode 100644 index eff0350..0000000 --- a/src/data/projects_page_1.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "data": [ - { - "id": 1, - "projectName": "ERP 시스템 구축 #1", - "client": "DataCloud", - "developer": "InfraBuilders", - "projectStatus": "진행중", - "progressStepName": "요구사항 정의", - "startAt": "2024-01-01", - "closeAt": "2024-12-31" - }, - { - "id": 2, - "projectName": "모바일 앱 개발 #1", - "client": "CloudWorks", - "developer": "AppMasters", - "projectStatus": "완료", - "progressStepName": "화면설계", - "startAt": "2023-06-01", - "closeAt": "2023-12-15" - }, - { - "id": 3, - "projectName": "E-commerce 플랫폼 개발", - "client": "RetailPlus", - "developer": "CommerceExperts", - "projectStatus": "진행중", - "progressStepName": "디자인", - "startAt": "2024-03-01", - "closeAt": "2024-11-30" - }, - { - "id": 4, - "projectName": "IoT 시스템 개발", - "client": "SmartTech", - "developer": "IoTBuilders", - "projectStatus": "일시중단", - "progressStepName": "퍼블리싱", - "startAt": "2023-02-01", - "closeAt": "2023-08-30" - }, - { - "id": 5, - "projectName": "빅데이터 분석 도구 개발", - "client": "DataWorld", - "developer": "AnalyticsPro", - "projectStatus": "삭제", - "progressStepName": "개발", - "startAt": "2023-09-01", - "closeAt": "2024-03-15" - } - ], - "meta": { - "currentPage": 1, - "totalPages": 3, - "pageSize": 5, - "totalElements": 13, - "isFirstPage": true, - "isLastPage": false - } -} \ No newline at end of file diff --git a/src/data/projects_page_2.json b/src/data/projects_page_2.json deleted file mode 100644 index 477cd47..0000000 --- a/src/data/projects_page_2.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "data": [ - { - "id": 6, - "projectName": "AI 챗봇 개발", - "client": "AIWorks", - "developer": "BotBuilders", - "projectStatus": "완료", - "progressStepName": "검수", - "startAt": "2022-11-01", - "closeAt": "2023-05-20" - }, - { - "id": 7, - "projectName": "CRM 시스템 구축", - "client": "CustomerCare", - "developer": "SystemExperts", - "projectStatus": "진행중", - "progressStepName": "디자인", - "startAt": "2023-04-01", - "closeAt": "2024-01-15" - }, - { - "id": 8, - "projectName": "AR/VR 플랫폼 개발", - "client": "VirtualReality", - "developer": "ARVRDevelopers", - "projectStatus": "진행중", - "progressStepName": "퍼블리싱", - "startAt": "2024-02-01", - "closeAt": "2024-10-30" - }, - { - "id": 9, - "projectName": "HR 시스템 구축", - "client": "HRPlus", - "developer": "HRTech", - "projectStatus": "일시중단", - "progressStepName": "화면설계", - "startAt": "2023-03-01", - "closeAt": "2023-12-15" - }, - { - "id": 10, - "projectName": "소셜미디어 플랫폼 개발", - "client": "SocialHub", - "developer": "MediaTech", - "projectStatus": "진행중", - "progressStepName": "요구사항 정의", - "startAt": "2023-08-01", - "closeAt": "2024-05-30" - } - ], - "meta": { - "currentPage": 2, - "totalPages": 3, - "pageSize": 5, - "totalElements": 13, - "isFirstPage": false, - "isLastPage": false - } -} \ No newline at end of file diff --git a/src/data/projects_page_3.json b/src/data/projects_page_3.json deleted file mode 100644 index 7bb9956..0000000 --- a/src/data/projects_page_3.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "data": [ - { - "id": 11, - "projectName": "블록체인 플랫폼 개발", - "client": "CryptoWorld", - "developer": "ChainExperts", - "projectStatus": "진행중", - "progressStepName": "검수", - "startAt": "2024-01-01", - "closeAt": "2024-09-30" - }, - { - "id": 12, - "projectName": "마케팅 자동화 도구 개발", - "client": "AdPro", - "developer": "MarketingTools", - "projectStatus": "완료", - "progressStepName": "개발", - "startAt": "2023-02-01", - "closeAt": "2023-10-15" - }, - { - "id": 13, - "projectName": "클라우드 백업 솔루션", - "client": "CloudBackup", - "developer": "CloudTech", - "projectStatus": "삭제", - "progressStepName": "화면설계", - "startAt": "2023-01-01", - "closeAt": "2023-06-30" - } - ], - "meta": { - "currentPage": 3, - "totalPages": 3, - "pageSize": 5, - "totalElements": 13, - "isFirstPage": false, - "isLastPage": true - } -} \ No newline at end of file diff --git a/src/mocks/handlers.ts b/src/mocks/handlers.ts index 6fbfa70..b49fd9f 100644 --- a/src/mocks/handlers.ts +++ b/src/mocks/handlers.ts @@ -1,43 +1,71 @@ import { HttpResponse, http } from "msw"; -import page1 from "@/src/data/projects_page_1.json"; -import page2 from "@/src/data/projects_page_2.json"; -import page3 from "@/src/data/projects_page_3.json"; +import projectsData from "@/src/data/projects_mock_data.json"; -const allPages = [page1, page2, page3]; +const apiBaseUrl = process.env.NEXT_PUBLIC_API_BASE_URL; export const handlers = [ - http.get("http://api.example.com/projects", ({ request }) => { - console.log("Request received:", request.url); - const url = new URL(request.url) + http.get(`${apiBaseUrl}/projects`, ({ request }) => { + const url = new URL(request.url); - // URL 쿼리 파라미터에서 currentPage와 pageSize를 추출 + // Extract query parameters const currentPage = parseInt(url.searchParams.get("currentPage") || "0", 10); const pageSize = parseInt(url.searchParams.get("pageSize") || "5", 10); + const query = url.searchParams.get("query") || ""; + const filter = url.searchParams.get("filter") || "all"; - // 요청에 해당하는 페이지 데이터 추출 - const response = allPages.find( - (page) => page.meta.currentPage === currentPage && page.meta.pageSize === pageSize - ); - - // 데이터가 존재하지 않을 경우 기본 응답 - if (!response) { - return HttpResponse.json( - { - data: [], - meta: { - currentPage, - pageSize, - totalPages: 0, - totalElements: 0, - isFirstPage: true, - isLastPage: true, - }, - }, - { status: 200 } - ); - } - - // 요청된 데이터 반환 + // All data + const allData = projectsData.data; + + // Filter logic + const filteredData = allData.filter((item) => { + const matchesQuery = + query === "" || query === null || item.projectName.toLowerCase().includes(query.toLowerCase()); + const matchesFilter = + filter === "all" || filter === null || item.projectStatus.toLowerCase().includes(filter.toLowerCase()); + return matchesQuery && matchesFilter; + }); + + // Pagination logic + const start = currentPage * pageSize; + const pagedData = filteredData.slice(start, start + pageSize); + + // Meta information + const totalElements = filteredData.length; + const totalPages = Math.ceil(totalElements / pageSize); + + const response = { + data: pagedData, + meta: { + currentPage, + pageSize, + totalPages, + totalElements, + isFirstPage: currentPage === 0, + isLastPage: currentPage === totalPages - 1, + }, + }; + + // Return the response + return HttpResponse.json(response, { status: 200 }); + }), + http.get(`${apiBaseUrl}/projects/status-summary`, () => { + // 모든 데이터 가져오기 + const allData = projectsData.data; + + // 상태별 개수 집계 + const statusSummary = allData.reduce((summary, project) => { + const status = project.projectStatus; + summary[status] = (summary[status] || 0) + 1; + return summary; + }, {} as Record); + + // 응답 데이터 생성 + const response = { + statusSummary, + total: allData.length, + }; + + // 응답 반환 return HttpResponse.json(response, { status: 200 }); }), ]; \ No newline at end of file diff --git a/src/mocks/index.ts b/src/mocks/index.ts index 51a377b..ee32f58 100644 --- a/src/mocks/index.ts +++ b/src/mocks/index.ts @@ -4,7 +4,7 @@ async function initMSW() { server.listen(); } else { const { worker } = await import("./browser"); - worker.start(); + await worker.start(); } } diff --git a/src/types/project.ts b/src/types/project.ts index b7b71a1..b0e824e 100644 --- a/src/types/project.ts +++ b/src/types/project.ts @@ -3,8 +3,8 @@ export interface ProjectProps { projectName: string; // 프로젝트 이름 client: string; // 고객사 이름 developer: string; // 개발사 이름 - contractStage: string; // 계약 단계 - progressStage: string; // 진행 단계 - startDate: string; // 시작일 - endDate: string; // 종료일 + projectStatus: string; // 계약 단계 + progressStepName: string; // 진행 단계 + startAt: string; // 시작일 + closeAt: string; // 종료일 } \ No newline at end of file diff --git a/src/utils/getTranslatedStatus.ts b/src/utils/getTranslatedStatus.ts new file mode 100644 index 0000000..5f5b165 --- /dev/null +++ b/src/utils/getTranslatedStatus.ts @@ -0,0 +1,13 @@ +// projectStatus를 한글로 변환하는 함수 +export const getTranslatedStatus = (status: string): string => { + const statusMap: Record = { + contract: "계약", + inProgress: "진행중", + completed: "납품완료", + maintenance: "하자보수", + paused: "일시중단", + deleted: "삭제", + }; + + return statusMap[status] || "알 수 없음"; +}; \ No newline at end of file diff --git a/src/utils/temp.ts b/src/utils/temp.ts deleted file mode 100644 index e69de29..0000000