Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,6 @@ next-env.d.ts

# Sentry Config File
.sentryclirc

# Turborepo
.turbo
4 changes: 2 additions & 2 deletions .env → apps/web/.env
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ NEXT_PUBLIC_CURRENT_TERM=2025-2
# false: 로컬스토리지 + Zustand (개발/테스트 편의)
NEXT_PUBLIC_COOKIE_LOGIN_ENABLED=true

NEXT_PUBLIC_IMAGE_URL=https://d1q5o8tzvz4j3d.cloudfront.net
NEXT_PUBLIC_UPLOADED_IMAGE_URL=https://d23lwokhcc3r0c.cloudfront.net
NEXT_PUBLIC_IMAGE_URL=https://cdn.default.solid-connection.com
NEXT_PUBLIC_UPLOADED_IMAGE_URL=https://cdn.upload.solid-connection.com

# google maps
NEXT_PUBLIC_GOOGLE_MAP_API_KEY=AIzaSyCB4HLGx4IR4gKYc4sBOrORwiRWDIn_-4s
Expand Down
File renamed without changes.
File renamed without changes.
26 changes: 26 additions & 0 deletions apps/web/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Dependencies
node_modules

# Build outputs
.next
out
build
dist

# Generated files
*.min.js
*.min.css
next-env.d.ts

# Cache
.cache
.turbo

# Coverage
coverage

# Vercel
.vercel

# Documentation
클로드.md
134 changes: 134 additions & 0 deletions apps/web/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
/**
* ESLint 설정 파일
* Next.js + TypeScript 프로젝트용
*
* 주요 설정:
* - TypeScript 파서 사용
* - Next.js 및 TypeScript 권장 규칙 적용
* - Prettier와의 충돌 방지
*/
module.exports = {
root: true,
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
project: "./tsconfig.json",
},
env: {
browser: true,
es2021: true,
node: true,
},
plugins: ["@typescript-eslint", "prettier"],
extends: [
// Next.js 기본 설정
"next",
// Next.js TypeScript 설정 (plugin:@typescript-eslint/recommended 기반)
"next/typescript",
// TypeScript ESLint 권장 규칙
"plugin:@typescript-eslint/recommended",
// Prettier를 ESLint 규칙으로 실행
"plugin:prettier/recommended",
],
overrides: [
{
// 설정 파일들은 TypeScript 프로젝트에 포함되지 않으므로 project 옵션 비활성화
env: {
node: true,
},
files: [".eslintrc.{js,cjs}", "*.config.{js,mjs,ts}"],
parserOptions: {
sourceType: "script",
project: null,
},
},
],
rules: {
// ==========================================
// React 관련 규칙
// ==========================================

// JSX 사용 시 React import 불필요 (React 17+)
"react/react-in-jsx-scope": "off",

// JSX 허용 파일 확장자
"react/jsx-filename-extension": [1, { extensions: [".js", ".jsx", ".tsx"] }],

// defaultProps 필수 여부 비활성화
"react/require-default-props": "off",

// 함수 컴포넌트는 화살표 함수로 정의
"react/function-component-definition": [1, { namedComponents: "arrow-function" }],

// ==========================================
// Import 관련 규칙
// ==========================================

// import 순서는 Prettier 플러그인에서 처리
"import/order": "off",

// import 시 파일 확장자 생략 (warning으로 설정)
"import/extensions": "off",

// 단일 export 시 default export 권장 (warning)
"import/prefer-default-export": "off",

// ==========================================
// 일반 JavaScript 규칙
// ==========================================

// console.log 허용 (개발 편의)
"no-console": "off",

// alert 허용
"no-alert": "off",

// 정의 전 사용 허용 (TypeScript에서 처리)
"no-use-before-define": "off",

// 미사용 변수 - 기본 규칙 비활성화 (TypeScript 규칙과 충돌 방지)
"no-unused-vars": "off",

// ==========================================
// TypeScript 관련 규칙
// ==========================================

// 미사용 변수 경고 (TypeScript용 - 기본 규칙 대신 사용)
"@typescript-eslint/no-unused-vars": "warn",

// any 타입 사용 경고 (error -> warn)
"@typescript-eslint/no-explicit-any": "warn",

// any 타입 관련 규칙 (경고로 설정)
"@typescript-eslint/no-unsafe-assignment": "warn",
"@typescript-eslint/no-unsafe-member-access": "warn",
"@typescript-eslint/no-unsafe-return": "warn",
"@typescript-eslint/no-unsafe-call": "warn",
"@typescript-eslint/no-unsafe-argument": "warn",

// ==========================================
// 접근성 (a11y) 관련 규칙
// ==========================================

// label과 control 연결 규칙 비활성화
"jsx-a11y/label-has-associated-control": "off",

// 클릭 이벤트에 키보드 이벤트 필요 (경고)
"jsx-a11y/click-events-have-key-events": "warn",

// 정적 요소에 이벤트 핸들러 (경고)
"jsx-a11y/no-static-element-interactions": "warn",
},
settings: {
"import/parsers": {
"@typescript-eslint/parser": [".ts", ".tsx"],
},
"import/resolver": {
typescript: {
alwaysTryTypes: true,
project: "./tsconfig.json",
},
},
},
};
31 changes: 31 additions & 0 deletions apps/web/.next/app-build-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"pages": {
"/global-error": [
"static/chunks/webpack.js",
"static/chunks/main-app.js",
"static/chunks/app/global-error.js"
],
"/(home)/page": [
"static/chunks/webpack.js",
"static/chunks/main-app.js",
"static/chunks/app/(home)/page.js"
],
"/(home)/layout": [
"static/chunks/webpack.js",
"static/chunks/main-app.js",
"static/chunks/app/(home)/layout.js"
],
"/layout": [
"static/chunks/webpack.js",
"static/chunks/main-app.js",
"static/css/styles.css",
"static/chunks/styles.js",
"static/chunks/app/layout.js"
],
"/not-found": [
"static/chunks/webpack.js",
"static/chunks/main-app.js",
"static/chunks/app/not-found.js"
]
}
}
19 changes: 19 additions & 0 deletions apps/web/.next/build-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"polyfillFiles": [
"static/chunks/polyfills.js"
],
"devFiles": [],
"ampDevFiles": [],
"lowPriorityFiles": [
"static/development/_buildManifest.js",
"static/development/_ssgManifest.js"
],
"rootMainFiles": [
"static/chunks/webpack.js",
"static/chunks/main-app.js"
],
"pages": {
"/_app": []
},
"ampFirstPages": []
}
1 change: 1 addition & 0 deletions apps/web/.next/cache/eslint/.cache_sbj16r

Large diffs are not rendered by default.

Binary file not shown.
Binary file not shown.
1 change: 1 addition & 0 deletions apps/web/.next/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"type": "commonjs"}
1 change: 1 addition & 0 deletions apps/web/.next/react-loadable-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "_rsc_src_app_home__ui_NewsSection_index_tsx";
exports.ids = ["_rsc_src_app_home__ui_NewsSection_index_tsx"];
exports.modules = {

/***/ "(rsc)/./src/app/(home)/_ui/NewsSection/index.tsx":
/*!**************************************************!*\
!*** ./src/app/(home)/_ui/NewsSection/index.tsx ***!
\**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js");

/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/manwook-han/Desktop/code/solid-connect/solid-connect-2/apps/web/src/app/(home)/_ui/NewsSection/index.tsx#default`));


/***/ })

};
;
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "_rsc_src_components_layout_GlobalLayout_ui_ClientModal_index_tsx";
exports.ids = ["_rsc_src_components_layout_GlobalLayout_ui_ClientModal_index_tsx"];
exports.modules = {

/***/ "(rsc)/./src/components/layout/GlobalLayout/ui/ClientModal/index.tsx":
/*!*********************************************************************!*\
!*** ./src/components/layout/GlobalLayout/ui/ClientModal/index.tsx ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js");

/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/manwook-han/Desktop/code/solid-connect/solid-connect-2/apps/web/src/components/layout/GlobalLayout/ui/ClientModal/index.tsx#default`));


/***/ })

};
;
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "_rsc_src_lib_ScriptLoader_AppleScriptLoader_tsx";
exports.ids = ["_rsc_src_lib_ScriptLoader_AppleScriptLoader_tsx"];
exports.modules = {

/***/ "(rsc)/./src/lib/ScriptLoader/AppleScriptLoader.tsx":
/*!****************************************************!*\
!*** ./src/lib/ScriptLoader/AppleScriptLoader.tsx ***!
\****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/../../node_modules/.pnpm/next@14.2.35_@babel+core@7.28.6_@opentelemetry+api@1.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js");

/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/manwook-han/Desktop/code/solid-connect/solid-connect-2/apps/web/src/lib/ScriptLoader/AppleScriptLoader.tsx#default`));


/***/ })

};
;
3 changes: 3 additions & 0 deletions apps/web/.next/server/app-paths-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"/(home)/page": "app/(home)/page.js"
}
Loading