bch3454/rooney1433 icon
public
Published on 6/9/2025
Rooney Test

Rules
Prompts
Models
Context
relace Relace Instant Apply model icon

Relace Instant Apply

relace

40kinput·32koutput
anthropic Claude 3.7 Sonnet model icon

Claude 3.7 Sonnet

anthropic

200kinput·8.192koutput
anthropic Claude 3.5 Sonnet model icon

Claude 3.5 Sonnet

anthropic

200kinput·8.192koutput
mistral Codestral model icon

Codestral

mistral

voyage voyage-code-3 model icon

voyage-code-3

voyage

voyage Voyage AI rerank-2 model icon

Voyage AI rerank-2

voyage

openai OpenAI GPT-4o model icon

OpenAI GPT-4o

OpenAI

128kinput·16.384koutput
anthropic Claude 4 Sonnet model icon

Claude 4 Sonnet

anthropic

200kinput·64koutput
gemini Gemini 2.0 Flash model icon

Gemini 2.0 Flash

gemini

1048kinput·8.192koutput
together Llama 4 Scout Instruct (17Bx16E) model icon

Llama 4 Scout Instruct (17Bx16E)

together

ollama qwen2.5-coder 1.5b model icon

qwen2.5-coder 1.5b

ollama

32kinput·8.192koutput
ollama deepseek-r1 8b model icon

deepseek-r1 8b

ollama

128kinput·32.768koutput
# 프론트엔드 개발팀 코딩 규칙 (Frontend Development Style Guide)

본 문서는 코드의 일관성을 유지하고, 가독성을 높이며, 협업 효율을 극대화하기 위한 프론트엔드 개발팀의 공식 코딩 규칙을 정의합니다. 모든 프로젝트 구성원은 이 규칙을 숙지하고 준수해야 합니다.
## 0. 항상 한국어로 대답해주세요.
## 1. 📂 파일 및 폴더 구조 (File & Directory Structure) 일관된 구조는 프로젝트의 파악을 용이하게 하고 파일 탐색 시간을 줄여줍니다.
-   **컴포넌트**: 모든 재사용 가능한 컴포넌트는 `src/components` 내에 위치시킵니다.
    -   컴포넌트 관련 파일(Style, Test, Storybook 등)은 하나의 폴더로 그룹화합니다.
    -   **구조 예시**:
        ```
        /components
        └── Button
            ├── index.ts           # 컴포넌트 export 담당
            ├── Button.tsx         # 컴포넌트 로직
            ├── Button.module.css  # CSS 모듈 스타일
            └── Button.test.tsx    # 테스트 코드
        ```
-   **페이지**: 라우팅의 단위가 되는 페이지 컴포넌트는 `src/pages` 또는 `src/app` (Next.js App Router) 내에 위치시킵니다.
-   **API 로직**: API 요청 및 관련 로직은 `src/apis` 또는 `src/services` 디렉토리에서 관리합니다.
-   **Hooks**: 여러 컴포넌트에서 재사용되는 커스텀 훅은 `src/hooks` 디렉토리에서 관리합니다.
-   **타입**: 전역적으로 사용되는 TypeScript 타입은 `src/types` 또는 `src/interfaces` 디렉토리에서 관리합니다.

## 2. 📛 네이밍 컨벤션 (Naming Convention)

예측 가능한 네이밍은 코드의 가독성을 향상시킵니다.

-   **컴포넌트**: 파스칼 케이스(PascalCase)를 사용합니다.
    -   `Button.tsx`, `Modal.tsx`
-   **파일 및 폴더**: 케밥 케이스(kebab-case) 또는 파스칼 케이스(PascalCase)를 사용하되, 프로젝트 내에서 일관성을 유지합니다. 컴포넌트 폴더는 파스칼 케이스를 권장합니다.
    -   `/user-profile`, `/common-hooks` (폴더)
    -   `Button`, `UserProfile` (컴포넌트 폴더)
-   **변수/함수**: 카멜 케이스(camelCase)를 사용합니다.
    -   `const userName = '...';`
    -   `function getUserInfo() { ... }`
-   **TypeScript 타입/인터페이스**: 파스칼 케이스(PascalCase)를 사용하며, 컴포넌트 Props는 `컴포넌트명Props` 형식을 따릅니다.
    -   `interface UserInfo { ... }`
    -   `type ButtonProps = { ... }`
-   **이벤트 핸들러**: `handle` 접두사 + `이벤트명`으로 작성합니다.
    -   `const handleClick = () => { ... };`
    -   `const handleChange = (e) => { ... };`

## 3. 🎨 코드 스타일 및 포맷팅 (Code Style & Formatting)

-   **컴포넌트 선언**: 클래스형 컴포넌트 대신 **함수형 컴포넌트**와 **화살표 함수**를 사용합니다.
    ```typescript
    const MyComponent: React.FC<MyComponentProps> = ({ prop1, prop2 }) => {
      // ...
    };
    ```
