itsm_ysm/mobile/README.md
itms-merge-dev efc3e66635 feat(itms): 모바일 앱 신규 (Expo, 12화면, OAuth password grant)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 17:10:46 +09:00

40 lines
1.7 KiB
Markdown

# ITMS 모바일 앱 (Expo)
URP ITMS(IT 유지보수관리 시스템)의 독립 Expo 모바일 앱. 모노레포 `workspace/itms/`
순수 Node 프로젝트로, Gradle 컴포짓(`settings.gradle`)에 포함되지 않는다.
## 스택
- Expo SDK 51 · React Native 0.74 · expo-router · TypeScript
- 디자인: WISE 표준(시안 #11c3ff · 블루 #1f29fc · 카드 UI · 선 아이콘, 이모지 없음)
- 정본 레퍼런스: `workspace/camp/mobile`, `workspace/uiws/mobile`
## 인증 (실측 계약)
레거시 OAuth2 **password grant** — 웹 front 와 동일.
```
POST {BASE}/oauth/token?grant_type=password&username=<userId>&password=<pw>&ssoYn=N
Authorization: Basic base64(clientId:secretKey)
```
응답의 `access_token`(JWT) + 평탄화된 사용자 필드(userName·authorities 등)를 저장.
업무 API 는 `POST /xxx.do` + `Authorization: Bearer <jwt>`, 응답 payload 는 `data` 하위.
## 환경 분기 (app.config.js)
- `ITMS_ENV=dev``https://itms.zioinfo.co.kr`
- `ITMS_ENV=prod``https://itms.wise.ai.kr`
> ★인프라 전제: 현재 리버스 프록시 vhost 는 front(:11020)만 노출한다. 모바일이 동작하려면
> nginx 에 `/oauth/`(→:11000) 및 업무 경로(→:11010) 프록시 블록 활성화가 선결되어야 한다.
## 실행
```
cd workspace/itms/mobile
npm install
npm start # expo (Metro)
npm run typecheck # tsc --noEmit
```
## 화면
로그인 · 홈(대시보드) · 요청(목록/등록/상세) · 인시던트(목록/상세) · 공지(목록/상세) ·
내정보(프로필/테마/로그아웃) · 자산(조회/상세).
APK 빌드는 EAS 토큰이 필요하여 이 단계에서 보류(로컬 소스 + tsc 검증까지 완료).