Skip to content

<refact> : 계층별 폴더구조를 지역성 원칙 폴더구조로 변경하기 #46

Description

@EllaSEON

🔥 Description

  • 현재 폴더구조는 코드가 속하는 계층별로 분리되어져있다. (ex: api 코드일경우 API 폴더에, 유틸리티 함수는 util 에)
    이러한 폴더구조의 단점은
  1. 어떤 기능과 관련된 구현이 코드 베이스 전체에 흩어져 있어서 특정 작업의 영향 범위가 특정 폴더 수준으로 제한되어 있지 않고
    코드베이스 전체로 퍼진다.
    따라서, 간단한 기능 추가에도 프로젝트의 여러 폴더를 광범위하게 건드리는 작업이 필요하다.
    컴포넌트가 유틸리티 함수를 참조할 때마다 모든 의존성 경로가 루트 레벨까지 거슬러 올라갔다가 다시 다른 디렉터리를 파고 들어가는 형태로 길고 복잡해진다.
    (import { applyDiscount } from ‘../../../my-project/utils/applyDiscount’;)
  2. 구현이 한 군데 모여있지 않아, 특정 기능을 모듈로 분리하는 작업이 어려워진다.
  • 따라서 지역성의 원칙을 고려한 폴더구조로 리팩토링 하고자 한다.

지역성 원칙 : 프로젝트의 내부 구조가 지역성이 발생하는 단위, 즉 기능 별로 묶이도록 함

image

위 사진과 같은 형식으로
최상위 폴더는 기능별로 나누고 기능별 폴더 안에서는 계층별로 코드를 분리하자.

참고 링크 : https://ahnheejong.name/articles/package-structure-with-the-principal-of-locality-in-mind/

Metadata

Metadata

Assignees

Labels

refact리팩토링

Projects

Status
No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions