.
├── newspace-frontend
│ ├── .metadata
│ ├── .vite
│ ├── node_modules
│ ├── public
│ │
│ ├── src
│ │ ├── api
│ │ │ ├── categoryApi.jsx // 카테고리 API
│ │ │ ├── keywordApi.jsx // 키워드 API
│ │ │ ├── loginApi.jsx // 로그인 API
│ │ │ ├── managerApi.jsx // 관리자 공지 API
│ │ │ ├── newsApi.jsx // AI 뉴스 API
│ │ │ ├── profileApi.jsx // 프로필 사진 API
│ │ │ ├── signupApi.jsx // 회원가입 API
│ │ │ └── userinfoApi.jsx // 회원정보 API
│ │ │
│ │ ├── assets
│ │ │ ├── newspace_logo1.png // newspace 로고1
│ │ │ ├── newspace_logo2.png // newspace 로고2
│ │ │ ├── profile.png // 프로필 디폴트 이미지
│ │ │ └── react.svg // react logo
│ │ │
│ │ ├── context
│ │ │ └── AuthContext.jsx // 로그인 상태 확인 및 사용자 정보 관리
│ │ │
│ │ └── pages
│ │ ├── login
│ │ │ ├── login.css // 로그인 페이지 css
│ │ │ └── login.jsx // 로그인 페이지
│ │ ├── news
│ │ │ ├── article.jsx // 뉴스 기사 컴포넌트
│ │ │ ├── keywords.jsx // 키워드 컴포넌트
│ │ │ ├── newsCategory.jsx // 뉴스 카테고리 목록 페이지
│ │ │ ├── newsDetail.jsx // 뉴스 상세 페이지
│ │ │ ├── newsMain.jsx // 뉴스 메인 페이지
│ │ │ ├── news_s.jsx // 뉴스 메인 스타일
│ │ │ ├── notice.jsx // 관리자 공지 컴포넌트
│ │ │ └── sidebar.jsx // 사이드바 컴포넌트
│ │ │
│ │ │
│ │ ├── signup
│ │ │ ├── signup.css // 회원가입 페이지 css
│ │ │ └── signup.jsx // 회원가입 페이지
│ │ └── user
│ │ ├── editProfile.jsx // 개인정보수정 modal 컴포넌트
│ │ └── userToggle.jsx // 회원 toggle 컴포넌트
│ │
│ ├── App.css
│ ├── App.jsx
│ ├── index.css
│ ├── main.jsx
│ ├── .env
│ ├── .gitignore
│ ├── eslint.config.js
│ ├── index.html
│ ├── package-lock.json
│ ├── package.json
│ ├── README.md
│ └── vite.config.js
│