GLUE는 React Native로 개발된 모바일 앱으로, 사용자들이 손쉽게 연결되고 소통할 수 있는 플랫폼입니다.
- React Native
- TypeScript
- React Navigation
- i18next (다국어 지원)
- react-query (데이터 페칭)
- react-native-reanimated (애니메이션)
- react-native-svg (SVG 아이콘)
이 프로젝트는 Feature-Sliced Design(FSD) 아키텍처 패턴을 따릅니다. 이 아키텍처는 기능 중심의 구조를 제공하여 코드 관리와 확장성을 향상시킵니다.
/src
├── app // 앱 설정, 전역 상태, 프로바이더
├── entities // 비즈니스 엔티티 (데이터 모델)
├── features // 비즈니스 기능 단위
├── widgets // 재사용 가능한 UI 블록
├── shared // 공통 UI, 유틸리티, 훅, 라이브러리
└── processes // 복잡한 비즈니스 프로세스
코드 가독성과 유지보수성을 향상시키기 위해 다음과 같은 경로 별칭을 사용합니다:
// 예시
import {HomeScreen} from '@features/Home';
import {Button} from '@shared/ui';
import {useTheme} from '@app/providers/theme';사용 가능한 별칭:
@app/*- 앱 레이어@features/*- 기능 레이어@entities/*- 엔티티 레이어@widgets/*- 위젯 레이어@shared/*- 공통 코드@processes/*- 프로세스 레이어
- Node.js 16.x 이상
- Yarn 1.22.x 이상
- iOS 개발: Xcode 13 이상, CocoaPods
- Android 개발: Android Studio, JDK 11
# 의존성 설치
yarn
# iOS 빌드 준비
cd ios && pod install && cd ..# iOS 실행
yarn ios
# Android 실행
yarn android
# Metro 서버 시작
yarn start# 캐시 초기화하여 Metro 서버 시작
yarn reset
# 모든 캐시 정리 및 재설치
yarn clean:all
# iOS 캐시 정리
yarn clean:ios
# Android 캐시 정리
yarn clean:android- 스택 내비게이션: 화면 간 이동
- 탭 내비게이션: 메인 기능 탐색
- 모달: 알림 패널 등
특징:
- Safe Area 적용을 통한 반응형 탭바 (노치 및 홈 인디케이터 대응)
- SVG 아이콘 사용으로 고품질 UI 구현
- 소셜 로그인 (카카오, 구글, 애플)
- 프로필 설정 (이름, 닉네임, 성별)
- 게시글 목록
- 상세 보기
- 글 작성
- 채팅방 목록
- 1:1 채팅
- 사용자 정보 표시
- 프로필 편집
- 한국어/영어 지원
- 시스템 언어 감지
- 컴포넌트를 기능 단위로 구성
- 공통 UI 컴포넌트는
shared/ui에 배치 - 상태 관리 로직은 각 기능의
model디렉토리에 배치
- 해당 기능에 맞는 레이어 선택 (주로
features) - 레이어 내 기능별 디렉토리 생성
- 내부 구조 생성:
ui/- 컴포넌트model/- 상태와 로직api/- API 요청index.ts- 공개 API
yarn resetyarn clean:iosyarn clean:android