# Synology NAS React 앱 배포 가이드 이제 개발하신 웹사이트를 실제 인터넷(`sokuree.com`)에 공개하는 과정입니다. 로컬에 있는 코드 전체를 올리는 것이 아니라, **최적화된 빌드 파일(`dist` 폴더)**만 올리는 것입니다. ## 1. React 앱 빌드 (내 컴퓨터에서) 개발 모드(`dev`)는 테스트용입니다. 배포를 위해서는 '빌드'를 해야 합니다. 1. VS Code 터미널에서 기존 서버가 켜져 있다면 `Ctrl + C`로 끕니다. 2. 다음 명령어를 입력합니다: ```bash npm run build ``` 3. 잠시 후 `dist` 라는 폴더가 새로 생깁니다. - 이 **`dist` 폴더 안에 있는 파일들**(`index.html`, `assets` 폴더 등)이 실제 서버에 올라갈 주인공입니다. ## 2. Synology에 폴더 생성 및 업로드 1. Synology **File Station**을 엽니다. 2. `/web` 폴더 아래에 새 폴더 `sokuree_front`를 만듭니다. (워드프레스 폴더와 섞이지 않게 따로 만듭니다) 3. 방금 만든 내 컴퓨터의 `dist` 폴더 **안에 있는 모든 내용물**을 `sokuree_front` 폴더 안으로 업로드합니다. - 결과 경로 예시: `/web/sokuree_front/index.html` 이 있어야 함. ## 3. Web Station 설정 (프론트엔드용) 이제 `sokuree.com` 주소를 이 폴더에 연결합니다. 1. **Web Station** -> **웹 서비스 포털** -> **생성**. 2. **서비스**: 정적 웹 사이트 (또는 가상 호스트). 3. **설정**: - 호스트 이름: `sokuree.com` (메인 도메인) - 문서 루트: `/web/sokuree_front` - 백엔드 서버: Nginx (추천) 또는 Apache 4. **확인**. ## 4. 새로고침 시 404 에러 방지 (중요!) React 대시보드는 "단일 페이지 앱(SPA)"이라서, 새로고침을 하면 시놀로지가 "어? 뉴스 페이지 파일은 없는데?" 하고 404 에러를 냅니다. 이를 방지하는 설정 파일이 필요합니다. ### 방법 A: Apache 사용 시 (추천) 1. 메모장을 열고 다음 내용을 붙여넣습니다: ```apache RewriteEngine On RewriteBase / RewriteRule ^index\.html$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L] ``` 2. 파일 이름을 `.htaccess`로 저장합니다. (파일 형식을 '모든 파일'로 선택) 3. 이 `.htaccess` 파일을 시놀로지의 `/web/sokuree_front` 폴더에 업로드합니다. ### 방법 B: Nginx 사용 시 1. Web Station 설정에서 해당 포털 편집 -> **스크립트 언어 설정** 탭 (또는 고급 설정). 2. `try_files $uri $uri/ /index.html;` 규칙을 추가할 수 있는 곳이 있는지 확인합니다. (시놀로지 버전마다 UI가 다름) 3. Nginx가 복잡하다면 마음 편하게 **백엔드 서버를 Apache로 선택**하고 위의 A방법(.htaccess)을 쓰는 것이 가장 쉽습니다. ## 5. 완료 이제 스마트폰이나 다른 PC에서 `http://sokuree.com` (도메인 연결이 되어 있다면) 으로 접속해보세요. React로 만든 멋진 사이트가 뜰 것입니다!