diff --git a/index.html b/index.html
index a53d67c..12e02b8 100644
--- a/index.html
+++ b/index.html
@@ -3,6 +3,11 @@
+
뉴웨이즈 다양성 평가 리포트
diff --git a/package.json b/package.json
index ad486af..7d7675f 100644
--- a/package.json
+++ b/package.json
@@ -45,6 +45,7 @@
"eslint-plugin-react-refresh": "^0.4.3",
"prettier": "^3.0.3",
"typescript": "^5.2.2",
- "vite": "^4.4.10"
+ "vite": "^4.4.10",
+ "vite-plugin-svgr": "^4.1.0"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 5d0a17a..109320c 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -88,6 +88,9 @@ devDependencies:
vite:
specifier: ^4.4.10
version: 4.4.10(@types/node@20.8.2)
+ vite-plugin-svgr:
+ specifier: ^4.1.0
+ version: 4.1.0(typescript@5.2.2)(vite@4.4.10)
packages:
@@ -1857,6 +1860,146 @@ packages:
engines: {node: '>=14.0.0'}
dev: false
+ /@rollup/pluginutils@5.0.5:
+ resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@types/estree': 1.0.5
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+ dev: true
+
+ /@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.23.0):
+ resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.0
+ dev: true
+
+ /@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.23.0):
+ resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.0
+ dev: true
+
+ /@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.23.0):
+ resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.0
+ dev: true
+
+ /@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.23.0):
+ resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.0
+ dev: true
+
+ /@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.23.0):
+ resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.0
+ dev: true
+
+ /@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.23.0):
+ resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.0
+ dev: true
+
+ /@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.23.0):
+ resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.0
+ dev: true
+
+ /@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.23.0):
+ resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.0
+ dev: true
+
+ /@svgr/babel-preset@8.1.0(@babel/core@7.23.0):
+ resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.0
+ '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.23.0)
+ '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.23.0)
+ '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.23.0)
+ '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.23.0)
+ '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.23.0)
+ '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.23.0)
+ '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.23.0)
+ '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.23.0)
+ dev: true
+
+ /@svgr/core@8.1.0(typescript@5.2.2):
+ resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==}
+ engines: {node: '>=14'}
+ dependencies:
+ '@babel/core': 7.23.0
+ '@svgr/babel-preset': 8.1.0(@babel/core@7.23.0)
+ camelcase: 6.3.0
+ cosmiconfig: 8.3.6(typescript@5.2.2)
+ snake-case: 3.0.4
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /@svgr/hast-util-to-babel-ast@8.0.0:
+ resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==}
+ engines: {node: '>=14'}
+ dependencies:
+ '@babel/types': 7.23.0
+ entities: 4.5.0
+ dev: true
+
+ /@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0):
+ resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@svgr/core': '*'
+ dependencies:
+ '@babel/core': 7.23.0
+ '@svgr/babel-preset': 8.1.0(@babel/core@7.23.0)
+ '@svgr/core': 8.1.0(typescript@5.2.2)
+ '@svgr/hast-util-to-babel-ast': 8.0.0
+ svg-parser: 2.0.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@turf/bbox-polygon@6.5.0:
resolution: {integrity: sha512-+/r0NyL1lOG3zKZmmf6L8ommU07HliP4dgYToMoTxqzsWzyLjaj/OzgQ8rBmv703WJX+aS6yCmLuIhYqyufyuw==}
dependencies:
@@ -1944,6 +2087,10 @@ packages:
resolution: {integrity: sha512-jhAJzaanK5LqyLQ50jJNIrB8fjL9gwWZTgYjevPvkDLMU+kTAZkYsobI59nYoeSrH1PucuyJEi247Pb90t6XUg==}
dev: false
+ /@types/estree@1.0.5:
+ resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
+ dev: true
+
/@types/geojson@7946.0.13:
resolution: {integrity: sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ==}
dev: false
@@ -2514,6 +2661,11 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
+ /camelcase@6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+ dev: true
+
/caniuse-lite@1.0.30001543:
resolution: {integrity: sha512-qxdO8KPWPQ+Zk6bvNpPeQIOH47qZSYdFZd6dXQzb2KzhnSXju4Kd7H1PkSJx6NICSMgo/IhRZRhhfPTHYpJUCA==}
dev: true
@@ -2650,6 +2802,22 @@ packages:
yaml: 1.10.2
dev: false
+ /cosmiconfig@8.3.6(typescript@5.2.2):
+ resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ typescript: '>=4.9.5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ typescript: 5.2.2
+ dev: true
+
/cross-spawn@7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
@@ -2919,6 +3087,13 @@ packages:
resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==}
dev: false
+ /dot-case@3.0.4:
+ resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
+ dependencies:
+ no-case: 3.0.4
+ tslib: 2.6.2
+ dev: true
+
/dotignore@0.1.2:
resolution: {integrity: sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==}
hasBin: true
@@ -2954,11 +3129,15 @@ packages:
tapable: 2.2.1
dev: true
+ /entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+ dev: true
+
/error-ex@1.3.2:
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
dependencies:
is-arrayish: 0.2.1
- dev: false
/error-stack-parser@2.1.4:
resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
@@ -3405,6 +3584,10 @@ packages:
engines: {node: '>=4.0'}
dev: true
+ /estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+ dev: true
+
/esutils@2.0.3:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'}
@@ -3875,7 +4058,6 @@ packages:
/is-arrayish@0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
- dev: false
/is-arrayish@0.3.2:
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
@@ -4097,7 +4279,6 @@ packages:
/json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
- dev: false
/json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
@@ -4197,7 +4378,6 @@ packages:
/lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
- dev: false
/locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
@@ -4229,6 +4409,12 @@ packages:
dependencies:
js-tokens: 4.0.0
+ /lower-case@2.0.2:
+ resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
+ dependencies:
+ tslib: 2.6.2
+ dev: true
+
/lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
dependencies:
@@ -4428,6 +4614,13 @@ packages:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
+ /no-case@3.0.4:
+ resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
+ dependencies:
+ lower-case: 2.0.2
+ tslib: 2.6.2
+ dev: true
+
/node-releases@2.0.13:
resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
dev: true
@@ -4553,7 +4746,6 @@ packages:
error-ex: 1.3.2
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
- dev: false
/path-exists@4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
@@ -5644,6 +5836,13 @@ packages:
engines: {node: '>=8'}
dev: true
+ /snake-case@3.0.4:
+ resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
+ dependencies:
+ dot-case: 3.0.4
+ tslib: 2.6.2
+ dev: true
+
/sort-asc@0.2.0:
resolution: {integrity: sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==}
engines: {node: '>=0.10.0'}
@@ -5842,6 +6041,10 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
+ /svg-parser@2.0.4:
+ resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==}
+ dev: true
+
/tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines: {node: '>=6'}
@@ -5950,7 +6153,6 @@ packages:
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
- dev: false
/type-check@0.4.0:
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
@@ -6089,6 +6291,21 @@ packages:
gl-matrix: 3.4.3
dev: false
+ /vite-plugin-svgr@4.1.0(typescript@5.2.2)(vite@4.4.10):
+ resolution: {integrity: sha512-v7Qic+FWmCChgQNGSI4V8X63OEYsdUoLt66iqIcHozq9bfK/Dwmr0V+LBy1NE8CE98Y8HouEBJ+pto4AMfN5xw==}
+ peerDependencies:
+ vite: ^2.6.0 || 3 || 4
+ dependencies:
+ '@rollup/pluginutils': 5.0.5
+ '@svgr/core': 8.1.0(typescript@5.2.2)
+ '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0)
+ vite: 4.4.10(@types/node@20.8.2)
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+ - typescript
+ dev: true
+
/vite@4.4.10(@types/node@20.8.2):
resolution: {integrity: sha512-TzIjiqx9BEXF8yzYdF2NTf1kFFbjMjUSV0LFZ3HyHoI3SGSPLnnFUKiIQtL3gl2AjHvMrprOvQ3amzaHgQlAxw==}
engines: {node: ^14.18.0 || >=16.0.0}
diff --git a/src/assets/NewWaysLogo.svg b/src/assets/NewWaysLogo.svg
new file mode 100644
index 0000000..6af701c
--- /dev/null
+++ b/src/assets/NewWaysLogo.svg
@@ -0,0 +1,9 @@
+
diff --git a/src/assets/SNSHomepage.svg b/src/assets/SNSHomepage.svg
new file mode 100644
index 0000000..d8d563d
--- /dev/null
+++ b/src/assets/SNSHomepage.svg
@@ -0,0 +1,11 @@
+
diff --git a/src/assets/SNSInstagram.svg b/src/assets/SNSInstagram.svg
new file mode 100644
index 0000000..489e4b0
--- /dev/null
+++ b/src/assets/SNSInstagram.svg
@@ -0,0 +1,11 @@
+
diff --git a/src/assets/SNSLinkedin.svg b/src/assets/SNSLinkedin.svg
new file mode 100644
index 0000000..cf7cdae
--- /dev/null
+++ b/src/assets/SNSLinkedin.svg
@@ -0,0 +1,13 @@
+
diff --git a/src/assets/SNSYoutube.svg b/src/assets/SNSYoutube.svg
new file mode 100644
index 0000000..f0024e3
--- /dev/null
+++ b/src/assets/SNSYoutube.svg
@@ -0,0 +1,11 @@
+
diff --git a/src/assets/index.ts b/src/assets/index.ts
index 0c9af75..ddae958 100644
--- a/src/assets/index.ts
+++ b/src/assets/index.ts
@@ -1 +1,6 @@
// svg assets을 component로 export
+export { default as NewWaysLogo } from "./NewWaysLogo.svg?react";
+export { default as SNSHomepage } from "./SNSHomepage.svg?react";
+export { default as SNSInstagram } from "./SNSInstagram.svg?react";
+export { default as SNSLinkedin } from "./SNSLinkedin.svg?react";
+export { default as SNSYoutube } from "./SNSYoutube.svg?react";
diff --git a/src/components/organisms/Footer.tsx b/src/components/organisms/Footer.tsx
new file mode 100644
index 0000000..5359796
--- /dev/null
+++ b/src/components/organisms/Footer.tsx
@@ -0,0 +1,72 @@
+import { Typography, Layout, Flex, Col, Row } from "antd";
+
+import { SNSHomepage, SNSInstagram, SNSLinkedin, SNSYoutube } from "@/assets";
+
+const { Title, Paragraph, Text } = Typography;
+const { Footer } = Layout;
+
+const FooterTitle = () => 사단법인 뉴웨이즈(NEWWAYS);
+
+const FooterDescription = () => (
+
+ 젊치인의 도전과 성장을 돕는 에이전시
+ 대표 박혜민
+ 고유번호 767-82-00531
+ 문의 build@newways.kr
+
+);
+
+const FooterLinks = () => (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+);
+
+const NewwaysFooter = () => (
+
+);
+
+export default NewwaysFooter;
diff --git a/src/components/organisms/Header.tsx b/src/components/organisms/Header.tsx
new file mode 100644
index 0000000..c68867c
--- /dev/null
+++ b/src/components/organisms/Header.tsx
@@ -0,0 +1,12 @@
+import { Layout } from "antd";
+import { NewWaysLogo } from "@/assets";
+
+const { Header } = Layout;
+
+const NewwaysHeader = () => (
+
+);
+
+export default NewwaysHeader;
diff --git a/src/components/organisms/index.ts b/src/components/organisms/index.ts
index cca8947..c2733c5 100644
--- a/src/components/organisms/index.ts
+++ b/src/components/organisms/index.ts
@@ -1,2 +1,4 @@
// organism 단계의 컴포넌트들을 한번에 export 하기 위한 index.ts 파일
+export { default as Header } from "./Header";
+export { default as Footer } from "./Footer";
export { default as TestChart } from "./TestChart";
diff --git a/src/components/pages/Test.tsx b/src/components/pages/Test.tsx
index a6cd783..891d9ea 100644
--- a/src/components/pages/Test.tsx
+++ b/src/components/pages/Test.tsx
@@ -1,33 +1,12 @@
import React from "react";
-import { Layout, theme } from "antd";
+import { Layout } from "@/components/templates";
import { TestChart } from "@/components/organisms";
-const { Header, Content, Footer } = Layout;
-
-const Test: React.FC = () => {
- const {
- token: { colorBgContainer },
- } = theme.useToken();
-
- return (
-
-
-
-
-
-
-
-
-
- );
-};
+const Test: React.FC = () => (
+
+
+
+);
export default Test;
diff --git a/src/components/templates/Layout.tsx b/src/components/templates/Layout.tsx
new file mode 100644
index 0000000..f36f911
--- /dev/null
+++ b/src/components/templates/Layout.tsx
@@ -0,0 +1,48 @@
+import React from "react";
+import { Layout, ConfigProvider, theme } from "antd";
+import { Header, Footer } from "@/components/organisms";
+
+const { Content } = Layout;
+
+interface Props {
+ children: React.ReactNode;
+}
+
+const NewwaysLayout = ({ children }: Props) => {
+ const {
+ token: { colorBgContainer },
+ } = theme.useToken();
+
+ return (
+
+
+
+
+
+ {children}
+
+
+
+
+
+ );
+};
+
+export default NewwaysLayout;
diff --git a/src/components/templates/index.ts b/src/components/templates/index.ts
index e69de29..4a07757 100644
--- a/src/components/templates/index.ts
+++ b/src/components/templates/index.ts
@@ -0,0 +1 @@
+export { default as Layout } from "./Layout";
diff --git a/tsconfig.json b/tsconfig.json
index 95679c7..ad7c937 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -9,6 +9,7 @@
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"module": "ESNext",
"skipLibCheck": true,
+ "types": ["vite-plugin-svgr/client"],
/* Bundler mode */
"moduleResolution": "bundler",
diff --git a/vite.config.ts b/vite.config.ts
index 202aa02..0d7f0a2 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,6 +1,7 @@
import * as path from "path";
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
+import svgr from "vite-plugin-svgr";
// https://vitejs.dev/config/
export default defineConfig({
@@ -10,6 +11,7 @@ export default defineConfig({
},
},
plugins: [
+ svgr(),
react({
jsxImportSource: "@emotion/react",
babel: {