diff --git a/.eslintrc.js b/.eslintrc.js
index 9fcb6ce4..6d618942 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -29,7 +29,13 @@ module.exports = {
'@typescript-eslint/parser': ['.ts', '.tsx'],
},
},
- extends: ['next', 'prettier', 'plugin:import/recommended', 'plugin:import/typescript'],
+ extends: [
+ 'next',
+ 'prettier',
+ 'plugin:import/recommended',
+ 'plugin:import/typescript',
+ 'plugin:storybook/recommended',
+ ],
plugins: ['prettier', 'import', '@typescript-eslint', 'simple-import-sort', 'unused-imports'],
parser: '@typescript-eslint/parser',
rules: {
diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml
new file mode 100644
index 00000000..fed7404a
--- /dev/null
+++ b/.github/workflows/chromatic.yml
@@ -0,0 +1,36 @@
+# Workflow name
+name: 'Chromatic'
+
+# Event for the workflow
+on:
+ pull_request:
+ branches: [main, develop]
+ push:
+ branches: [main, develop]
+
+# List of jobs
+jobs:
+ chromatic-deployment:
+ # Operating System
+ runs-on: ubuntu-latest
+ # Job steps
+ steps:
+ - uses: actions/checkout@v1
+ - name: Install dependencies
+ # 👇 Install dependencies with the same package manager used in the project (replace it as needed), e.g. yarn, npm, pnpm
+ run: yarn
+ # 👇 Adds Chromatic as a step in the workflow
+ - name: Publish to Chromatic
+ uses: chromaui/action@v1
+ id: chromatic
+ # Chromatic GitHub Action options
+ with:
+ # 👇 Chromatic projectToken, refer to the manage page to obtain it.
+ projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
+ onlyChanged: true
+ - name: comment PR
+ uses: thollander/actions-comment-pull-request@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ message: '🚀storybook: ${{ steps.chromatic.outputs.storybookUrl }}'
diff --git a/.gitignore b/.gitignore
index 7e810107..4112bcbd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,3 +38,4 @@ next-env.d.ts
.idea
*.swp
*.bak
+.env
diff --git a/.storybook/main.ts b/.storybook/main.ts
new file mode 100644
index 00000000..6c316c09
--- /dev/null
+++ b/.storybook/main.ts
@@ -0,0 +1,27 @@
+const path = require('path');
+import type { StorybookConfig } from '@storybook/nextjs';
+
+const config: StorybookConfig = {
+ stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
+ addons: [
+ '@storybook/addon-links',
+ '@storybook/addon-essentials',
+ '@storybook/addon-onboarding',
+ 'storybook-addon-next',
+ '@storybook/addon-interactions',
+ '@storybook/addon-styling',
+ ],
+ framework: {
+ name: '@storybook/nextjs',
+ options: { nextConfigPath: path.resolve(__dirname, '../next.config.js') },
+ },
+ staticDirs: ['../public'],
+ docs: {
+ autodocs: 'tag',
+ },
+ babel: async options => {
+ options.presets!.push('@emotion/babel-preset-css-prop');
+ return options;
+ },
+};
+export default config;
diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx
new file mode 100644
index 00000000..ec1a6510
--- /dev/null
+++ b/.storybook/preview.tsx
@@ -0,0 +1,36 @@
+const path = require('path');
+
+import type { Preview } from '@storybook/react';
+import React from 'react';
+import GlobalStyle from '../src/styles/globalStyle';
+import { ThemeProvider } from '@emotion/react';
+import { theme } from '../src/styles/theme';
+
+const preview: Preview = {
+ decorators: [
+ Story => (
+
+
+
+
+ ),
+ ],
+ parameters: {
+ actions: { argTypesRegex: '^on[A-Z].*' },
+ controls: {
+ matchers: {
+ color: /(background|color)$/i,
+ date: /Date$/,
+ },
+ },
+ webpackFinal: async config => {
+ config.resolve.alias = {
+ ...config.resolve.alias,
+ '~': path.resolve(__dirname, '../src/'),
+ };
+ return config;
+ },
+ },
+};
+
+export default preview;
diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json
new file mode 100644
index 00000000..97c1779a
--- /dev/null
+++ b/.vscode/c_cpp_properties.json
@@ -0,0 +1,18 @@
+{
+ "configurations": [
+ {
+ "name": "macos-clang-x64",
+ "includePath": [
+ "${workspaceFolder}/**"
+ ],
+ "compilerPath": "/usr/bin/clang",
+ "cStandard": "${default}",
+ "cppStandard": "${default}",
+ "intelliSenseMode": "macos-clang-x64",
+ "compilerArgs": [
+ ""
+ ]
+ }
+ ],
+ "version": 4
+}
\ No newline at end of file
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 00000000..a85b3bca
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,13 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "C/C++ Runner: Debug Session",
+ "type": "lldb",
+ "request": "launch",
+ "args": [],
+ "cwd": "/Users/kangjiyoung/Downloads/2018112024_강지영_lab03",
+ "program": "/Users/kangjiyoung/Downloads/2018112024_강지영_lab03/build/Debug/outDebug"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 2a7a14ea..183231bc 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -2,5 +2,63 @@
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
- "editor.formatOnSave": true
-}
+ "editor.formatOnSave": true,
+ "typescript.tsdk": "node_modules/typescript/lib",
+ "C_Cpp_Runner.msvcBatchPath": "",
+ "C_Cpp_Runner.cCompilerPath": "clang",
+ "C_Cpp_Runner.cppCompilerPath": "clang++",
+ "C_Cpp_Runner.debuggerPath": "lldb",
+ "C_Cpp_Runner.cStandard": "",
+ "C_Cpp_Runner.cppStandard": "",
+ "C_Cpp_Runner.useMsvc": false,
+ "C_Cpp_Runner.warnings": [
+ "-Wall",
+ "-Wextra",
+ "-Wpedantic",
+ "-Wshadow",
+ "-Wformat=2",
+ "-Wcast-align",
+ "-Wconversion",
+ "-Wsign-conversion",
+ "-Wnull-dereference"
+ ],
+ "C_Cpp_Runner.msvcWarnings": [
+ "/W4",
+ "/permissive-",
+ "/w14242",
+ "/w14287",
+ "/w14296",
+ "/w14311",
+ "/w14826",
+ "/w44062",
+ "/w44242",
+ "/w14905",
+ "/w14906",
+ "/w14263",
+ "/w44265",
+ "/w14928"
+ ],
+ "C_Cpp_Runner.enableWarnings": true,
+ "C_Cpp_Runner.warningsAsError": false,
+ "C_Cpp_Runner.compilerArgs": [],
+ "C_Cpp_Runner.linkerArgs": [],
+ "C_Cpp_Runner.includePaths": [],
+ "C_Cpp_Runner.includeSearch": [
+ "*",
+ "**/*"
+ ],
+ "C_Cpp_Runner.excludeSearch": [
+ "**/build",
+ "**/build/**",
+ "**/.*",
+ "**/.*/**",
+ "**/.vscode",
+ "**/.vscode/**"
+ ],
+ "C_Cpp_Runner.useAddressSanitizer": false,
+ "C_Cpp_Runner.useUndefinedSanitizer": false,
+ "C_Cpp_Runner.useLeakSanitizer": false,
+ "C_Cpp_Runner.showCompilationTime": false,
+ "C_Cpp_Runner.useLinkTimeOptimization": false,
+ "C_Cpp_Runner.msvcSecureNoWarnings": false
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index becc039f..3d5aa121 100644
--- a/package.json
+++ b/package.json
@@ -17,7 +17,9 @@
"lint": "next lint",
"lint:fix": "eslint 'src/**/*.{js,jsx,ts,tsx}' --fix",
"analyze": "ANALYZE=true next build",
- "prepare": "husky install"
+ "prepare": "husky install",
+ "storybook": "storybook dev -p 6006",
+ "build-storybook": "storybook build"
},
"dependencies": {
"@emotion/react": "^11.10.6",
@@ -26,19 +28,29 @@
"next": "13.2.1",
"react": "18.2.0",
"react-dom": "18.2.0",
- "react-responsive-carousel": "^3.2.23",
- "sharp": "^0.31.3"
+ "react-fast-marquee": "^1.6.1"
},
"devDependencies": {
"@commitlint/cli": "^17.4.4",
"@commitlint/config-conventional": "^17.4.4",
+ "@emotion/babel-preset-css-prop": "^11.11.0",
"@next/bundle-analyzer": "^13.2.1",
+ "@storybook/addon-essentials": "^7.4.0",
+ "@storybook/addon-interactions": "^7.4.0",
+ "@storybook/addon-links": "^7.4.0",
+ "@storybook/addon-onboarding": "^1.0.8",
+ "@storybook/addon-styling": "^1.3.7",
+ "@storybook/blocks": "^7.4.0",
+ "@storybook/nextjs": "^7.4.0",
+ "@storybook/react": "^7.4.0",
+ "@storybook/testing-library": "^0.2.0",
"@swc-jotai/react-refresh": "^0.0.4",
"@types/node": "18.14.2",
"@types/react": "18.0.28",
"@types/react-dom": "18.0.11",
"@typescript-eslint/eslint-plugin": "^5.54.0",
"@typescript-eslint/parser": "^5.54.0",
+ "chromatic": "^7.1.0",
"compression-webpack-plugin": "^10.0.0",
"eslint": "8.35.0",
"eslint-config-next": "13.2.1",
@@ -46,11 +58,14 @@
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-simple-import-sort": "^10.0.0",
+ "eslint-plugin-storybook": "^0.6.13",
"eslint-plugin-unused-imports": "^2.0.0",
"husky": "^8.0.3",
"lint-staged": "^13.1.2",
"next-sitemap": "^3.1.54",
"prettier": "^2.8.4",
+ "storybook": "^7.4.0",
+ "storybook-addon-next": "^1.8.0",
"typescript": "4.9.5"
}
}
diff --git a/public/common/cursor.webp b/public/common/cursor.webp
deleted file mode 100644
index e8402bf9..00000000
Binary files a/public/common/cursor.webp and /dev/null differ
diff --git a/public/fonts/Decimal-Bold.woff b/public/fonts/Decimal-Bold.woff
new file mode 100644
index 00000000..4227d74e
Binary files /dev/null and b/public/fonts/Decimal-Bold.woff differ
diff --git a/public/fonts/Decimal-Medium.woff b/public/fonts/Decimal-Medium.woff
new file mode 100644
index 00000000..3e02bf9b
Binary files /dev/null and b/public/fonts/Decimal-Medium.woff differ
diff --git a/public/fonts/Decimal-Semibold.woff b/public/fonts/Decimal-Semibold.woff
new file mode 100644
index 00000000..58110a9f
Binary files /dev/null and b/public/fonts/Decimal-Semibold.woff differ
diff --git a/public/fonts/Decimal-book.woff b/public/fonts/Decimal-book.woff
new file mode 100644
index 00000000..66b14eb1
Binary files /dev/null and b/public/fonts/Decimal-book.woff differ
diff --git a/public/fonts/Decimal-light.woff b/public/fonts/Decimal-light.woff
new file mode 100644
index 00000000..092543ec
Binary files /dev/null and b/public/fonts/Decimal-light.woff differ
diff --git a/public/images/about/airplane.png b/public/images/about/airplane.png
new file mode 100644
index 00000000..4569b53c
Binary files /dev/null and b/public/images/about/airplane.png differ
diff --git a/public/images/about/android.webp b/public/images/about/android.webp
deleted file mode 100644
index b2c79c0b..00000000
Binary files a/public/images/about/android.webp and /dev/null differ
diff --git a/public/images/about/coffeechat.webp b/public/images/about/coffeechat.webp
deleted file mode 100644
index 1f664498..00000000
Binary files a/public/images/about/coffeechat.webp and /dev/null differ
diff --git a/public/images/about/designer.webp b/public/images/about/designer.webp
deleted file mode 100644
index 06c2161d..00000000
Binary files a/public/images/about/designer.webp and /dev/null differ
diff --git a/public/images/about/group.webp b/public/images/about/group.webp
deleted file mode 100644
index 88d19477..00000000
Binary files a/public/images/about/group.webp and /dev/null differ
diff --git a/public/images/about/hackathon.webp b/public/images/about/hackathon.webp
deleted file mode 100644
index da6eb902..00000000
Binary files a/public/images/about/hackathon.webp and /dev/null differ
diff --git a/public/images/about/header-back.webp b/public/images/about/header-back.webp
deleted file mode 100644
index 15abb232..00000000
Binary files a/public/images/about/header-back.webp and /dev/null differ
diff --git a/public/images/about/header-front.webp b/public/images/about/header-front.webp
deleted file mode 100644
index 7efa8659..00000000
Binary files a/public/images/about/header-front.webp and /dev/null differ
diff --git a/public/images/about/ios.webp b/public/images/about/ios.webp
deleted file mode 100644
index 2977bfdb..00000000
Binary files a/public/images/about/ios.webp and /dev/null differ
diff --git a/public/images/about/meeting.webp b/public/images/about/meeting.webp
deleted file mode 100644
index c158df45..00000000
Binary files a/public/images/about/meeting.webp and /dev/null differ
diff --git a/public/images/about/mobile-header.webp b/public/images/about/mobile-header.webp
deleted file mode 100644
index 6fe730d3..00000000
Binary files a/public/images/about/mobile-header.webp and /dev/null differ
diff --git a/public/images/about/networking.webp b/public/images/about/networking.webp
deleted file mode 100644
index 3d017f20..00000000
Binary files a/public/images/about/networking.webp and /dev/null differ
diff --git a/public/images/about/passport.png b/public/images/about/passport.png
new file mode 100644
index 00000000..6ad63948
Binary files /dev/null and b/public/images/about/passport.png differ
diff --git a/public/images/about/server.webp b/public/images/about/server.webp
deleted file mode 100644
index d632c307..00000000
Binary files a/public/images/about/server.webp and /dev/null differ
diff --git a/public/images/about/study.webp b/public/images/about/study.webp
deleted file mode 100644
index 69220eb0..00000000
Binary files a/public/images/about/study.webp and /dev/null differ
diff --git a/public/images/about/web.webp b/public/images/about/web.webp
deleted file mode 100644
index ee47a0c3..00000000
Binary files a/public/images/about/web.webp and /dev/null differ
diff --git a/public/images/error/career.png b/public/images/error/career.png
new file mode 100644
index 00000000..eb6f32e7
Binary files /dev/null and b/public/images/error/career.png differ
diff --git a/public/images/home/header-back.webp b/public/images/home/header-back.webp
deleted file mode 100644
index 31272964..00000000
Binary files a/public/images/home/header-back.webp and /dev/null differ
diff --git a/public/images/home/header-front.png b/public/images/home/header-front.png
deleted file mode 100644
index e3655bf4..00000000
Binary files a/public/images/home/header-front.png and /dev/null differ
diff --git a/public/images/home/header.webp b/public/images/home/header.webp
deleted file mode 100644
index 9e5f99b5..00000000
Binary files a/public/images/home/header.webp and /dev/null differ
diff --git a/public/images/home/heart.webp b/public/images/home/heart.webp
deleted file mode 100644
index 145ae6a6..00000000
Binary files a/public/images/home/heart.webp and /dev/null differ
diff --git a/public/images/home/meet.webp b/public/images/home/meet.webp
deleted file mode 100644
index 831d84a9..00000000
Binary files a/public/images/home/meet.webp and /dev/null differ
diff --git a/public/images/home/mobile-header-back.webp b/public/images/home/mobile-header-back.webp
deleted file mode 100644
index 7216ed9e..00000000
Binary files a/public/images/home/mobile-header-back.webp and /dev/null differ
diff --git a/public/images/home/mobile-header-front.webp b/public/images/home/mobile-header-front.webp
deleted file mode 100644
index d881a2a0..00000000
Binary files a/public/images/home/mobile-header-front.webp and /dev/null differ
diff --git a/public/images/home/mobile-heart.webp b/public/images/home/mobile-heart.webp
deleted file mode 100644
index 4777dba9..00000000
Binary files a/public/images/home/mobile-heart.webp and /dev/null differ
diff --git a/public/images/home/mobile-meet.webp b/public/images/home/mobile-meet.webp
deleted file mode 100644
index fbf8ec3d..00000000
Binary files a/public/images/home/mobile-meet.webp and /dev/null differ
diff --git a/public/images/home/mobile-programmer.webp b/public/images/home/mobile-programmer.webp
deleted file mode 100644
index 0f8028ea..00000000
Binary files a/public/images/home/mobile-programmer.webp and /dev/null differ
diff --git a/public/images/home/programmer.webp b/public/images/home/programmer.webp
deleted file mode 100644
index 21194ef1..00000000
Binary files a/public/images/home/programmer.webp and /dev/null differ
diff --git a/public/images/logo.png b/public/images/logo.png
new file mode 100644
index 00000000..8556cb3c
Binary files /dev/null and b/public/images/logo.png differ
diff --git a/public/images/main/coin-drop.png b/public/images/main/coin-drop.png
new file mode 100644
index 00000000..77914736
Binary files /dev/null and b/public/images/main/coin-drop.png differ
diff --git a/public/images/main/main-bg.png b/public/images/main/main-bg.png
new file mode 100644
index 00000000..cf24aa56
Binary files /dev/null and b/public/images/main/main-bg.png differ
diff --git a/public/images/main/passport-combination.png b/public/images/main/passport-combination.png
new file mode 100644
index 00000000..c32b12e2
Binary files /dev/null and b/public/images/main/passport-combination.png differ
diff --git "a/public/images/organizer/\352\271\200\353\217\231\352\267\234.webp" "b/public/images/organizer/\352\271\200\353\217\231\352\267\234.webp"
deleted file mode 100644
index 6da1458e..00000000
Binary files "a/public/images/organizer/\352\271\200\353\217\231\352\267\234.webp" and /dev/null differ
diff --git "a/public/images/organizer/\352\271\200\353\254\270\352\267\234.webp" "b/public/images/organizer/\352\271\200\353\254\270\352\267\234.webp"
deleted file mode 100644
index 51d4fd42..00000000
Binary files "a/public/images/organizer/\352\271\200\353\254\270\352\267\234.webp" and /dev/null differ
diff --git "a/public/images/organizer/\352\271\200\353\257\274\354\210\230.webp" "b/public/images/organizer/\352\271\200\353\257\274\354\210\230.webp"
deleted file mode 100644
index 2ae85814..00000000
Binary files "a/public/images/organizer/\352\271\200\353\257\274\354\210\230.webp" and /dev/null differ
diff --git "a/public/images/organizer/\353\260\225\354\206\214\355\230\204.webp" "b/public/images/organizer/\353\260\225\354\206\214\355\230\204.webp"
deleted file mode 100644
index c08c96a3..00000000
Binary files "a/public/images/organizer/\353\260\225\354\206\214\355\230\204.webp" and /dev/null differ
diff --git "a/public/images/organizer/\353\260\225\354\210\230\354\227\260.webp" "b/public/images/organizer/\353\260\225\354\210\230\354\227\260.webp"
deleted file mode 100644
index 16f31dc2..00000000
Binary files "a/public/images/organizer/\353\260\225\354\210\230\354\227\260.webp" and /dev/null differ
diff --git "a/public/images/organizer/\354\230\244\355\230\234\354\204\261.webp" "b/public/images/organizer/\354\230\244\355\230\234\354\204\261.webp"
deleted file mode 100644
index f6f6e015..00000000
Binary files "a/public/images/organizer/\354\230\244\355\230\234\354\204\261.webp" and /dev/null differ
diff --git "a/public/images/organizer/\354\235\264\354\204\261\355\203\234.webp" "b/public/images/organizer/\354\235\264\354\204\261\355\203\234.webp"
deleted file mode 100644
index 12d95992..00000000
Binary files "a/public/images/organizer/\354\235\264\354\204\261\355\203\234.webp" and /dev/null differ
diff --git "a/public/images/organizer/\354\235\264\354\212\271\355\235\254.webp" "b/public/images/organizer/\354\235\264\354\212\271\355\235\254.webp"
deleted file mode 100644
index eca64461..00000000
Binary files "a/public/images/organizer/\354\235\264\354\212\271\355\235\254.webp" and /dev/null differ
diff --git "a/public/images/organizer/\354\235\264\354\235\200\354\247\200.webp" "b/public/images/organizer/\354\235\264\354\235\200\354\247\200.webp"
deleted file mode 100644
index 7f10ca7b..00000000
Binary files "a/public/images/organizer/\354\235\264\354\235\200\354\247\200.webp" and /dev/null differ
diff --git "a/public/images/organizer/\354\235\264\354\242\205\354\233\220.webp" "b/public/images/organizer/\354\235\264\354\242\205\354\233\220.webp"
deleted file mode 100644
index e8acfd8f..00000000
Binary files "a/public/images/organizer/\354\235\264\354\242\205\354\233\220.webp" and /dev/null differ
diff --git "a/public/images/organizer/\354\235\264\354\260\254\354\247\204.webp" "b/public/images/organizer/\354\235\264\354\260\254\354\247\204.webp"
deleted file mode 100644
index 55ab4cbc..00000000
Binary files "a/public/images/organizer/\354\235\264\354\260\254\354\247\204.webp" and /dev/null differ
diff --git "a/public/images/organizer/\354\236\204\355\232\250\354\227\260.webp" "b/public/images/organizer/\354\236\204\355\232\250\354\227\260.webp"
deleted file mode 100644
index 82ead86b..00000000
Binary files "a/public/images/organizer/\354\236\204\355\232\250\354\227\260.webp" and /dev/null differ
diff --git "a/public/images/organizer/\354\240\225\353\214\200\354\234\244.webp" "b/public/images/organizer/\354\240\225\353\214\200\354\234\244.webp"
deleted file mode 100644
index e0feba7b..00000000
Binary files "a/public/images/organizer/\354\240\225\353\214\200\354\234\244.webp" and /dev/null differ
diff --git "a/public/images/organizer/\354\260\250\354\232\224\354\205\211.webp" "b/public/images/organizer/\354\260\250\354\232\224\354\205\211.webp"
deleted file mode 100644
index 26b8f0ee..00000000
Binary files "a/public/images/organizer/\354\260\250\354\232\224\354\205\211.webp" and /dev/null differ
diff --git a/public/images/position/aos.png b/public/images/position/aos.png
new file mode 100644
index 00000000..064700ff
Binary files /dev/null and b/public/images/position/aos.png differ
diff --git a/public/images/position/design.png b/public/images/position/design.png
new file mode 100644
index 00000000..537885ac
Binary files /dev/null and b/public/images/position/design.png differ
diff --git a/public/images/position/icon/back.webp b/public/images/position/icon/back.webp
deleted file mode 100644
index a6c1f934..00000000
Binary files a/public/images/position/icon/back.webp and /dev/null differ
diff --git a/public/images/position/icon/project-link--active.webp b/public/images/position/icon/project-link--active.webp
deleted file mode 100644
index a73fe3ff..00000000
Binary files a/public/images/position/icon/project-link--active.webp and /dev/null differ
diff --git a/public/images/position/icon/project-link--default.webp b/public/images/position/icon/project-link--default.webp
deleted file mode 100644
index 6065a8b8..00000000
Binary files a/public/images/position/icon/project-link--default.webp and /dev/null differ
diff --git a/public/images/position/icon/project-prize.webp b/public/images/position/icon/project-prize.webp
deleted file mode 100644
index 2056907b..00000000
Binary files a/public/images/position/icon/project-prize.webp and /dev/null differ
diff --git a/public/images/position/ios.png b/public/images/position/ios.png
new file mode 100644
index 00000000..db694561
Binary files /dev/null and b/public/images/position/ios.png differ
diff --git a/public/images/position/server.png b/public/images/position/server.png
new file mode 100644
index 00000000..7e0ae993
Binary files /dev/null and b/public/images/position/server.png differ
diff --git a/public/images/position/web.png b/public/images/position/web.png
new file mode 100644
index 00000000..09a424e9
Binary files /dev/null and b/public/images/position/web.png differ
diff --git a/public/projects/thumbnails/archive.png "b/public/images/project/10\352\270\260/Archive.png"
similarity index 100%
rename from public/projects/thumbnails/archive.png
rename to "public/images/project/10\352\270\260/Archive.png"
diff --git a/public/projects/thumbnails/bboxx.png "b/public/images/project/10\352\270\260/BBOXX.png"
similarity index 100%
rename from public/projects/thumbnails/bboxx.png
rename to "public/images/project/10\352\270\260/BBOXX.png"
diff --git a/public/projects/thumbnails/bodymood.png "b/public/images/project/10\352\270\260/Bodymood.png"
similarity index 100%
rename from public/projects/thumbnails/bodymood.png
rename to "public/images/project/10\352\270\260/Bodymood.png"
diff --git a/public/projects/thumbnails/imgoing.png "b/public/images/project/10\352\270\260/IMGOING.png"
similarity index 100%
rename from public/projects/thumbnails/imgoing.png
rename to "public/images/project/10\352\270\260/IMGOING.png"
diff --git a/public/projects/thumbnails/omo.png "b/public/images/project/10\352\270\260/OMO.png"
similarity index 100%
rename from public/projects/thumbnails/omo.png
rename to "public/images/project/10\352\270\260/OMO.png"
diff --git a/public/projects/thumbnails/noonbody.png "b/public/images/project/10\352\270\260/noonbody.png"
similarity index 100%
rename from public/projects/thumbnails/noonbody.png
rename to "public/images/project/10\352\270\260/noonbody.png"
diff --git "a/public/projects/thumbnails/\353\202\230\353\202\230\352\263\265.png" "b/public/images/project/10\352\270\260/\353\202\230\353\202\230\352\263\265.png"
similarity index 100%
rename from "public/projects/thumbnails/\353\202\230\353\202\230\352\263\265.png"
rename to "public/images/project/10\352\270\260/\353\202\230\353\202\230\352\263\265.png"
diff --git "a/public/projects/thumbnails/\353\214\200\353\217\231\353\271\265\354\247\200\353\217\204.png" "b/public/images/project/10\352\270\260/\353\214\200\353\217\231\353\271\265\354\247\200\353\217\204.png"
similarity index 100%
rename from "public/projects/thumbnails/\353\214\200\353\217\231\353\271\265\354\247\200\353\217\204.png"
rename to "public/images/project/10\352\270\260/\353\214\200\353\217\231\353\271\265\354\247\200\353\217\204.png"
diff --git "a/public/projects/thumbnails/\354\230\201\354\260\250.png" "b/public/images/project/10\352\270\260/\354\230\201\354\260\250.png"
similarity index 100%
rename from "public/projects/thumbnails/\354\230\201\354\260\250.png"
rename to "public/images/project/10\352\270\260/\354\230\201\354\260\250.png"
diff --git "a/public/projects/thumbnails/\354\230\244\353\247\265\353\225\241.png" "b/public/images/project/10\352\270\260/\354\230\244\353\247\265\353\225\241.png"
similarity index 100%
rename from "public/projects/thumbnails/\354\230\244\353\247\265\353\225\241.png"
rename to "public/images/project/10\352\270\260/\354\230\244\353\247\265\353\225\241.png"
diff --git "a/public/projects/thumbnails/\352\260\234\353\257\270\353\212\224\355\210\260\355\210\260.png" "b/public/images/project/11\352\270\260/\352\260\234\353\257\270\353\212\224 \355\210\260\355\210\260.png"
similarity index 100%
rename from "public/projects/thumbnails/\352\260\234\353\257\270\353\212\224\355\210\260\355\210\260.png"
rename to "public/images/project/11\352\270\260/\352\260\234\353\257\270\353\212\224 \355\210\260\355\210\260.png"
diff --git "a/public/projects/thumbnails/\353\252\275\354\213\244.png" "b/public/images/project/11\352\270\260/\353\252\275\354\213\244.png"
similarity index 100%
rename from "public/projects/thumbnails/\353\252\275\354\213\244.png"
rename to "public/images/project/11\352\270\260/\353\252\275\354\213\244.png"
diff --git "a/public/projects/thumbnails/\353\254\264\353\223\234\355\224\275.png" "b/public/images/project/11\352\270\260/\353\254\264\353\223\234\355\224\275.png"
similarity index 100%
rename from "public/projects/thumbnails/\353\254\264\353\223\234\355\224\275.png"
rename to "public/images/project/11\352\270\260/\353\254\264\353\223\234\355\224\275.png"
diff --git "a/public/projects/thumbnails/\353\260\224\355\206\265.png" "b/public/images/project/11\352\270\260/\353\260\224\355\206\265.png"
similarity index 100%
rename from "public/projects/thumbnails/\353\260\224\355\206\265.png"
rename to "public/images/project/11\352\270\260/\353\260\224\355\206\265.png"
diff --git "a/public/projects/thumbnails/\353\271\204\354\226\264\354\227\220\354\226\264.png" "b/public/images/project/11\352\270\260/\353\271\204\354\226\264\354\227\220\354\226\264.png"
similarity index 100%
rename from "public/projects/thumbnails/\353\271\204\354\226\264\354\227\220\354\226\264.png"
rename to "public/images/project/11\352\270\260/\353\271\204\354\226\264\354\227\220\354\226\264.png"
diff --git "a/public/projects/thumbnails/\354\230\201\352\260\220\355\203\261.png" "b/public/images/project/11\352\270\260/\354\230\201\352\260\220\355\203\261.png"
similarity index 100%
rename from "public/projects/thumbnails/\354\230\201\352\260\220\355\203\261.png"
rename to "public/images/project/11\352\270\260/\354\230\201\352\260\220\355\203\261.png"
diff --git "a/public/projects/thumbnails/\355\213\260\355\202\244\355\203\200\354\271\264.png" "b/public/images/project/11\352\270\260/\355\213\260\355\202\244\355\203\200\354\271\264.png"
similarity index 100%
rename from "public/projects/thumbnails/\355\213\260\355\202\244\355\203\200\354\271\264.png"
rename to "public/images/project/11\352\270\260/\355\213\260\355\202\244\355\203\200\354\271\264.png"
diff --git "a/public/projects/thumbnails/\355\216\230\354\226\264\353\237\254.png" "b/public/images/project/11\352\270\260/\355\216\230\354\226\264\353\237\254.png"
similarity index 100%
rename from "public/projects/thumbnails/\355\216\230\354\226\264\353\237\254.png"
rename to "public/images/project/11\352\270\260/\355\216\230\354\226\264\353\237\254.png"
diff --git a/public/projects/thumbnails/KNOCKNOCK.png "b/public/images/project/12\352\270\260/KNOCKNOCK.png"
similarity index 100%
rename from public/projects/thumbnails/KNOCKNOCK.png
rename to "public/images/project/12\352\270\260/KNOCKNOCK.png"
diff --git a/public/projects/thumbnails/PING-PONG.png "b/public/images/project/12\352\270\260/PING-PONG!.png"
similarity index 100%
rename from public/projects/thumbnails/PING-PONG.png
rename to "public/images/project/12\352\270\260/PING-PONG!.png"
diff --git a/public/projects/thumbnails/TICLEMOA.png "b/public/images/project/12\352\270\260/TICLEMOA.png"
similarity index 100%
rename from public/projects/thumbnails/TICLEMOA.png
rename to "public/images/project/12\352\270\260/TICLEMOA.png"
diff --git "a/public/projects/thumbnails/\352\274\254\352\271\203.png" "b/public/images/project/12\352\270\260/\352\274\254\352\271\203.png"
similarity index 100%
rename from "public/projects/thumbnails/\352\274\254\352\271\203.png"
rename to "public/images/project/12\352\270\260/\352\274\254\352\271\203.png"
diff --git "a/public/projects/thumbnails/\353\230\221\354\212\244.png" "b/public/images/project/12\352\270\260/\353\230\221\354\212\244.png"
similarity index 100%
rename from "public/projects/thumbnails/\353\230\221\354\212\244.png"
rename to "public/images/project/12\352\270\260/\353\230\221\354\212\244.png"
diff --git "a/public/projects/thumbnails/\354\225\204\353\247\236\353\213\244.png" "b/public/images/project/12\352\270\260/\354\225\204\353\247\236\353\213\244.png"
similarity index 100%
rename from "public/projects/thumbnails/\354\225\204\353\247\236\353\213\244.png"
rename to "public/images/project/12\352\270\260/\354\225\204\353\247\236\353\213\244.png"
diff --git "a/public/projects/thumbnails/\354\247\235\354\213\254\354\202\274\354\235\274.png" "b/public/images/project/12\352\270\260/\354\247\235\354\213\254\354\202\274\354\235\274.png"
similarity index 100%
rename from "public/projects/thumbnails/\354\247\235\354\213\254\354\202\274\354\235\274.png"
rename to "public/images/project/12\352\270\260/\354\247\235\354\213\254\354\202\274\354\235\274.png"
diff --git "a/public/projects/thumbnails/\354\275\224\355\200\204\353\246\254\355\213\260.png" "b/public/images/project/12\352\270\260/\354\275\224\355\200\204\353\246\254\355\213\260.png"
similarity index 100%
rename from "public/projects/thumbnails/\354\275\224\355\200\204\353\246\254\355\213\260.png"
rename to "public/images/project/12\352\270\260/\354\275\224\355\200\204\353\246\254\355\213\260.png"
diff --git "a/public/images/project/13\352\270\260/Ding-Dong (\353\224\251\353\217\231).png" "b/public/images/project/13\352\270\260/Ding-Dong (\353\224\251\353\217\231).png"
new file mode 100644
index 00000000..e42d06e4
Binary files /dev/null and "b/public/images/project/13\352\270\260/Ding-Dong (\353\224\251\353\217\231).png" differ
diff --git "a/public/images/project/13\352\270\260/Na Lab(\353\202\230\353\236\251).png" "b/public/images/project/13\352\270\260/Na Lab(\353\202\230\353\236\251).png"
new file mode 100644
index 00000000..fbebccbe
Binary files /dev/null and "b/public/images/project/13\352\270\260/Na Lab(\353\202\230\353\236\251).png" differ
diff --git "a/public/images/project/13\352\270\260/Pumping (\355\216\214\355\225\221).png" "b/public/images/project/13\352\270\260/Pumping (\355\216\214\355\225\221).png"
new file mode 100644
index 00000000..d44c36af
Binary files /dev/null and "b/public/images/project/13\352\270\260/Pumping (\355\216\214\355\225\221).png" differ
diff --git "a/public/images/project/13\352\270\260/Street Drop.png" "b/public/images/project/13\352\270\260/Street Drop.png"
new file mode 100644
index 00000000..2f247cf5
Binary files /dev/null and "b/public/images/project/13\352\270\260/Street Drop.png" differ
diff --git "a/public/images/project/13\352\270\260/Whatnow (\354\231\224\353\202\230).png" "b/public/images/project/13\352\270\260/Whatnow (\354\231\224\353\202\230).png"
new file mode 100644
index 00000000..51bb5fff
Binary files /dev/null and "b/public/images/project/13\352\270\260/Whatnow (\354\231\224\353\202\230).png" differ
diff --git "a/public/images/project/13\352\270\260/\354\230\244\353\262\204\354\212\244\354\234\227.png" "b/public/images/project/13\352\270\260/\354\230\244\353\262\204\354\212\244\354\234\227.png"
new file mode 100644
index 00000000..fb574d4c
Binary files /dev/null and "b/public/images/project/13\352\270\260/\354\230\244\353\262\204\354\212\244\354\234\227.png" differ
diff --git "a/public/images/project/13\352\270\260/\354\235\270\354\202\254\354\235\264\355\212\270\354\225\204\354\233\203.png" "b/public/images/project/13\352\270\260/\354\235\270\354\202\254\354\235\264\355\212\270\354\225\204\354\233\203.png"
new file mode 100644
index 00000000..6ed99a10
Binary files /dev/null and "b/public/images/project/13\352\270\260/\354\235\270\354\202\254\354\235\264\355\212\270\354\225\204\354\233\203.png" differ
diff --git "a/public/images/project/13\352\270\260/\354\236\220\353\246\260\352\263\240\353\271\204.png" "b/public/images/project/13\352\270\260/\354\236\220\353\246\260\352\263\240\353\271\204.png"
new file mode 100644
index 00000000..f5a76ac0
Binary files /dev/null and "b/public/images/project/13\352\270\260/\354\236\220\353\246\260\352\263\240\353\271\204.png" differ
diff --git "a/public/projects/thumbnails/\353\234\273\353\260\226\354\235\230\355\200\264\354\246\210.png" "b/public/images/project/5\352\270\260/\353\234\273\353\260\226\354\235\230 \355\200\264\354\246\210.png"
similarity index 100%
rename from "public/projects/thumbnails/\353\234\273\353\260\226\354\235\230\355\200\264\354\246\210.png"
rename to "public/images/project/5\352\270\260/\353\234\273\353\260\226\354\235\230 \355\200\264\354\246\210.png"
diff --git a/public/projects/thumbnails/therto.png "b/public/images/project/6\352\270\260/Therto.png"
similarity index 100%
rename from public/projects/thumbnails/therto.png
rename to "public/images/project/6\352\270\260/Therto.png"
diff --git "a/public/projects/thumbnails/\354\271\274\355\207\264\354\232\224\354\240\225.png" "b/public/images/project/6\352\270\260/\354\271\274\355\207\264\354\232\224\354\240\225.png"
similarity index 100%
rename from "public/projects/thumbnails/\354\271\274\355\207\264\354\232\224\354\240\225.png"
rename to "public/images/project/6\352\270\260/\354\271\274\355\207\264\354\232\224\354\240\225.png"
diff --git "a/public/projects/thumbnails/\354\277\250\355\224\274\354\212\244.png" "b/public/images/project/6\352\270\260/\354\277\250\355\224\274\354\212\244.png"
similarity index 100%
rename from "public/projects/thumbnails/\354\277\250\355\224\274\354\212\244.png"
rename to "public/images/project/6\352\270\260/\354\277\250\355\224\274\354\212\244.png"
diff --git "a/public/projects/thumbnails/\352\260\200\354\212\264\354\206\2153\354\262\234\354\233\220.png" "b/public/images/project/7\352\270\260/\352\260\200\354\212\264\354\206\215 3\354\262\234\354\233\220.png"
similarity index 100%
rename from "public/projects/thumbnails/\352\260\200\354\212\264\354\206\2153\354\262\234\354\233\220.png"
rename to "public/images/project/7\352\270\260/\352\260\200\354\212\264\354\206\215 3\354\262\234\354\233\220.png"
diff --git a/public/projects/thumbnails/avocado.png "b/public/images/project/8\352\270\260/Avocado.png"
similarity index 100%
rename from public/projects/thumbnails/avocado.png
rename to "public/images/project/8\352\270\260/Avocado.png"
diff --git "a/public/projects/thumbnails/\353\266\201\354\252\275\354\234\274\353\241\234.png" "b/public/images/project/8\352\270\260/\353\266\201\354\252\275\354\234\274\353\241\234.png"
similarity index 100%
rename from "public/projects/thumbnails/\353\266\201\354\252\275\354\234\274\353\241\234.png"
rename to "public/images/project/8\352\270\260/\353\266\201\354\252\275\354\234\274\353\241\234.png"
diff --git "a/public/projects/thumbnails/\354\225\204\353\254\264\352\261\260\353\202\230.png" "b/public/images/project/8\352\270\260/\354\225\204\353\254\264\352\261\260\353\202\230.png"
similarity index 100%
rename from "public/projects/thumbnails/\354\225\204\353\254\264\352\261\260\353\202\230.png"
rename to "public/images/project/8\352\270\260/\354\225\204\353\254\264\352\261\260\353\202\230.png"
diff --git "a/public/projects/thumbnails/3\353\214\200\354\226\274\353\247\210.png" "b/public/images/project/9\352\270\260/3\353\214\200 \354\226\274\353\247\210.png"
similarity index 100%
rename from "public/projects/thumbnails/3\353\214\200\354\226\274\353\247\210.png"
rename to "public/images/project/9\352\270\260/3\353\214\200 \354\226\274\353\247\210.png"
diff --git a/public/projects/thumbnails/hush.png "b/public/images/project/9\352\270\260/Hush.png"
similarity index 100%
rename from public/projects/thumbnails/hush.png
rename to "public/images/project/9\352\270\260/Hush.png"
diff --git a/public/projects/thumbnails/tooni.png "b/public/images/project/9\352\270\260/TOONI TOONI.png"
similarity index 100%
rename from public/projects/thumbnails/tooni.png
rename to "public/images/project/9\352\270\260/TOONI TOONI.png"
diff --git "a/public/projects/thumbnails/\353\247\201\355\201\254\354\244\215\354\244\215.png" "b/public/images/project/9\352\270\260/\353\247\201\355\201\254\354\244\215\354\244\215.png"
similarity index 100%
rename from "public/projects/thumbnails/\353\247\201\355\201\254\354\244\215\354\244\215.png"
rename to "public/images/project/9\352\270\260/\353\247\201\355\201\254\354\244\215\354\244\215.png"
diff --git "a/public/projects/thumbnails/\353\247\210\354\235\264\353\240\210\354\213\234\355\224\275.png" "b/public/images/project/9\352\270\260/\353\247\210\354\235\264\353\240\210\354\213\234\355\224\275.png"
similarity index 100%
rename from "public/projects/thumbnails/\353\247\210\354\235\264\353\240\210\354\213\234\355\224\275.png"
rename to "public/images/project/9\352\270\260/\353\247\210\354\235\264\353\240\210\354\213\234\355\224\275.png"
diff --git "a/public/projects/thumbnails/\354\230\244\353\212\230\354\235\230\355\205\214\354\212\244\355\212\270.png" "b/public/images/project/9\352\270\260/\354\230\244\353\212\230\354\235\230 \355\205\214\354\212\244\355\212\270.png"
similarity index 100%
rename from "public/projects/thumbnails/\354\230\244\353\212\230\354\235\230\355\205\214\354\212\244\355\212\270.png"
rename to "public/images/project/9\352\270\260/\354\230\244\353\212\230\354\235\230 \355\205\214\354\212\244\355\212\270.png"
diff --git "a/public/projects/thumbnails/\354\240\234\353\241\234\354\232\260\354\245\254.png" "b/public/images/project/9\352\270\260/\354\240\234\353\241\234\354\232\260\354\245\254.png"
similarity index 100%
rename from "public/projects/thumbnails/\354\240\234\353\241\234\354\232\260\354\245\254.png"
rename to "public/images/project/9\352\270\260/\354\240\234\353\241\234\354\232\260\354\245\254.png"
diff --git "a/public/projects/thumbnails/\355\201\254\353\236\230\354\273\244\353\266\201.png" "b/public/images/project/9\352\270\260/\355\201\254\353\236\230\354\273\244\353\266\201.png"
similarity index 100%
rename from "public/projects/thumbnails/\355\201\254\353\236\230\354\273\244\353\266\201.png"
rename to "public/images/project/9\352\270\260/\355\201\254\353\236\230\354\273\244\353\266\201.png"
diff --git a/public/images/recruit-detail/header-android.webp b/public/images/recruit-detail/header-android.webp
deleted file mode 100644
index c846e321..00000000
Binary files a/public/images/recruit-detail/header-android.webp and /dev/null differ
diff --git a/public/images/recruit-detail/header-design.webp b/public/images/recruit-detail/header-design.webp
deleted file mode 100644
index a1bd028e..00000000
Binary files a/public/images/recruit-detail/header-design.webp and /dev/null differ
diff --git a/public/images/recruit-detail/header-ios.webp b/public/images/recruit-detail/header-ios.webp
deleted file mode 100644
index aedcdcc4..00000000
Binary files a/public/images/recruit-detail/header-ios.webp and /dev/null differ
diff --git a/public/images/recruit-detail/header-server.webp b/public/images/recruit-detail/header-server.webp
deleted file mode 100644
index 879e539b..00000000
Binary files a/public/images/recruit-detail/header-server.webp and /dev/null differ
diff --git a/public/images/recruit-detail/header-web.webp b/public/images/recruit-detail/header-web.webp
deleted file mode 100644
index 14d72df0..00000000
Binary files a/public/images/recruit-detail/header-web.webp and /dev/null differ
diff --git "a/public/images/recruit-detail/\352\271\200\353\217\231\352\267\234.webp" "b/public/images/recruit-detail/\352\271\200\353\217\231\352\267\234.webp"
deleted file mode 100644
index 095e3b1a..00000000
Binary files "a/public/images/recruit-detail/\352\271\200\353\217\231\352\267\234.webp" and /dev/null differ
diff --git "a/public/images/recruit-detail/\352\271\200\353\257\274\354\210\230.webp" "b/public/images/recruit-detail/\352\271\200\353\257\274\354\210\230.webp"
deleted file mode 100644
index 1f9524ad..00000000
Binary files "a/public/images/recruit-detail/\352\271\200\353\257\274\354\210\230.webp" and /dev/null differ
diff --git "a/public/images/recruit-detail/\352\271\200\354\243\274\355\231\230.webp" "b/public/images/recruit-detail/\352\271\200\354\243\274\355\231\230.webp"
deleted file mode 100644
index b5e16674..00000000
Binary files "a/public/images/recruit-detail/\352\271\200\354\243\274\355\231\230.webp" and /dev/null differ
diff --git "a/public/images/recruit-detail/\352\271\200\355\230\234\354\235\270.webp" "b/public/images/recruit-detail/\352\271\200\355\230\234\354\235\270.webp"
deleted file mode 100644
index 583ebacb..00000000
Binary files "a/public/images/recruit-detail/\352\271\200\355\230\234\354\235\270.webp" and /dev/null differ
diff --git "a/public/images/recruit-detail/\353\260\225\354\210\230\354\227\260.webp" "b/public/images/recruit-detail/\353\260\225\354\210\230\354\227\260.webp"
deleted file mode 100644
index b808ad46..00000000
Binary files "a/public/images/recruit-detail/\353\260\225\354\210\230\354\227\260.webp" and /dev/null differ
diff --git "a/public/images/recruit-detail/\354\230\244\355\230\234\354\204\261.webp" "b/public/images/recruit-detail/\354\230\244\355\230\234\354\204\261.webp"
deleted file mode 100644
index 751d9a37..00000000
Binary files "a/public/images/recruit-detail/\354\230\244\355\230\234\354\204\261.webp" and /dev/null differ
diff --git "a/public/images/recruit-detail/\354\235\264\354\204\261\355\203\234.webp" "b/public/images/recruit-detail/\354\235\264\354\204\261\355\203\234.webp"
deleted file mode 100644
index 662e0f71..00000000
Binary files "a/public/images/recruit-detail/\354\235\264\354\204\261\355\203\234.webp" and /dev/null differ
diff --git "a/public/images/recruit-detail/\354\235\264\354\212\271\355\235\254.webp" "b/public/images/recruit-detail/\354\235\264\354\212\271\355\235\254.webp"
deleted file mode 100644
index 940a6d2f..00000000
Binary files "a/public/images/recruit-detail/\354\235\264\354\212\271\355\235\254.webp" and /dev/null differ
diff --git "a/public/images/recruit-detail/\354\235\264\354\242\205\354\233\220.webp" "b/public/images/recruit-detail/\354\235\264\354\242\205\354\233\220.webp"
deleted file mode 100644
index bab6f226..00000000
Binary files "a/public/images/recruit-detail/\354\235\264\354\242\205\354\233\220.webp" and /dev/null differ
diff --git "a/public/images/recruit-detail/\354\235\264\354\260\254\354\247\204.webp" "b/public/images/recruit-detail/\354\235\264\354\260\254\354\247\204.webp"
deleted file mode 100644
index 379bb5cf..00000000
Binary files "a/public/images/recruit-detail/\354\235\264\354\260\254\354\247\204.webp" and /dev/null differ
diff --git "a/public/images/recruit-detail/\354\236\204\355\232\250\354\227\260.webp" "b/public/images/recruit-detail/\354\236\204\355\232\250\354\227\260.webp"
deleted file mode 100644
index 0722ad6c..00000000
Binary files "a/public/images/recruit-detail/\354\236\204\355\232\250\354\227\260.webp" and /dev/null differ
diff --git "a/public/images/recruit-detail/\354\240\204\355\225\264\354\204\261.webp" "b/public/images/recruit-detail/\354\240\204\355\225\264\354\204\261.webp"
deleted file mode 100644
index 183770fd..00000000
Binary files "a/public/images/recruit-detail/\354\240\204\355\225\264\354\204\261.webp" and /dev/null differ
diff --git "a/public/images/recruit-detail/\354\240\225\353\214\200\354\234\244.webp" "b/public/images/recruit-detail/\354\240\225\353\214\200\354\234\244.webp"
deleted file mode 100644
index 58aa42f6..00000000
Binary files "a/public/images/recruit-detail/\354\240\225\353\214\200\354\234\244.webp" and /dev/null differ
diff --git "a/public/images/recruit-detail/\354\260\250\354\232\224\354\205\211.webp" "b/public/images/recruit-detail/\354\260\250\354\232\224\354\205\211.webp"
deleted file mode 100644
index f8e371ec..00000000
Binary files "a/public/images/recruit-detail/\354\260\250\354\232\224\354\205\211.webp" and /dev/null differ
diff --git "a/public/images/recruit-detail/\355\231\251\352\267\234\354\235\274.webp" "b/public/images/recruit-detail/\355\231\251\352\267\234\354\235\274.webp"
deleted file mode 100644
index 65890e85..00000000
Binary files "a/public/images/recruit-detail/\355\231\251\352\267\234\354\235\274.webp" and /dev/null differ
diff --git a/public/images/recruit/home.webp b/public/images/recruit/home.webp
deleted file mode 100644
index 55017e5b..00000000
Binary files a/public/images/recruit/home.webp and /dev/null differ
diff --git a/public/images/session/final.png b/public/images/session/final.png
new file mode 100644
index 00000000..01d39bd1
Binary files /dev/null and b/public/images/session/final.png differ
diff --git a/public/images/session/launching.png b/public/images/session/launching.png
new file mode 100644
index 00000000..1c7e618c
Binary files /dev/null and b/public/images/session/launching.png differ
diff --git a/public/images/session/midterm.png b/public/images/session/midterm.png
new file mode 100644
index 00000000..17e1eeac
Binary files /dev/null and b/public/images/session/midterm.png differ
diff --git a/public/images/session/networking.png b/public/images/session/networking.png
new file mode 100644
index 00000000..2994d758
Binary files /dev/null and b/public/images/session/networking.png differ
diff --git a/public/images/session/orientation.png b/public/images/session/orientation.png
new file mode 100644
index 00000000..4311207e
Binary files /dev/null and b/public/images/session/orientation.png differ
diff --git a/public/images/session/usability.png b/public/images/session/usability.png
new file mode 100644
index 00000000..a764a6df
Binary files /dev/null and b/public/images/session/usability.png differ
diff --git a/public/images/sign/about.png b/public/images/sign/about.png
new file mode 100644
index 00000000..9b27a490
Binary files /dev/null and b/public/images/sign/about.png differ
diff --git a/public/images/sign/main.png b/public/images/sign/main.png
new file mode 100644
index 00000000..8f7677b7
Binary files /dev/null and b/public/images/sign/main.png differ
diff --git a/public/images/sign/project.png b/public/images/sign/project.png
new file mode 100644
index 00000000..1a84a5fe
Binary files /dev/null and b/public/images/sign/project.png differ
diff --git a/public/images/sign/recruit.png b/public/images/sign/recruit.png
new file mode 100644
index 00000000..cc30e77d
Binary files /dev/null and b/public/images/sign/recruit.png differ
diff --git a/public/images/sponsor/aws.svg b/public/images/sponsor/aws.svg
deleted file mode 100644
index 09328394..00000000
--- a/public/images/sponsor/aws.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/public/images/sponsor/dcamp.svg b/public/images/sponsor/dcamp.svg
deleted file mode 100644
index 643c5ad0..00000000
--- a/public/images/sponsor/dcamp.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/public/images/sponsor/impact-campus.svg b/public/images/sponsor/impact-campus.svg
deleted file mode 100644
index dcbe46de..00000000
--- a/public/images/sponsor/impact-campus.svg
+++ /dev/null
@@ -1,49 +0,0 @@
-
\ No newline at end of file
diff --git a/public/images/sponsor/inflearn.svg b/public/images/sponsor/inflearn.svg
deleted file mode 100644
index e61fb37c..00000000
--- a/public/images/sponsor/inflearn.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/public/images/sponsor/naver-cloud.svg b/public/images/sponsor/naver-cloud.svg
deleted file mode 100644
index 6b218a00..00000000
--- a/public/images/sponsor/naver-cloud.svg
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
diff --git a/public/images/support/inflearn.png b/public/images/support/inflearn.png
new file mode 100644
index 00000000..8493da1b
Binary files /dev/null and b/public/images/support/inflearn.png differ
diff --git a/public/images/support/naver-cloud.png b/public/images/support/naver-cloud.png
new file mode 100644
index 00000000..54269f3d
Binary files /dev/null and b/public/images/support/naver-cloud.png differ
diff --git a/public/images/support/next.png b/public/images/support/next.png
new file mode 100644
index 00000000..08a6a54d
Binary files /dev/null and b/public/images/support/next.png differ
diff --git "a/public/images/support/\353\252\250\353\221\220\354\235\230\354\227\260\352\265\254\354\206\214.png" "b/public/images/support/\353\252\250\353\221\220\354\235\230\354\227\260\352\265\254\354\206\214.png"
new file mode 100644
index 00000000..403a68c5
Binary files /dev/null and "b/public/images/support/\353\252\250\353\221\220\354\235\230\354\227\260\352\265\254\354\206\214.png" differ
diff --git a/public/og-main.png b/public/og-main.png
new file mode 100644
index 00000000..ea120a0c
Binary files /dev/null and b/public/og-main.png differ
diff --git a/public/og-main.webp b/public/og-main.webp
deleted file mode 100644
index 1ea92873..00000000
Binary files a/public/og-main.webp and /dev/null differ
diff --git a/public/project/check.webp b/public/project/check.webp
deleted file mode 100644
index 4409f4c1..00000000
Binary files a/public/project/check.webp and /dev/null differ
diff --git a/public/project/detailBtn.webp b/public/project/detailBtn.webp
deleted file mode 100644
index 344f74c1..00000000
Binary files a/public/project/detailBtn.webp and /dev/null differ
diff --git a/public/project/dropdown.webp b/public/project/dropdown.webp
deleted file mode 100644
index 4bc07176..00000000
Binary files a/public/project/dropdown.webp and /dev/null differ
diff --git a/public/project/header-back.webp b/public/project/header-back.webp
deleted file mode 100644
index 1e0c8f8d..00000000
Binary files a/public/project/header-back.webp and /dev/null differ
diff --git a/public/project/header-front.webp b/public/project/header-front.webp
deleted file mode 100644
index b74cd8e9..00000000
Binary files a/public/project/header-front.webp and /dev/null differ
diff --git a/public/project/mobile-header-back.webp b/public/project/mobile-header-back.webp
deleted file mode 100644
index 669abec0..00000000
Binary files a/public/project/mobile-header-back.webp and /dev/null differ
diff --git a/public/project/mobile-header-front.webp b/public/project/mobile-header-front.webp
deleted file mode 100644
index 64171b15..00000000
Binary files a/public/project/mobile-header-front.webp and /dev/null differ
diff --git "a/public/projects/details/3\353\214\200\354\226\274\353\247\210.png" "b/public/projects/details/3\353\214\200\354\226\274\353\247\210.png"
deleted file mode 100644
index d635f2f5..00000000
Binary files "a/public/projects/details/3\353\214\200\354\226\274\353\247\210.png" and /dev/null differ
diff --git a/public/projects/details/KNOCKNOCK.png b/public/projects/details/KNOCKNOCK.png
deleted file mode 100644
index 37fea8e0..00000000
Binary files a/public/projects/details/KNOCKNOCK.png and /dev/null differ
diff --git a/public/projects/details/PING-PONG.png b/public/projects/details/PING-PONG.png
deleted file mode 100644
index 42b6eade..00000000
Binary files a/public/projects/details/PING-PONG.png and /dev/null differ
diff --git a/public/projects/details/TICLEMOA.png b/public/projects/details/TICLEMOA.png
deleted file mode 100644
index a2b87f3f..00000000
Binary files a/public/projects/details/TICLEMOA.png and /dev/null differ
diff --git a/public/projects/details/archive.png b/public/projects/details/archive.png
deleted file mode 100644
index 705e7a6c..00000000
Binary files a/public/projects/details/archive.png and /dev/null differ
diff --git a/public/projects/details/avocado.png b/public/projects/details/avocado.png
deleted file mode 100644
index daee00d8..00000000
Binary files a/public/projects/details/avocado.png and /dev/null differ
diff --git a/public/projects/details/bboxx.png b/public/projects/details/bboxx.png
deleted file mode 100644
index 1284ee86..00000000
Binary files a/public/projects/details/bboxx.png and /dev/null differ
diff --git a/public/projects/details/bodymood.png b/public/projects/details/bodymood.png
deleted file mode 100644
index 95207497..00000000
Binary files a/public/projects/details/bodymood.png and /dev/null differ
diff --git a/public/projects/details/hush.png b/public/projects/details/hush.png
deleted file mode 100644
index fb7b0563..00000000
Binary files a/public/projects/details/hush.png and /dev/null differ
diff --git a/public/projects/details/imgoing.png b/public/projects/details/imgoing.png
deleted file mode 100644
index 8efd285f..00000000
Binary files a/public/projects/details/imgoing.png and /dev/null differ
diff --git a/public/projects/details/noonbody.png b/public/projects/details/noonbody.png
deleted file mode 100644
index 3e22735c..00000000
Binary files a/public/projects/details/noonbody.png and /dev/null differ
diff --git a/public/projects/details/omo.png b/public/projects/details/omo.png
deleted file mode 100644
index 76f637d0..00000000
Binary files a/public/projects/details/omo.png and /dev/null differ
diff --git a/public/projects/details/therto.png b/public/projects/details/therto.png
deleted file mode 100644
index c78fa6da..00000000
Binary files a/public/projects/details/therto.png and /dev/null differ
diff --git a/public/projects/details/tooni.png b/public/projects/details/tooni.png
deleted file mode 100644
index 3986e2ec..00000000
Binary files a/public/projects/details/tooni.png and /dev/null differ
diff --git "a/public/projects/details/\352\260\200\354\212\264\354\206\2153\354\262\234\354\233\220.png" "b/public/projects/details/\352\260\200\354\212\264\354\206\2153\354\262\234\354\233\220.png"
deleted file mode 100644
index 9ab1ff76..00000000
Binary files "a/public/projects/details/\352\260\200\354\212\264\354\206\2153\354\262\234\354\233\220.png" and /dev/null differ
diff --git "a/public/projects/details/\352\260\234\353\257\270\353\212\224\355\210\260\355\210\260.png" "b/public/projects/details/\352\260\234\353\257\270\353\212\224\355\210\260\355\210\260.png"
deleted file mode 100644
index a21ae59c..00000000
Binary files "a/public/projects/details/\352\260\234\353\257\270\353\212\224\355\210\260\355\210\260.png" and /dev/null differ
diff --git "a/public/projects/details/\352\274\254\352\271\203.png" "b/public/projects/details/\352\274\254\352\271\203.png"
deleted file mode 100644
index 4dfe436f..00000000
Binary files "a/public/projects/details/\352\274\254\352\271\203.png" and /dev/null differ
diff --git "a/public/projects/details/\353\202\230\353\202\230\352\263\265.png" "b/public/projects/details/\353\202\230\353\202\230\352\263\265.png"
deleted file mode 100644
index 6394c279..00000000
Binary files "a/public/projects/details/\353\202\230\353\202\230\352\263\265.png" and /dev/null differ
diff --git "a/public/projects/details/\353\214\200\353\217\231\353\271\265\354\247\200\353\217\204.png" "b/public/projects/details/\353\214\200\353\217\231\353\271\265\354\247\200\353\217\204.png"
deleted file mode 100644
index 84803c61..00000000
Binary files "a/public/projects/details/\353\214\200\353\217\231\353\271\265\354\247\200\353\217\204.png" and /dev/null differ
diff --git "a/public/projects/details/\353\230\221\354\212\244.png" "b/public/projects/details/\353\230\221\354\212\244.png"
deleted file mode 100644
index 25851a18..00000000
Binary files "a/public/projects/details/\353\230\221\354\212\244.png" and /dev/null differ
diff --git "a/public/projects/details/\353\234\273\353\260\226\354\235\230\355\200\264\354\246\210.png" "b/public/projects/details/\353\234\273\353\260\226\354\235\230\355\200\264\354\246\210.png"
deleted file mode 100644
index 05489aa5..00000000
Binary files "a/public/projects/details/\353\234\273\353\260\226\354\235\230\355\200\264\354\246\210.png" and /dev/null differ
diff --git "a/public/projects/details/\353\247\201\355\201\254\354\244\215\354\244\215.png" "b/public/projects/details/\353\247\201\355\201\254\354\244\215\354\244\215.png"
deleted file mode 100644
index 6cc84100..00000000
Binary files "a/public/projects/details/\353\247\201\355\201\254\354\244\215\354\244\215.png" and /dev/null differ
diff --git "a/public/projects/details/\353\247\210\354\235\264\353\240\210\354\213\234\355\224\275.png" "b/public/projects/details/\353\247\210\354\235\264\353\240\210\354\213\234\355\224\275.png"
deleted file mode 100644
index ecfac565..00000000
Binary files "a/public/projects/details/\353\247\210\354\235\264\353\240\210\354\213\234\355\224\275.png" and /dev/null differ
diff --git "a/public/projects/details/\353\252\275\354\213\244.png" "b/public/projects/details/\353\252\275\354\213\244.png"
deleted file mode 100644
index 67d620b1..00000000
Binary files "a/public/projects/details/\353\252\275\354\213\244.png" and /dev/null differ
diff --git "a/public/projects/details/\353\254\264\353\223\234\355\224\275.png" "b/public/projects/details/\353\254\264\353\223\234\355\224\275.png"
deleted file mode 100644
index cb391b37..00000000
Binary files "a/public/projects/details/\353\254\264\353\223\234\355\224\275.png" and /dev/null differ
diff --git "a/public/projects/details/\353\260\224\355\206\265.png" "b/public/projects/details/\353\260\224\355\206\265.png"
deleted file mode 100644
index 63ae5f1b..00000000
Binary files "a/public/projects/details/\353\260\224\355\206\265.png" and /dev/null differ
diff --git "a/public/projects/details/\353\266\201\354\252\275\354\234\274\353\241\234.png" "b/public/projects/details/\353\266\201\354\252\275\354\234\274\353\241\234.png"
deleted file mode 100644
index a26e17b8..00000000
Binary files "a/public/projects/details/\353\266\201\354\252\275\354\234\274\353\241\234.png" and /dev/null differ
diff --git "a/public/projects/details/\353\271\204\354\226\264\354\227\220\354\226\264.png" "b/public/projects/details/\353\271\204\354\226\264\354\227\220\354\226\264.png"
deleted file mode 100644
index a8669786..00000000
Binary files "a/public/projects/details/\353\271\204\354\226\264\354\227\220\354\226\264.png" and /dev/null differ
diff --git "a/public/projects/details/\354\225\204\353\247\236\353\213\244.png" "b/public/projects/details/\354\225\204\353\247\236\353\213\244.png"
deleted file mode 100644
index 4bbfb52d..00000000
Binary files "a/public/projects/details/\354\225\204\353\247\236\353\213\244.png" and /dev/null differ
diff --git "a/public/projects/details/\354\225\204\353\254\264\352\261\260\353\202\230.png" "b/public/projects/details/\354\225\204\353\254\264\352\261\260\353\202\230.png"
deleted file mode 100644
index 013ff974..00000000
Binary files "a/public/projects/details/\354\225\204\353\254\264\352\261\260\353\202\230.png" and /dev/null differ
diff --git "a/public/projects/details/\354\230\201\352\260\220\355\203\261.png" "b/public/projects/details/\354\230\201\352\260\220\355\203\261.png"
deleted file mode 100644
index 68196d83..00000000
Binary files "a/public/projects/details/\354\230\201\352\260\220\355\203\261.png" and /dev/null differ
diff --git "a/public/projects/details/\354\230\201\354\260\250.png" "b/public/projects/details/\354\230\201\354\260\250.png"
deleted file mode 100644
index 36e57243..00000000
Binary files "a/public/projects/details/\354\230\201\354\260\250.png" and /dev/null differ
diff --git "a/public/projects/details/\354\230\244\353\212\230\354\235\230\355\205\214\354\212\244\355\212\270.png" "b/public/projects/details/\354\230\244\353\212\230\354\235\230\355\205\214\354\212\244\355\212\270.png"
deleted file mode 100644
index 731e9a5f..00000000
Binary files "a/public/projects/details/\354\230\244\353\212\230\354\235\230\355\205\214\354\212\244\355\212\270.png" and /dev/null differ
diff --git "a/public/projects/details/\354\230\244\353\247\265\353\225\241.png" "b/public/projects/details/\354\230\244\353\247\265\353\225\241.png"
deleted file mode 100644
index 8c7290fd..00000000
Binary files "a/public/projects/details/\354\230\244\353\247\265\353\225\241.png" and /dev/null differ
diff --git "a/public/projects/details/\354\240\234\353\241\234\354\232\260\354\245\254.png" "b/public/projects/details/\354\240\234\353\241\234\354\232\260\354\245\254.png"
deleted file mode 100644
index fb76108b..00000000
Binary files "a/public/projects/details/\354\240\234\353\241\234\354\232\260\354\245\254.png" and /dev/null differ
diff --git "a/public/projects/details/\354\247\235\354\213\254\354\202\274\354\235\274.png" "b/public/projects/details/\354\247\235\354\213\254\354\202\274\354\235\274.png"
deleted file mode 100644
index 74c396a2..00000000
Binary files "a/public/projects/details/\354\247\235\354\213\254\354\202\274\354\235\274.png" and /dev/null differ
diff --git "a/public/projects/details/\354\271\274\355\207\264\354\232\224\354\240\225.png" "b/public/projects/details/\354\271\274\355\207\264\354\232\224\354\240\225.png"
deleted file mode 100644
index 586e6368..00000000
Binary files "a/public/projects/details/\354\271\274\355\207\264\354\232\224\354\240\225.png" and /dev/null differ
diff --git "a/public/projects/details/\354\275\224\355\200\204\353\246\254\355\213\260.png" "b/public/projects/details/\354\275\224\355\200\204\353\246\254\355\213\260.png"
deleted file mode 100644
index 10a83b8d..00000000
Binary files "a/public/projects/details/\354\275\224\355\200\204\353\246\254\355\213\260.png" and /dev/null differ
diff --git "a/public/projects/details/\354\277\250\355\224\274\354\212\244.png" "b/public/projects/details/\354\277\250\355\224\274\354\212\244.png"
deleted file mode 100644
index e7bcaaec..00000000
Binary files "a/public/projects/details/\354\277\250\355\224\274\354\212\244.png" and /dev/null differ
diff --git "a/public/projects/details/\355\201\254\353\236\230\354\273\244\353\266\201.png" "b/public/projects/details/\355\201\254\353\236\230\354\273\244\353\266\201.png"
deleted file mode 100644
index 51cdabcc..00000000
Binary files "a/public/projects/details/\355\201\254\353\236\230\354\273\244\353\266\201.png" and /dev/null differ
diff --git "a/public/projects/details/\355\213\260\355\202\244\355\203\200\354\271\264.png" "b/public/projects/details/\355\213\260\355\202\244\355\203\200\354\271\264.png"
deleted file mode 100644
index e1f5dacd..00000000
Binary files "a/public/projects/details/\355\213\260\355\202\244\355\203\200\354\271\264.png" and /dev/null differ
diff --git "a/public/projects/details/\355\216\230\354\226\264\353\237\254.png" "b/public/projects/details/\355\216\230\354\226\264\353\237\254.png"
deleted file mode 100644
index b85ed187..00000000
Binary files "a/public/projects/details/\355\216\230\354\226\264\353\237\254.png" and /dev/null differ
diff --git "a/public/projects/icons/3\353\214\200\354\226\274\353\247\210.png" "b/public/projects/icons/3\353\214\200\354\226\274\353\247\210.png"
deleted file mode 100644
index 9e123dcf..00000000
Binary files "a/public/projects/icons/3\353\214\200\354\226\274\353\247\210.png" and /dev/null differ
diff --git a/public/projects/icons/archive.png b/public/projects/icons/archive.png
deleted file mode 100644
index 34e53a4d..00000000
Binary files a/public/projects/icons/archive.png and /dev/null differ
diff --git a/public/projects/icons/avocado.png b/public/projects/icons/avocado.png
deleted file mode 100644
index f20345f1..00000000
Binary files a/public/projects/icons/avocado.png and /dev/null differ
diff --git a/public/projects/icons/bboxx.png b/public/projects/icons/bboxx.png
deleted file mode 100644
index 379c54a3..00000000
Binary files a/public/projects/icons/bboxx.png and /dev/null differ
diff --git a/public/projects/icons/bodymood.png b/public/projects/icons/bodymood.png
deleted file mode 100644
index dd18545c..00000000
Binary files a/public/projects/icons/bodymood.png and /dev/null differ
diff --git a/public/projects/icons/hush.png b/public/projects/icons/hush.png
deleted file mode 100644
index e159e838..00000000
Binary files a/public/projects/icons/hush.png and /dev/null differ
diff --git a/public/projects/icons/imgoing.png b/public/projects/icons/imgoing.png
deleted file mode 100644
index b8c8dd98..00000000
Binary files a/public/projects/icons/imgoing.png and /dev/null differ
diff --git a/public/projects/icons/noonbody.png b/public/projects/icons/noonbody.png
deleted file mode 100644
index e12e3912..00000000
Binary files a/public/projects/icons/noonbody.png and /dev/null differ
diff --git a/public/projects/icons/omo.png b/public/projects/icons/omo.png
deleted file mode 100644
index c5dab9d4..00000000
Binary files a/public/projects/icons/omo.png and /dev/null differ
diff --git a/public/projects/icons/therto.png b/public/projects/icons/therto.png
deleted file mode 100644
index 6453092d..00000000
Binary files a/public/projects/icons/therto.png and /dev/null differ
diff --git a/public/projects/icons/tooni.png b/public/projects/icons/tooni.png
deleted file mode 100644
index adef6c93..00000000
Binary files a/public/projects/icons/tooni.png and /dev/null differ
diff --git "a/public/projects/icons/\352\260\200\354\212\264\354\206\2153\354\262\234\354\233\220.png" "b/public/projects/icons/\352\260\200\354\212\264\354\206\2153\354\262\234\354\233\220.png"
deleted file mode 100644
index 6bc10f3a..00000000
Binary files "a/public/projects/icons/\352\260\200\354\212\264\354\206\2153\354\262\234\354\233\220.png" and /dev/null differ
diff --git "a/public/projects/icons/\352\260\234\353\257\270\353\212\224\355\210\260\355\210\260.png" "b/public/projects/icons/\352\260\234\353\257\270\353\212\224\355\210\260\355\210\260.png"
deleted file mode 100644
index bae75a7f..00000000
Binary files "a/public/projects/icons/\352\260\234\353\257\270\353\212\224\355\210\260\355\210\260.png" and /dev/null differ
diff --git "a/public/projects/icons/\353\202\230\353\202\230\352\263\265.png" "b/public/projects/icons/\353\202\230\353\202\230\352\263\265.png"
deleted file mode 100644
index bcf68ea2..00000000
Binary files "a/public/projects/icons/\353\202\230\353\202\230\352\263\265.png" and /dev/null differ
diff --git "a/public/projects/icons/\353\214\200\353\217\231\353\271\265\354\247\200\353\217\204.png" "b/public/projects/icons/\353\214\200\353\217\231\353\271\265\354\247\200\353\217\204.png"
deleted file mode 100644
index b77e614c..00000000
Binary files "a/public/projects/icons/\353\214\200\353\217\231\353\271\265\354\247\200\353\217\204.png" and /dev/null differ
diff --git "a/public/projects/icons/\353\234\273\353\260\226\354\235\230\355\200\264\354\246\210.png" "b/public/projects/icons/\353\234\273\353\260\226\354\235\230\355\200\264\354\246\210.png"
deleted file mode 100644
index 05724adc..00000000
Binary files "a/public/projects/icons/\353\234\273\353\260\226\354\235\230\355\200\264\354\246\210.png" and /dev/null differ
diff --git "a/public/projects/icons/\353\247\201\355\201\254\354\244\215\354\244\215.png" "b/public/projects/icons/\353\247\201\355\201\254\354\244\215\354\244\215.png"
deleted file mode 100644
index 3e84df0a..00000000
Binary files "a/public/projects/icons/\353\247\201\355\201\254\354\244\215\354\244\215.png" and /dev/null differ
diff --git "a/public/projects/icons/\353\247\210\354\235\264\353\240\210\354\213\234\355\224\275.png" "b/public/projects/icons/\353\247\210\354\235\264\353\240\210\354\213\234\355\224\275.png"
deleted file mode 100644
index 2044dcb9..00000000
Binary files "a/public/projects/icons/\353\247\210\354\235\264\353\240\210\354\213\234\355\224\275.png" and /dev/null differ
diff --git "a/public/projects/icons/\353\252\275\354\213\244.png" "b/public/projects/icons/\353\252\275\354\213\244.png"
deleted file mode 100644
index 47f998c2..00000000
Binary files "a/public/projects/icons/\353\252\275\354\213\244.png" and /dev/null differ
diff --git "a/public/projects/icons/\353\254\264\353\223\234\355\224\275.png" "b/public/projects/icons/\353\254\264\353\223\234\355\224\275.png"
deleted file mode 100644
index 3a4b8943..00000000
Binary files "a/public/projects/icons/\353\254\264\353\223\234\355\224\275.png" and /dev/null differ
diff --git "a/public/projects/icons/\353\260\224\355\206\265.png" "b/public/projects/icons/\353\260\224\355\206\265.png"
deleted file mode 100644
index f3dc1e2f..00000000
Binary files "a/public/projects/icons/\353\260\224\355\206\265.png" and /dev/null differ
diff --git "a/public/projects/icons/\353\266\201\354\252\275\354\234\274\353\241\234.png" "b/public/projects/icons/\353\266\201\354\252\275\354\234\274\353\241\234.png"
deleted file mode 100644
index 8d3a5564..00000000
Binary files "a/public/projects/icons/\353\266\201\354\252\275\354\234\274\353\241\234.png" and /dev/null differ
diff --git "a/public/projects/icons/\353\271\204\354\226\264\354\227\220\354\226\264.png" "b/public/projects/icons/\353\271\204\354\226\264\354\227\220\354\226\264.png"
deleted file mode 100644
index 11754e88..00000000
Binary files "a/public/projects/icons/\353\271\204\354\226\264\354\227\220\354\226\264.png" and /dev/null differ
diff --git "a/public/projects/icons/\354\225\204\353\254\264\352\261\260\353\202\230.png" "b/public/projects/icons/\354\225\204\353\254\264\352\261\260\353\202\230.png"
deleted file mode 100644
index c777cf3d..00000000
Binary files "a/public/projects/icons/\354\225\204\353\254\264\352\261\260\353\202\230.png" and /dev/null differ
diff --git "a/public/projects/icons/\354\230\201\352\260\220\355\203\261.png" "b/public/projects/icons/\354\230\201\352\260\220\355\203\261.png"
deleted file mode 100644
index 6e7abacd..00000000
Binary files "a/public/projects/icons/\354\230\201\352\260\220\355\203\261.png" and /dev/null differ
diff --git "a/public/projects/icons/\354\230\201\354\260\250.png" "b/public/projects/icons/\354\230\201\354\260\250.png"
deleted file mode 100644
index 3f8eced0..00000000
Binary files "a/public/projects/icons/\354\230\201\354\260\250.png" and /dev/null differ
diff --git "a/public/projects/icons/\354\230\244\353\212\230\354\235\230\355\205\214\354\212\244\355\212\270.png" "b/public/projects/icons/\354\230\244\353\212\230\354\235\230\355\205\214\354\212\244\355\212\270.png"
deleted file mode 100644
index b10abde4..00000000
Binary files "a/public/projects/icons/\354\230\244\353\212\230\354\235\230\355\205\214\354\212\244\355\212\270.png" and /dev/null differ
diff --git "a/public/projects/icons/\354\230\244\353\247\265\353\225\241.png" "b/public/projects/icons/\354\230\244\353\247\265\353\225\241.png"
deleted file mode 100644
index b08dbf6b..00000000
Binary files "a/public/projects/icons/\354\230\244\353\247\265\353\225\241.png" and /dev/null differ
diff --git "a/public/projects/icons/\354\240\234\353\241\234\354\232\260\354\245\254.png" "b/public/projects/icons/\354\240\234\353\241\234\354\232\260\354\245\254.png"
deleted file mode 100644
index 4db0b1fd..00000000
Binary files "a/public/projects/icons/\354\240\234\353\241\234\354\232\260\354\245\254.png" and /dev/null differ
diff --git "a/public/projects/icons/\354\271\274\355\207\264\354\232\224\354\240\225.png" "b/public/projects/icons/\354\271\274\355\207\264\354\232\224\354\240\225.png"
deleted file mode 100644
index 91830bc7..00000000
Binary files "a/public/projects/icons/\354\271\274\355\207\264\354\232\224\354\240\225.png" and /dev/null differ
diff --git "a/public/projects/icons/\354\277\250\355\224\274\354\212\244.png" "b/public/projects/icons/\354\277\250\355\224\274\354\212\244.png"
deleted file mode 100644
index 91ef23fb..00000000
Binary files "a/public/projects/icons/\354\277\250\355\224\274\354\212\244.png" and /dev/null differ
diff --git "a/public/projects/icons/\355\201\254\353\236\230\354\273\244\353\266\201.png" "b/public/projects/icons/\355\201\254\353\236\230\354\273\244\353\266\201.png"
deleted file mode 100644
index d6e69f5c..00000000
Binary files "a/public/projects/icons/\355\201\254\353\236\230\354\273\244\353\266\201.png" and /dev/null differ
diff --git "a/public/projects/icons/\355\213\260\355\202\244\355\203\200\354\271\264.png" "b/public/projects/icons/\355\213\260\355\202\244\355\203\200\354\271\264.png"
deleted file mode 100644
index 50aebc22..00000000
Binary files "a/public/projects/icons/\355\213\260\355\202\244\355\203\200\354\271\264.png" and /dev/null differ
diff --git "a/public/projects/icons/\355\216\230\354\226\264\353\237\254.png" "b/public/projects/icons/\355\216\230\354\226\264\353\237\254.png"
deleted file mode 100644
index 975a77b1..00000000
Binary files "a/public/projects/icons/\355\216\230\354\226\264\353\237\254.png" and /dev/null differ
diff --git a/public/sitemap-0.xml b/public/sitemap-0.xml
index a2ff25f7..7c8b112d 100644
--- a/public/sitemap-0.xml
+++ b/public/sitemap-0.xml
@@ -5,51 +5,4 @@
https://www.depromeet.com/contact2023-03-05T16:02:03.395Zdaily0.7
https://www.depromeet.com/project2023-03-05T16:02:03.395Zdaily0.7
https://www.depromeet.com/recruit2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/recruit/ios2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/recruit/android2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/recruit/web2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/recruit/backend2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/recruit/design2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/짝심삼일2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/KNOCKNOCK2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/TICLEMOA2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/똑스2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/코퀄리티2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/아맞다2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/PING-PONG!2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/꼬깃2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/비어에어2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/영감탱2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/바통2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/무드픽2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/티키타카2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/몽실2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/페어러2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/개미는 툰툰2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/noonbody2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/IMGOING2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/BBOXX2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/나나공2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/Archive2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/대동빵지도2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/오맵땡2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/Bodymood2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/OMO2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/영차2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/TOONI TOONI2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/마이레시픽2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/오늘의 테스트2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/Hush2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/링크줍줍2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/제로우쥬2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/크래커북2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/3대 얼마2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/가슴속 3천원2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/북쪽으로2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/Avocado2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/Therto2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/쿨피스2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/칼퇴요정2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/아무거나2023-03-05T16:02:03.395Zdaily0.7
-https://www.depromeet.com/project/뜻밖의 퀴즈2023-03-05T16:02:03.395Zdaily0.7
\ No newline at end of file
diff --git a/public/svg/icon-android.svg b/public/svg/icon-android.svg
deleted file mode 100644
index 630a8ef1..00000000
--- a/public/svg/icon-android.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/public/svg/icon-backend.svg b/public/svg/icon-backend.svg
deleted file mode 100644
index b49a9fda..00000000
--- a/public/svg/icon-backend.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/public/svg/icon-design.svg b/public/svg/icon-design.svg
deleted file mode 100644
index 0b5a22e5..00000000
--- a/public/svg/icon-design.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/public/svg/icon-designer.svg b/public/svg/icon-designer.svg
deleted file mode 100644
index 1e074e8b..00000000
--- a/public/svg/icon-designer.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/public/svg/icon-developer.svg b/public/svg/icon-developer.svg
deleted file mode 100644
index 84360ace..00000000
--- a/public/svg/icon-developer.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/public/svg/icon-hand-shake.svg b/public/svg/icon-hand-shake.svg
deleted file mode 100644
index 0e198aad..00000000
--- a/public/svg/icon-hand-shake.svg
+++ /dev/null
@@ -1,9 +0,0 @@
-
diff --git a/public/svg/icon-ios.svg b/public/svg/icon-ios.svg
deleted file mode 100644
index 483f3d3a..00000000
--- a/public/svg/icon-ios.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/public/svg/icon-web.svg b/public/svg/icon-web.svg
deleted file mode 100644
index 7bf245e6..00000000
--- a/public/svg/icon-web.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/src/@types/emotion.d.ts b/src/@types/emotion.d.ts
new file mode 100644
index 00000000..d2b2d9df
--- /dev/null
+++ b/src/@types/emotion.d.ts
@@ -0,0 +1,9 @@
+import '@emotion/react';
+
+import { theme } from '~/styles/theme';
+
+declare module '@emotion/react' {
+ type CustomTheme = typeof theme;
+
+ export interface Theme extends CustomTheme {}
+}
diff --git a/src/components/AboutInfo/AboutInfo.tsx b/src/components/AboutInfo/AboutInfo.tsx
new file mode 100644
index 00000000..6d779258
--- /dev/null
+++ b/src/components/AboutInfo/AboutInfo.tsx
@@ -0,0 +1,152 @@
+import Image from 'next/image';
+import { css, Theme } from '@emotion/react';
+
+import { ABOUT_INFO } from '~/constant/aboutInfo';
+import { commonLayoutCss } from '~/styles/layout';
+import { mediaQuery } from '~/styles/media';
+import { pxToRem } from '~/styles/style.utils';
+
+export function AboutInfo() {
+ return (
+
+
+
{'IT 사이드 프로젝트의 시작\n디프만의 열정적인 여정에 합류하세요'}
+
+
+ {ABOUT_INFO.map(({ image, title, label, description, reverse }) => (
+
+ {reverse ? (
+ <>
+
+
{title}
+
{description}
+
+
+
+
+ >
+ ) : (
+ <>
+
+
+
+
+
{title}
+
{description}
+
+ >
+ )}
+
+ ))}
+
+
+ );
+}
+
+const layoutCss = css`
+ margin-top: 200px;
+ white-space: pre-line;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ ${mediaQuery('pc')} {
+ margin-top: 200px;
+ }
+
+ ${mediaQuery('mobile')} {
+ margin-top: 20px;
+ }
+`;
+
+const headerCss = (theme: Theme) => css`
+ font-size: ${pxToRem(40)};
+ color: ${theme.colors.white};
+ text-align: center;
+ line-height: 56px; /* 140% */
+ letter-spacing: -0.4px;
+ ${mediaQuery('mobile')} {
+ font-size: ${pxToRem(20)};
+ line-height: 150%; /* 30px */
+ letter-spacing: -0.2px;
+ }
+`;
+
+const aboutBodyCss = css`
+ display: flex;
+ flex-direction: column;
+ margin-top: 200px;
+ gap: 24px;
+ ${mediaQuery('tablet')} {
+ margin-top: 100px;
+ gap: 57px;
+ }
+ ${mediaQuery('mobile')} {
+ margin-top: 100px;
+ gap: 50px;
+ }
+`;
+
+const aboutItemCss = (reverse: boolean) => css`
+ display: flex;
+ gap: 24px;
+ align-items: center;
+ justify-content: center;
+ ${reverse &&
+ css`
+ padding-left: 80px;
+
+ ${mediaQuery('tablet')} {
+ padding-left: 34px;
+ }
+ ${mediaQuery('mobile')} {
+ padding-left: 0;
+ }
+ `}
+ ${mediaQuery('mobile')} {
+ flex-direction: column;
+ gap: 20px;
+ text-align: center;
+ ${reverse && 'flex-direction: column-reverse;'}
+ }
+`;
+
+const aboutInfoCss = css`
+ display: flex;
+ flex-direction: column;
+ gap: 24px;
+`;
+
+const imageCss = css`
+ position: relative;
+ width: 400px;
+ height: 400px;
+ object-fit: cover;
+ object-position: center;
+
+ ${mediaQuery('tablet')} {
+ width: 270px;
+ height: 270px;
+
+ img {
+ object-fit: inherit;
+ }
+ }
+
+ ${mediaQuery('mobile')} {
+ width: 220px;
+ height: 220px;
+ }
+`;
+
+const aboutTitleCss = (theme: Theme) => css`
+ ${theme.typos.pretendard.subTitle1};
+ color: ${theme.colors.white};
+`;
+
+const aboutDescriptionCss = (theme: Theme) => css`
+ ${theme.typos.pretendard.subTitle2};
+ color: ${theme.colors.gray100};
+ ${mediaQuery('mobile')} {
+ letter-spacing: ${pxToRem(-0.14)};
+ }
+`;
diff --git a/src/components/AboutInfo/index.tsx b/src/components/AboutInfo/index.tsx
new file mode 100644
index 00000000..ba7d7047
--- /dev/null
+++ b/src/components/AboutInfo/index.tsx
@@ -0,0 +1 @@
+export { AboutInfo } from './AboutInfo';
diff --git a/src/components/Button/Button.stories.tsx b/src/components/Button/Button.stories.tsx
new file mode 100644
index 00000000..2475fede
--- /dev/null
+++ b/src/components/Button/Button.stories.tsx
@@ -0,0 +1,36 @@
+import { css } from '@emotion/react';
+import type { Meta, StoryObj } from '@storybook/react';
+
+import { Button } from './index';
+
+const meta: Meta = {
+ title: 'components/Button',
+ component: Button,
+ args: {},
+};
+
+export default meta;
+
+type Story = StoryObj;
+
+export const Primary: Story = {
+ render: () => (
+
+
+
+
+
+
+ ),
+};
+
+const containerCss = css`
+ background-color: black;
+ padding: 20px;
+
+ & > * {
+ margin-bottom: 20px;
+ }
+`;
diff --git a/src/components/Button/Button.tsx b/src/components/Button/Button.tsx
new file mode 100644
index 00000000..9ec6e216
--- /dev/null
+++ b/src/components/Button/Button.tsx
@@ -0,0 +1,63 @@
+import { ButtonHTMLAttributes } from 'react';
+import { css, Interpolation, Theme } from '@emotion/react';
+
+import { mediaQuery } from '~/styles/media';
+
+type ButtonSize = 'md' | 'lg';
+export interface ButtonProps extends ButtonHTMLAttributes {
+ size?: ButtonSize;
+ overrideCss?: Interpolation;
+}
+
+export function Button({ children, size = 'md', overrideCss, ...props }: ButtonProps) {
+ return (
+
+ );
+}
+
+const buttonCss = (theme: Theme, size: ButtonSize) => css`
+ ${theme.typos.pretendard.body1};
+ background-color: ${theme.colors.yellow500};
+ color: ${theme.colors.black800};
+ display: block;
+
+ ${size === 'md' &&
+ css`
+ padding: 0 24px;
+ height: 42px;
+
+ ${mediaQuery('mobile')} {
+ font-size: 14px;
+ height: 34px;
+ }
+ `}
+
+ ${size === 'lg' &&
+ css`
+ width: 100%;
+ padding: 0 24px;
+ height: 54px;
+
+ ${mediaQuery('mobile')} {
+ ${theme.typos.pretendard.body2};
+ height: 42px;
+ }
+ `}
+
+
+ &:hover {
+ background-color: ${theme.colors.yellow400};
+ }
+
+ &:active {
+ background-color: ${theme.colors.yellow300};
+ }
+
+ &:disabled {
+ background-color: ${theme.colors.gray300};
+ color: ${theme.colors.gray100};
+ cursor: not-allowed;
+ }
+`;
diff --git a/src/components/Button/index.ts b/src/components/Button/index.ts
new file mode 100644
index 00000000..fe9c53c5
--- /dev/null
+++ b/src/components/Button/index.ts
@@ -0,0 +1 @@
+export { Button } from './Button';
diff --git a/src/components/Contact/Contact.tsx b/src/components/Contact/Contact.tsx
new file mode 100644
index 00000000..c2dc9385
--- /dev/null
+++ b/src/components/Contact/Contact.tsx
@@ -0,0 +1,76 @@
+import Link from 'next/link';
+import { css, Theme } from '@emotion/react';
+
+import { SectionTitle } from '~/components/SectionTitle';
+import { CONTACT_INFO } from '~/constant/contactInfo';
+import { commonLayoutCss } from '~/styles/layout';
+import { mediaQuery } from '~/styles/media';
+
+export function Contact() {
+ return (
+
+
+
+ {CONTACT_INFO.map(footer => (
+ -
+
+ {footer.name}
+ {footer.detail}
+
+
+ ))}
+
+
+ );
+}
+
+const layoutCss = css`
+ margin-top: 150px;
+ margin-bottom: 150px;
+ ${mediaQuery('tablet')} {
+ margin-top: 150px;
+ margin-bottom: 150px;
+ }
+ ${mediaQuery('mobile')} {
+ margin-top: 100px;
+ margin-bottom: 100px;
+ }
+`;
+
+const infoListCss = css`
+ display: grid;
+ grid-template-columns: repeat(2, 1fr);
+ gap: 20px;
+ ${mediaQuery('mobile')} {
+ gap: 10px;
+ }
+`;
+
+const InfoCss = (theme: Theme) => css`
+ ${theme.typos.pretendard.body1};
+ background-color: ${theme.colors.black400};
+ color: ${theme.colors.gray20};
+ width: 470px;
+ height: 172px;
+ padding: 48px 36px;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ align-items: flex-start;
+ gap: 20px;
+ ${mediaQuery('tablet')} {
+ width: 100%;
+ }
+
+ ${mediaQuery('mobile')} {
+ font-size: 0.8rem;
+ width: 100%;
+ height: 96px;
+ padding: 16px 8px;
+ }
+`;
+
+const infoNameCss = (theme: Theme) => css`
+ ${theme.typos.decimal.subTitle1};
+ color: ${theme.colors.blue300};
+`;
diff --git a/src/components/Contact/index.tsx b/src/components/Contact/index.tsx
new file mode 100644
index 00000000..5817bd12
--- /dev/null
+++ b/src/components/Contact/index.tsx
@@ -0,0 +1 @@
+export { Contact } from './Contact';
diff --git a/src/components/FAQ/FAQ.stories.tsx b/src/components/FAQ/FAQ.stories.tsx
new file mode 100644
index 00000000..bae1e90f
--- /dev/null
+++ b/src/components/FAQ/FAQ.stories.tsx
@@ -0,0 +1,68 @@
+/* eslint-disable react-hooks/rules-of-hooks */
+import { useState } from 'react';
+import { Meta } from '@storybook/react';
+
+import { FAQItem } from '~/components/FAQ/FAQItem';
+import { FAQList } from '~/components/FAQ/FAQList';
+import { FAQS } from '~/constant/faq';
+
+import { FAQ } from './index';
+
+const meta: Meta = {
+ title: 'components/FAQ',
+};
+
+export default meta;
+
+export const Primary = {
+ render: () => (
+
+
+
+ ),
+};
+
+export const List = {
+ render: () => ,
+};
+
+export const Interaction = {
+ render: () => {
+ const [isOpen, setIsOpen] = useState(false);
+
+ const onClickOpenButton = () => {
+ setIsOpen(prev => !prev);
+ };
+
+ return (
+
+ );
+ },
+};
+
+export const Close = {
+ render: () => (
+ {}}
+ question={FAQS[0].question}
+ answer={FAQS[0].answer}
+ />
+ ),
+};
+
+export const Open = {
+ render: () => (
+ {}}
+ question={FAQS[0].question}
+ answer={FAQS[0].answer}
+ />
+ ),
+};
diff --git a/src/components/FAQ/FAQ.tsx b/src/components/FAQ/FAQ.tsx
new file mode 100644
index 00000000..b9f88de0
--- /dev/null
+++ b/src/components/FAQ/FAQ.tsx
@@ -0,0 +1,73 @@
+import { useState } from 'react';
+import { css, Theme } from '@emotion/react';
+
+import { FAQList } from '~/components/FAQ/FAQList';
+import { SectionTitle } from '~/components/SectionTitle';
+import { FAQ_GROUP, FAQGroupType, FAQS } from '~/constant/faq';
+import { commonLayoutCss } from '~/styles/layout';
+import { mediaQuery } from '~/styles/media';
+
+export function FAQ() {
+ const [activeTab, setActiveTab] = useState('지원자격');
+
+ const onClickTab = (target: FAQGroupType) => {
+ setActiveTab(target);
+ };
+
+ const isActive = (target: FAQGroupType) => activeTab === target;
+
+ return (
+
+
+
+ {FAQ_GROUP.map(label => (
+ - onClickTab(label)}
+ css={theme => tabCss(theme, isActive(label))}
+ >
+ {label}
+
+ ))}
+
+ {activeTab === '지원자격' && }
+ {activeTab === '면접' && }
+ {activeTab === '활동' && }
+
+ );
+}
+
+const 지원자격질문들 = FAQS.filter(x => x.group === '지원자격');
+
+const 면접질문들 = FAQS.filter(x => x.group === '면접');
+
+const 활동질문들 = FAQS.filter(x => x.group === '활동');
+
+const layoutCss = css`
+ ${commonLayoutCss}
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+`;
+
+const tabLayoutCss = css`
+ display: flex;
+ > li:first-child {
+ padding-left: 0px;
+ }
+ ${mediaQuery('tablet')} {
+ justify-content: center;
+ }
+`;
+
+const tabCss = (theme: Theme, isActive: boolean) => css`
+ ${theme.typos.pretendard.subTitle2}
+ color: ${isActive ? theme.colors.yellow500 : theme.colors.white};
+ cursor: pointer;
+ padding: 16px 24px;
+
+ ${mediaQuery('mobile')} {
+ font-size: 14px;
+ padding: 8px 12px;
+ }
+`;
diff --git a/src/components/FAQ/FAQItem.tsx b/src/components/FAQ/FAQItem.tsx
new file mode 100644
index 00000000..79abeb39
--- /dev/null
+++ b/src/components/FAQ/FAQItem.tsx
@@ -0,0 +1,108 @@
+import { css, Theme } from '@emotion/react';
+import { motion, Variants } from 'framer-motion';
+
+import { ArrowIcon } from '~/components/Icons';
+import { mediaQuery } from '~/styles/media';
+import { theme } from '~/styles/theme';
+
+interface FAQItemProps {
+ isOpen: boolean;
+ onClickOpenButton: () => void;
+ question: string;
+ answer: string;
+}
+
+export function FAQItem({ isOpen, onClickOpenButton, question, answer }: FAQItemProps) {
+ return (
+
+ headerCss(theme, isOpen)}
+ animate={isOpen ? 'open' : 'closed'}
+ variants={headerVariants}
+ transition={{ duration: 0.3, ease: 'easeOut' }}
+ onClick={onClickOpenButton}
+ >
+ {question}
+
+ arrowIconCss(theme, isOpen)}
+ />
+
+
+
+ {answer}
+
+
+ );
+}
+
+const headerVariants: Variants = {
+ open: { backgroundColor: theme.colors.blue400 },
+ closed: { backgroundColor: theme.colors.black400 },
+};
+
+const bodyVariants: Variants = {
+ initial: { opacity: 0, height: 0, display: 'none' },
+ open: { opacity: 1, height: 'fit-content', display: 'block' },
+ closed: { opacity: 0, height: 0, display: 'none' },
+};
+
+const arrowIconVariants: Variants = {
+ open: { stroke: theme.colors.black800 },
+ closed: { stroke: theme.colors.blue400 },
+};
+
+const headerCss = (theme: Theme, isOpen: boolean) => css`
+ background-color: ${isOpen ? theme.colors.blue400 : theme.colors.black400};
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 25px 30px;
+ cursor: pointer;
+ > h3 {
+ color: ${isOpen ? theme.colors.black800 : theme.colors.white};
+ text-align: center;
+ ${theme.typos.pretendard.subTitle2}
+ }
+
+ ${mediaQuery('mobile')} {
+ padding: 8px;
+
+ > h3 {
+ font-weight: 500;
+ font-size: 14px;
+ }
+ }
+`;
+
+const arrowIconCss = (theme: Theme, isOpen: boolean) => css`
+ > path {
+ stroke: ${isOpen ? theme.colors.black800 : theme.colors.blue400};
+ }
+
+ ${mediaQuery('mobile')} {
+ width: 24px;
+ height: 24px;
+ }
+`;
+
+const bodyCss = (theme: Theme) => css`
+ background-color: ${theme.colors.black800};
+ > p {
+ padding: 40px;
+ color: ${theme.colors.white};
+ ${theme.typos.pretendard.body1};
+ }
+ ${mediaQuery('mobile')} {
+ > p {
+ padding: 16px;
+ font-weight: 400;
+ }
+ }
+`;
diff --git a/src/components/FAQ/FAQList.tsx b/src/components/FAQ/FAQList.tsx
new file mode 100644
index 00000000..48ab892e
--- /dev/null
+++ b/src/components/FAQ/FAQList.tsx
@@ -0,0 +1,51 @@
+import { useEffect, useState } from 'react';
+import { css } from '@emotion/react';
+
+import { FAQItem } from '~/components/FAQ/FAQItem';
+import { FAQType } from '~/constant/faq';
+import { mediaQuery } from '~/styles/media';
+
+interface FAQListProps {
+ FAQList: FAQType[];
+}
+
+const DEFAULT_OPEN = 0;
+const CLOSE = -1;
+
+export function FAQList({ FAQList }: FAQListProps) {
+ const [activeIndex, setActiveIndex] = useState(DEFAULT_OPEN);
+
+ const onClickActiveFaq = (idx: number) => {
+ /**
+ * 열려 있는 아이템 다시 클릭하면 닫히게 하기
+ */
+ setActiveIndex(prev => (prev === idx ? CLOSE : idx));
+ };
+
+ useEffect(() => {
+ setActiveIndex(DEFAULT_OPEN);
+ }, []);
+
+ return (
+
+ {FAQList.map((item, index) => (
+ onClickActiveFaq(index)}
+ {...item}
+ />
+ ))}
+
+ );
+}
+
+const containerCss = css`
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+
+ ${mediaQuery('mobile')} {
+ gap: 8px;
+ }
+`;
diff --git a/src/components/FAQ/index.tsx b/src/components/FAQ/index.tsx
new file mode 100644
index 00000000..f687bc95
--- /dev/null
+++ b/src/components/FAQ/index.tsx
@@ -0,0 +1 @@
+export { FAQ } from './FAQ';
diff --git a/src/components/Footer/Footer.tsx b/src/components/Footer/Footer.tsx
new file mode 100644
index 00000000..5555d074
--- /dev/null
+++ b/src/components/Footer/Footer.tsx
@@ -0,0 +1,111 @@
+import Link from 'next/link';
+import { css, Theme } from '@emotion/react';
+
+import { FIRST_ROW_FOOTER_INFOS, SECOND_ROW_FOOTER_INFOS } from '~/constant/contactInfo';
+import { colors } from '~/styles/colors';
+import { mediaQuery } from '~/styles/media';
+
+export function Footer() {
+ return (
+
+ );
+}
+
+const footerCss = css`
+ background-color: ${colors.black800};
+ padding: 0 20px;
+ width: 100vw;
+`;
+
+const footerInfoWrapper = css`
+ max-width: 1240px;
+ margin: 0 auto;
+ display: flex;
+ flex-direction: column;
+ height: 218px;
+ justify-content: center;
+ align-items: center;
+
+ ${mediaQuery('mobile')} {
+ height: 167px;
+ width: 100%;
+ }
+`;
+
+const rowCss = css`
+ display: flex;
+ gap: 40px;
+
+ ${mediaQuery('mobile')} {
+ width: 100%;
+ gap: 0;
+ justify-content: space-between;
+ }
+`;
+
+const secondRowCss = css`
+ display: flex;
+ gap: 40px;
+ margin-top: 16px;
+
+ span + span {
+ margin-left: 12px;
+ }
+ ${mediaQuery('mobile')} {
+ width: 100%;
+ gap: 40px;
+ justify-content: center;
+ margin-top: 8px;
+
+ span + span {
+ margin-left: 16px;
+ }
+ }
+`;
+
+const linkCss = (theme: Theme) => css`
+ ${theme.typos.pretendard.body1};
+ color: ${theme.colors.gray100};
+
+ ${mediaQuery('mobile')} {
+ font-size: 11px;
+ }
+`;
+
+const strongLinkCss = (theme: Theme) => css`
+ ${theme.typos.pretendard.subTitle2};
+`;
+
+const copyrightCss = (theme: Theme) => css`
+ ${theme.typos.pretendard.body1};
+ color: ${theme.colors.gray200};
+ margin-top: 40px;
+
+ ${mediaQuery('mobile')} {
+ font-size: 11px;
+ margin-top: 24px;
+ }
+`;
diff --git a/src/components/Footer/index.ts b/src/components/Footer/index.ts
new file mode 100644
index 00000000..65e2506f
--- /dev/null
+++ b/src/components/Footer/index.ts
@@ -0,0 +1 @@
+export { Footer } from './Footer';
diff --git a/src/components/GNB/GNB.tsx b/src/components/GNB/GNB.tsx
new file mode 100644
index 00000000..8bf7d940
--- /dev/null
+++ b/src/components/GNB/GNB.tsx
@@ -0,0 +1,162 @@
+import Image from 'next/image';
+import Link from 'next/link';
+import { useRouter } from 'next/router';
+import { css, Theme } from '@emotion/react';
+import { AnimatePresence } from 'framer-motion';
+
+import { Button } from '~/components/Button';
+import { MobileMenu } from '~/components/GNB/MobileMenu';
+import { MobileMenuIcon } from '~/components/GNB/MobileMenuIcon';
+import { GNB_MENU_NAME, GNBMenu } from '~/constant/gnb';
+import { useDropDown } from '~/hooks/useDropdown';
+import useIsInProgress from '~/hooks/useIsInProgress';
+import { mediaQuery } from '~/styles/media';
+
+const LOGO_IMAGE = `/images/logo.png`;
+
+function ApplyButton({ menu }: { menu: GNBMenu }) {
+ const { isInProgress } = useIsInProgress();
+ const router = useRouter();
+
+ const onClick = () => {
+ router.push(menu.href);
+ };
+
+ return (
+
+ );
+}
+
+const linkButtonCss = (theme: Theme) => css`
+ ${theme.typos.pretendard.body1};
+`;
+
+export function GNB() {
+ const { pathname } = useRouter();
+ const { containerRef, isDropdownOpen, openDropdown, closeDropdown } = useDropDown();
+
+ const getActiveLinkcss = (menu: GNBMenu) => {
+ if (pathname.startsWith(menu.href)) {
+ return activeLinkCss;
+ }
+ return inActiveLinkCss;
+ };
+
+ return (
+ <>
+
+
+
+ >
+ );
+}
+
+const navCommonCss = (theme: Theme) => css`
+ background-color: ${theme.colors.black800};
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 9998;
+ width: 100vw;
+`;
+
+const navCss = (theme: Theme) => css`
+ ${navCommonCss(theme)};
+ padding: 20px 32px;
+
+ ${mediaQuery('mobile')} {
+ display: none;
+ }
+`;
+
+const blankCss = css`
+ width: 100vw;
+ height: 82px;
+
+ ${mediaQuery('mobile')} {
+ height: 72px;
+ }
+`;
+
+const navWrapperCss = css`
+ max-width: 1240px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin: 0 auto;
+`;
+
+const menuContainerCss = css`
+ display: flex;
+ gap: 32px;
+`;
+
+const mobileNavCss = css`
+ display: none;
+
+ ${mediaQuery('mobile')} {
+ display: block;
+ }
+`;
+
+const menuCss = css`
+ margin: auto 0;
+`;
+
+const activeLinkCss = (theme: Theme) => css`
+ color: ${theme.colors.yellow500};
+`;
+
+const inActiveLinkCss = (theme: Theme) => css`
+ color: ${theme.colors.white};
+`;
+
+const linkCss = (theme: Theme) => css`
+ ${theme.typos.pretendard.body1};
+`;
+
+const mobileMenuGNBCss = (theme: Theme) => css`
+ ${navCommonCss(theme)};
+ padding: 20px 32px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ & > a {
+ margin-top: 6px;
+ }
+`;
diff --git a/src/components/GNB/MobileMenu.tsx b/src/components/GNB/MobileMenu.tsx
new file mode 100644
index 00000000..71c2f422
--- /dev/null
+++ b/src/components/GNB/MobileMenu.tsx
@@ -0,0 +1,101 @@
+import Link from 'next/link';
+import { useRouter } from 'next/router';
+import { css, Theme } from '@emotion/react';
+import { m } from 'framer-motion';
+
+import { GNB_MENU_NAME, GNBMenu } from '~/constant/gnb';
+import useIsInProgress from '~/hooks/useIsInProgress';
+import { mediaQuery } from '~/styles/media';
+
+interface MobileMenuProps {
+ onClickMenu: () => void;
+}
+
+export function MobileMenu({ onClickMenu }: MobileMenuProps) {
+ const { pathname, push } = useRouter();
+ const { isInProgress } = useIsInProgress();
+
+ const getActiveLinkcss = (menu: GNBMenu) => {
+ if (pathname.startsWith(menu.href)) {
+ return activeLinkCss;
+ }
+ return inActiveLinkCss;
+ };
+
+ return (
+
+
+ {GNB_MENU_NAME.map(menu => (
+
+ {menu.type === 'button' ? (
+
+ ) : (
+
+ {menu.name}
+
+ )}
+
+ ))}
+
+
+ );
+}
+
+const mobileMenuCss = (theme: Theme) => css`
+ z-index: 9997;
+
+ width: 100vw;
+ height: fit-content;
+ position: fixed;
+ top: 0;
+ left: 0;
+ margin: auto;
+ background-color: ${theme.colors.black800};
+ padding-top: 72px;
+ border-bottom: 1px solid ${theme.colors.gray300};
+
+ overflow: hidden;
+ li {
+ padding: 12px 32px;
+ }
+`;
+
+const linkCss = (theme: Theme) => css`
+ ${theme.typos.pretendard.body1};
+ color: ${theme.colors.white};
+
+ ${mediaQuery('mobile')} {
+ font-size: 1rem;
+ }
+
+ &:hover,
+ &:active {
+ color: ${theme.colors.yellow500};
+ }
+
+ &:disabled {
+ color: ${theme.colors.gray200};
+ cursor: not-allowed;
+ }
+`;
+
+const activeLinkCss = (theme: Theme) => css`
+ color: ${theme.colors.yellow500};
+`;
+
+const inActiveLinkCss = (theme: Theme) => css`
+ color: ${theme.colors.white};
+`;
diff --git a/src/components/GNB/MobileMenuIcon.tsx b/src/components/GNB/MobileMenuIcon.tsx
new file mode 100644
index 00000000..2ffb8e66
--- /dev/null
+++ b/src/components/GNB/MobileMenuIcon.tsx
@@ -0,0 +1,102 @@
+import { css } from '@emotion/react';
+
+interface Props {
+ onClick?: () => void;
+ isChecked?: boolean;
+}
+export function MobileMenuIcon({ onClick, isChecked }: Props) {
+ return (
+
+
+
+
+ );
+}
+
+const containerCss = css`
+ position: relative;
+ width: 24px;
+ height: 24px;
+
+ .menu {
+ position: absolute;
+ top: 0;
+ right: 0;
+ height: 100%;
+ max-width: 0;
+ min-width: 100px;
+ transition: 0.5s ease;
+ z-index: 1;
+ background-color: #eee;
+ }
+
+ .burger-icon {
+ cursor: pointer;
+ display: inline-block;
+ position: absolute;
+ z-index: 2;
+ padding: 8px 0;
+ top: 8px;
+ right: 4px;
+ user-select: none;
+ width: auto;
+
+ .burger-sticks {
+ background: #d9d9d9;
+ display: block;
+ height: 3px;
+ position: relative;
+ transition: background 0.2s ease-out;
+ width: 24px;
+
+ &:before,
+ &:after {
+ background: #d9d9d9;
+ content: '';
+ display: block;
+ height: 100%;
+ position: absolute;
+ transition: all 0.2s ease-out;
+ width: 100%;
+ }
+
+ &:before {
+ top: 8px;
+ }
+
+ &:after {
+ top: -8px;
+ }
+ }
+ }
+
+ .burger-check {
+ display: none;
+ }
+
+ .burger-check:checked ~ .burger-icon .burger-sticks {
+ background: transparent;
+ &:before {
+ transform: rotate(-45deg);
+ }
+ &:after {
+ transform: rotate(45deg);
+ }
+ }
+
+ .burger-check:checked ~ .burger-icon:not(.steps) .burger-sticks {
+ &:before,
+ &:after {
+ top: 0;
+ }
+ }
+`;
diff --git a/src/components/GNB/index.ts b/src/components/GNB/index.ts
new file mode 100644
index 00000000..f0886146
--- /dev/null
+++ b/src/components/GNB/index.ts
@@ -0,0 +1 @@
+export { GNB } from './GNB';
diff --git a/src/components/Icons/ArrowIcon.tsx b/src/components/Icons/ArrowIcon.tsx
new file mode 100644
index 00000000..35da1b96
--- /dev/null
+++ b/src/components/Icons/ArrowIcon.tsx
@@ -0,0 +1,50 @@
+import { css } from '@emotion/react';
+
+import { Props, Svg } from './Svg';
+
+export interface ChevronIconProps extends Props {
+ direction?: 'up' | 'right' | 'down' | 'left';
+}
+
+export function ArrowIcon({
+ direction = 'down',
+ color = '#070814',
+ css,
+ ...props
+}: ChevronIconProps) {
+ return (
+
+ );
+}
+
+const DIRECTION_DEGREE = {
+ up: 180,
+ right: 270,
+ down: 0,
+ left: 90,
+} as const;
+
+const ArrowIconCss = (degree: number) => css`
+ transform: rotate(${degree}deg);
+`;
diff --git a/src/components/Icons/Icon.stories.tsx b/src/components/Icons/Icon.stories.tsx
new file mode 100644
index 00000000..9451042f
--- /dev/null
+++ b/src/components/Icons/Icon.stories.tsx
@@ -0,0 +1,27 @@
+import { Meta } from '@storybook/react';
+
+import { ArrowIcon } from './index';
+
+const meta: Meta = {
+ title: 'components/Icon',
+};
+
+// Icon 폴더의 파일명을 알파벳순서로 정렬해주세요~
+
+export default meta;
+
+export const ArrowDown = {
+ render: () => ,
+};
+
+export const ArrowUp = {
+ render: () => ,
+};
+
+export const ArrowLeft = {
+ render: () => ,
+};
+
+export const ArrowRight = {
+ render: () => ,
+};
diff --git a/src/components/Icons/MenuIcon.tsx b/src/components/Icons/MenuIcon.tsx
new file mode 100644
index 00000000..287ac367
--- /dev/null
+++ b/src/components/Icons/MenuIcon.tsx
@@ -0,0 +1,17 @@
+import { Props, Svg } from '~/components/Icons/Svg';
+
+export function MenuIcon({ color = '#fff', ...props }: Props) {
+ return (
+
+ );
+}
diff --git a/src/components/common/icons/Svg.tsx b/src/components/Icons/Svg.tsx
similarity index 81%
rename from src/components/common/icons/Svg.tsx
rename to src/components/Icons/Svg.tsx
index 582cb3fd..9c3e0ef7 100644
--- a/src/components/common/icons/Svg.tsx
+++ b/src/components/Icons/Svg.tsx
@@ -2,13 +2,7 @@ import { PropsWithChildren, SVGProps } from 'react';
export interface Props extends SVGProps {}
-export default function Svg({
- children,
- width,
- height,
- viewBox,
- ...rest
-}: PropsWithChildren) {
+export function Svg({ children, width, height, viewBox, ...rest }: PropsWithChildren) {
return (