Skip to content

[discussion]: view 공통 컴포넌트(@common) 폴더 구조 개선 제안 #942

Description

@nxnaxx

Related Issue

#921

Overview

현재 view 패키지의 공통 컴포넌트는 src/components/@common/에 위치합니다. 일반 컴포넌트 폴더와 구분하기 위한 @ prefix가 존재하는데, 네이밍/폴더 구조 측면에서 아쉬운 점이 있어 개선을 제안합니다.

아쉬운 점

  • 특수문자 @ 사용: 일반적으로 @는 패키지 스코프 관례이기도 하고 path alias에 자주 사용되는 표기로, 도구/사람 모두 혼동 가능성이 있음
  • src/components/ 하위에 도메인 컴포넌트와 공통 컴포넌트가 혼재되어 있어 스코프가 불명확함
  • 프로젝트 기존 컨벤션과도 맞지 않음
    • @만 제거(src/components/common/) -> 다른 컴포넌트 폴더(PascalCase)와 달리 소문자라 일관성 X
    • src/components/Common/으로 변경 → 단일 컴포넌트로 오해할 수 있음

제안

옵션 1: src/shared/ui/

src/
├─ components/              # 도메인 컴포넌트
│  ├─ Detail/
│  ├─ FilteredAuthors/
│  └─ ...
└─ shared/
   └─ ui/                   # 공통 컴포넌트
      ├─ Author/
      ├─ GithubIssueLink/
      └─ ...
  • 레이어 의미가 명확함(shared/ui/)
  • shared/hooks, shared/lib 등 추후 확장 용이

옵션 2: src/common/

src/
├─ components/              # 도메인 컴포넌트
│  ├─ Detail/
│  ├─ FilteredAuthors/
│  └─ ...
└─ common/                  # 공통 컴포넌트
   ├─ Author/
   ├─ GithubIssueLink/
   └─...
  • 옵션 1보다는 적은 중첩 구조
  • common의 범위가 모호함

논의 내용

  1. 둘 중에 어떤 옵션을 선호하시나요? 혹은 더 좋은 방안이 있다면 의견 주세요.
  2. 향후 다른 공통 코드(hooks, utils)도 같은 부모 디렉터리에 위치시켜야 할까요?

Metadata

Metadata

Assignees

Type

Fields

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions