Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor(api): API 패키지 리팩토링 및 전체 앱 ESM 사용하도록 수정 #6

Merged
merged 5 commits into from
Feb 12, 2025

Conversation

reach0908
Copy link
Owner

PR 템플릿에 맞춰 이번 브랜치의 변경사항을 정리해드리겠습니다:

🔍️ 이 PR을 통해 해결하려는 문제가 무엇인가요?

패키지 설정 파일들의 중복된 코드를 제거하고 더 효율적이고 유지보수하기 쉬운 구조로 리팩토링이 필요했습니다.

  • TypeScript 설정 파일의 중복 제거
  • ESLint 설정 파일의 중복 제거
  • 코드 스타일 일관성 개선
  • 불필요한 설정 제거

✨ 이 PR에서 핵심적으로 변경된 사항은 무엇일까요?

  1. TypeScript 설정 리팩토링

    • base.json에 공통 설정 통합
    • 프레임워크별 특화 설정만 각 파일에 유지
    • 중복 설정 제거
  2. ESLint 설정 리팩토링

    • base.js에 공통 설정 통합
    • 프레임워크별 플러그인과 규칙만 유지
    • 사용하지 않는 변수 에러 처리 추가
    • import 정렬 규칙 추가
  3. Prettier 설정 추가

    • import 문 자동 정렬 설정
    • 일관된 코드 스타일 적용

🔖 핵심 변경 사항 외에 추가적으로 변경된 부분이 있나요?

  1. 패키지 의존성 추가

    • @trivago/prettier-plugin-sort-imports 추가
    • eslint-plugin-import 추가
  2. 설정 파일 구조 개선

    • 각 설정 파일의 역할 명확화
    • 상속 구조 개선

🙏 Reviewer 분들이 이런 부분을 신경써서 봐 주시면 좋겠어요

  1. 설정 파일 간의 상속 구조가 적절한지
  2. 각 프레임워크별 특화 설정이 충분한지
  3. 새로 추가된 린트 규칙들이 적절한지
  4. import 정렬 설정이 프로젝트 구조에 맞는지

🩺 이 PR에서 테스트 혹은 검증이 필요한 부분이 있을까요?

  1. 각 프로젝트에서 pnpm lint 실행하여 새로운 린트 규칙 검증
  2. 각 프로젝트에서 pnpm format 실행하여 import 정렬 검증
  3. TypeScript 컴파일이 정상적으로 동작하는지 확인
  4. 프레임워크별 특화 기능이 정상 동작하는지 확인

📝 CheckList

  • 셀프 코드리뷰 및 QA를 진행했습니다.
  • QA 카드를 생성하고, 테스트 방법에 대한 설명을 추가했습니다.

🔗 Reference

1. ESLint 설정 개선
packages/eslint-config/base.js 파일에서 기존 "parser" 설정을 ESLint flat config에 맞게 "languageOptions.parser"로 이전하고, '@typescript-eslint/parser'를 사용하도록 수정하였습니다.
2. Drizzle ORM 구성 리팩토링
관련 drizzle ORM 설정 파일들을 shared 패키지로 이동 및 리팩토링하였으며, 이에 따른 설정 정비가 이루어졌습니다. (커밋 메시지: "refactor(drizzle): drizzlORM config 파일들 shared 패키지로 리팩토링")
3. Shared 패키지 빌드 결과물 개선
packages/shared/tsconfig.json을 수정하여, src 폴더 구조를 그대로 dist에 반영하고 타입 선언 파일(declaration, declarationMap)을 생성하도록 하였습니다.
packages/shared/package.json의 "exports", "main", "types"와 추가된 "typesVersions" 설정을 통해 소비자가 import 시 "dist" 경로가 노출되지 않도록 개선하였습니다.
src/index.ts 파일을 추가하여 패키지의 진입점(entry point)을 정의하고 필요한 모듈들을 re-export하도록 구성하였습니다.
중복 제거: 모든 설정 파일에서 중복되는 설정을 base 파일로 이동
명확한 책임: 각 설정 파일이 자신의 특화된 목적에만 집중
상속 구조: base 파일을 extends하여 공통 설정 재사용
유지보수성: 더 간결하고 명확한 구조로 개선
설정 일관성: 프레임워크별 최적화된 설정 제공
Copy link

linear bot commented Feb 12, 2025

@reach0908 reach0908 self-assigned this Feb 12, 2025
@reach0908 reach0908 changed the title Feature/kjh 161 Refactor(api): API 패키지 리팩토링 및 전체 앱 ESM 사용하도록 수정 Feb 12, 2025
@reach0908 reach0908 merged commit 4cc1560 into develop Feb 12, 2025
3 checks passed
@reach0908 reach0908 deleted the feature/kjh-161 branch February 12, 2025 03:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant