-
released this
2026-01-19 11:18:59 +00:00 | 7 commits to main since this releaseSokuree Web - Code Structure & Components Guide
이 문서는 프로젝트의 소스 코드 구조와 주요 컴포넌트들의 역할을 설명합니다.
📁 Directory Structure (폴더 구조)
d:/antigravity/ ├── dist/ # 빌드 결과물 (배포용 파일들) ├── docs/ # 프로젝트 문서 (설치, 배포, 설정 가이드) ├── public/ # 정적 파일 (favicon 등) ├── src/ # 소스 코드 메인 디렉토리 │ ├── api/ # 외부 API 연동 로직 │ ├── assets/ # 이미지, 폰트 등 리소스 │ ├── components/ # 재사용 가능한 UI 컴포넌트 │ ├── config/ # 설정 파일 (상수 등) │ ├── pages/ # 라우트(Route)별 페이지 컴포넌트 │ ├── styles/ # 전역 CSS 스타일 │ └── utils/ # 유틸리티 함수 ├── index.html # 앱 진입점 HTML └── vite.config.js # Vite 빌드 설정
🧩 Key Components (주요 컴포넌트)
1.
src/components/공통적으로 사용되는 UI 요소들입니다.
Navbar.jsx: 상단 네비게이션 바. 로고와 메뉴 링크를 포함합니다.Footer.jsx: 하단 푸터. 사업자 정보, 연락처, 개인정보방침 링크(mailto:기능 포함)가 있습니다.Contact.jsx: 문의하기 폼.- Rate Limiting:
localStorage를 이용해 1분 내 재전송을 막습니다. - FormSubmit: 이메일 발송 서비스와 연동됩니다.
- Rate Limiting:
PostCard.jsx: 뉴스 목록에서 각 게시글을 보여주는 카드형 UI.Layout.jsx:Navbar와Outlet(페이지 내용),Footer를 감싸는 레이아웃 래퍼입니다.
2.
src/pages/각 URL 경로에 해당하는 페이지들입니다.
About.jsx: 회사 소개 및 대표 프로필 페이지. (/about)Services.jsx/ServiceDetail.jsx: 제공 서비스 목록 및 상세 설명.News.jsx: 워드프레스 API(wpApi)를 호출하여 소식 목록을 보여줍니다.NewsDetail.jsx: 개별 소식의 상세 내용을 보여줍니다.slug를 이용해 워드프레스에서 글을 가져옵니다.- 하단에 "목록으로 돌아가기" 버튼이 있습니다.
Privacy.jsx: 개인정보처리방침 페이지. 법적 요구사항에 맞춘 텍스트가 포함되어 있습니다.
3.
src/api/wordpress.js: 워드프레스 REST API와 통신하는 함수들(getPosts,getPostBySlug)이 모여 있습니다.- Backend URL:
https://api.sokuree.com/wp-json(설정 필요)
- Backend URL:
4.
src/styles/main.css: 전체 사이트의 스타일이 통합된 CSS 파일입니다.- CSS 변수(
:root)로 색상 테마 관리. - 반응형 미디어 쿼리 포함.
- 보안 설정: 드래그 방지, 텍스트 선택 방지(Contact/Footer 예외 처리) 등의 스타일이 정의되어 있습니다.
- CSS 변수(
🔒 Security Features (보안 기능)
이 프로젝트에는 기본적인 프론트엔드 보안 조치가 적용되어 있습니다.
- 우클릭 차단:
App.jsx에서contextmenu이벤트를 차단하여 "다른 이름으로 저장" 등을 방지합니다. - 드래그/선택 방지: CSS(
main.css)를 통해 이미지 드래그와 텍스트 선택을 막습니다.- 예외: 사용자 편의를 위해 입력폼(
input,textarea)과 푸터 연락처(footer-info)는 선택 가능합니다.
- 예외: 사용자 편의를 위해 입력폼(
- XSS 방지:
dompurify라이브러리를 사용하여 워드프레스 본문(HTML)을 렌더링할 때 악성 스크립트를 제거합니다.
Downloads