선배가 후배를 위한 블로그 플랫폼입니다. 대회 모집, 포트폴리오 관리, 멘토링 기능을 제공합니다.
- 선배가 후배에게: 경험과 조언을 공유하는 블로그 기능
- 대회 모집: 대회 참가자를 모집하고 관리
- 포트폴리오: 간편한 포트폴리오 작성 및 관리
- 사용자 인증: 로그인/회원가입 시스템
- Frontend: React 18, TypeScript
- 상태 관리: React Query, Jotai
- 스타일링: Styled Components
- 라우팅: React Router DOM
- HTTP 클라이언트: Axios
- 에러 추적: Sentry
src/
├── components/ # React 컴포넌트
│ ├── auth/ # 인증 관련 컴포넌트
│ ├── common/ # 공통 컴포넌트
│ ├── home/ # 홈 페이지 컴포넌트
│ └── post/ # 게시글 관련 컴포넌트
├── hooks/ # 커스텀 훅
├── queries/ # React Query 훅
├── repositories/ # API 레이어
├── types/ # TypeScript 타입 정의
├── utils/ # 유틸리티 함수
├── constants/ # 상수 정의
├── styles/ # 스타일 관련
└── libs/ # 외부 라이브러리 설정
# 의존성 설치
yarn install
# 개발 서버 실행
yarn start
# 빌드
yarn build.env 파일을 생성하고 다음 환경변수를 설정하세요:
REACT_APP_API_URL=your_api_url
REACT_APP_SENTRY_DSN=your_sentry_dsnany타입 사용 금지- 모든 함수와 변수에 명시적 타입 지정
- 인터페이스와 타입 별칭 적극 활용
React.FC사용 금지 (children 타입 추론 문제)
- 함수형 컴포넌트 사용
- Props 인터페이스 정의
- 명시적 반환 타입 지정
- React Query: 서버 상태 관리
- Jotai: 클라이언트 상태 관리
- 커스텀 훅으로 로직 분리
- 일관된 에러 바운더리 사용
- 사용자 친화적인 에러 메시지
- 개발 환경에서 상세한 에러 정보 제공
- 모든 컴포넌트에 명시적 타입 지정
- API 응답 타입 정의 개선
- 유틸리티 함수 타입 안전성 확보
React.FC제거로 children 타입 추론 문제 해결
- 관심사 분리 (Separation of Concerns)
- 재사용 가능한 컴포넌트 설계
- 일관된 네이밍 컨벤션
- React Query 캐싱 전략 개선
- 불필요한 리렌더링 방지
- 메모이제이션 활용
- 로딩 상태 표시
- 에러 처리 강화
- 접근성 개선
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
이 프로젝트는 MIT 라이선스 하에 배포됩니다.
프로젝트에 대한 문의사항이 있으시면 이슈를 생성해주세요.