-   **상태 관리**: 간단한 상태는 `useState`를, 복잡한 상태 로직은 `useReducer`를 사용합니다.
-   **스타일링**: CSS-in-JS (e.g., Styled-components, Emotion) 또는 CSS Modules 사용을 원칙으로 하여 스타일의 스코프를 컴포넌트로 한정합니다.
-   **들여쓰기(Indent)**: 스페이스 2칸을 사용합니다.
-   **세미콜론(Semicolon)**: 문장의 끝에는 세미콜론을 붙입니다.
-   **따옴표(Quotes)**: JSX/TSX의 속성 외의 모든 문자열에는 작은따옴표(`'`)를 사용합니다.
-   **불변성**: 배열과 객체를 직접 수정하지 않고, 전개 연산자(`...`)나 `map`, `filter` 등의 메서드를 사용하여 새로운 배열/객체를 반환합니다.

## 4. ⚙️ API 핸들링 (API Handling)

-   **요청 함수**: API 요청은 `try...catch` 문으로 감싸 에러 핸들링을 필수로 합니다.
-   **상태**: API 요청과 관련된 상태는 `loading`, `data`, `error` 3가지로 명확하게 관리합니다.
    ```typescript
    const [state, setState] = useState({
      loading: false,
      data: null,
      error: null,
    });
    ```
-   **클라이언트**: `axios` 또는 내장 `fetch` API를 사용하되, 프로젝트 전반에 걸쳐 일관된 클라이언트를 사용합니다. `axios`의 경우 인스턴스를 생성하여 `baseURL`, `timeout` 등을 설정합니다.

## 5. ✅ 테스팅 (Testing)

-   **단위 테스트**: 유틸리티 함수, 커스텀 훅 등 비즈니스 로직은 반드시 단위 테스트를 작성합니다.
-   **컴포넌트 테스트**: 주요 컴포넌트는 `React Testing Library`를 사용하여 렌더링 결과와 사용자 상호작용을 테스트합니다.
-   **테스트 파일 위치**: 테스트할 파일과 동일한 경로에 위치시키고 `.test.ts` 또는 `.test.tsx` 확장자를 사용합니다.

## 6. 💬 커밋 메시지 (Commit Messages)

프로젝트 히스토리의 가독성과 추적을 위해 **Conventional Commits** 규칙을 따릅니다.

-   **형식**: `<type>(<scope>): <subject>`
-   **주요 타입**:
    -   `feat`: 새로운 기능 추가
    -   `fix`: 버그 수정
    -   `docs`: 문서 수정
    -   `style`: 코드 포맷팅, 세미콜론 누락 등 (코드 변경이 없는 경우)
    -   `refactor`: 코드 리팩토링
    -   `test`: 테스트 코드 추가/수정
    -   `chore`: 빌드 업무 수정, 패키지 매니저 설정 등
-   **예시**:
    ```
    feat(auth): 로그인 기능 및 UI 구현
    fix(header): 모바일 환경에서 로고가 깨지는 문제 수정
    ```

No Docs configured

Prompts

Learn more
Create Page Components
React 페이지 컴포넌트 및 관련 파일을 생성하고 라우팅을 추가합니다.
{{{input}}}

## 1. 파일 및 폴더 구조 (File & Directory Structure)
- 페이지 컴포넌트는 `src/pages` 내에 위치시킵니다. - 페이지 컴포넌트 관련 파일(Style, Test 등)은 하나의 폴더로 그룹화합니다. - **구조 예시**:
  ```
  /pages
  └── Home
      ├── index.ts           # 컴포넌트 export 담당
      ├── Home.tsx         # 컴포넌트 로직
      ├── Home.module.css  # CSS 모듈 스타일
      └── Home.test.tsx    # 테스트 코드
  ```
- **페이지 컴포넌트 예시**:
  ```tsx
  import React from "react";
  import styles from "./Home.module.css";

  const Home: React.FC = () => {
    return <div className={styles.container}>HomePage</div>;
  };

  export default Home;
  ```

## 2. 라우팅 추가
- `src/main.tsx`에 신규 생성한 `<Route/>` 컴포넌트를 추가합니다.  - **example**:
  ```
  <Route path="/home" element={<Home />} />
  ```

Context

Learn more
@codebase
Reference the most relevant snippets from your codebase
@file
Reference any file in your current workspace
@code
Reference specific functions or classes from throughout your project
@diff
Reference all of the changes you've made to your current branch
@folder
Uses the same retrieval mechanism as @Codebase, but only on a single folder
@terminal
Reference the last command you ran in your IDE's terminal and its output
@http
Make POST requests to fetch context from custom endpoints

No Data configured

MCP Servers

Learn more

No MCP Servers configured