Initial commit: 산업 전문 정보 수집 시스템 README
- 산업안전, 플랜트 패키지, 압력용기 3개 분야 특화 - 태그 기반 정보 구조 및 검색 시스템 설계 - 맥미니 최적화 설치 가이드 포함 - 법적 준수를 위한 공개 정보원만 활용
This commit is contained in:
677
README.md
Normal file
677
README.md
Normal file
@@ -0,0 +1,677 @@
|
||||
# 산업 전문 정보 수집 시스템
|
||||
|
||||
## 🏭 프로젝트 개요
|
||||
|
||||
산업안전, 플랜트 패키지, 압력용기 분야의 전문 정보를 수집하고 분석하는 태그 기반 정보 시스템입니다. 법적 문제 없이 공개된 정보원에서 메타데이터와 태그를 중심으로 한 스마트 검색 서비스를 제공합니다.
|
||||
|
||||
## 🎯 주요 특징
|
||||
|
||||
- **전문 분야 특화**: 산업안전, 플랜트 패키지, 압력용기 3개 분야 집중
|
||||
- **다층 태그 시스템**: 기술 분류, 지역, 기업, 표준/규격 기반 태그
|
||||
- **스마트 검색**: 전문 용어와 자연어 쿼리를 구조화된 검색으로 변환
|
||||
- **시각화**: 기술 트렌드 차트, 연관 기술 네트워크, 타임라인
|
||||
- **합법적 수집**: 공개 RSS, API, 논문 데이터베이스 활용
|
||||
|
||||
## 📊 정보 수집 분야 & 소스
|
||||
|
||||
### 1. 산업안전 (Industrial Safety)
|
||||
```
|
||||
📚 학술 논문
|
||||
- PubMed (의학/보건 관련)
|
||||
- IEEE Xplore (전기/전자 안전)
|
||||
- ScienceDirect (화학/공정 안전)
|
||||
- JSTOR (사회과학 관점 안전)
|
||||
|
||||
📰 산업 동향
|
||||
- OSHA RSS feeds
|
||||
- HSE (영국 보건안전청)
|
||||
- KOSHA (한국산업안전보건공단)
|
||||
- NIOSH (미국 국립직업안전보건연구원)
|
||||
|
||||
🏢 업계 뉴스
|
||||
- Safety+Health Magazine
|
||||
- Industrial Safety & Hygiene News
|
||||
- Process Safety Progress
|
||||
```
|
||||
|
||||
### 2. 플랜트 패키지 (Plant Packages)
|
||||
```
|
||||
🏭 산업 냉동기
|
||||
- Carrier, Trane, Johnson Controls RSS
|
||||
- ASHRAE 기술 동향
|
||||
- Refrigeration & Air Conditioning
|
||||
|
||||
⚡ BOG (Boil-Off Gas) 시스템
|
||||
- LNG Industry Magazine
|
||||
- Offshore Technology
|
||||
- Gas Processing & LNG
|
||||
|
||||
🚢 선박 플랜트
|
||||
- Maritime Reporter
|
||||
- Ship & Offshore
|
||||
- Marine Engineering Review
|
||||
|
||||
🌍 각국 중공업 동향
|
||||
- 한국: 현대중공업, 대우조선해양, 삼성중공업
|
||||
- 일본: 미쓰비시중공업, 가와사키중공업
|
||||
- 중국: CSSC, CSIC
|
||||
- 유럽: Wärtsilä, MAN Energy Solutions
|
||||
```
|
||||
|
||||
### 3. 압력용기 관련 (Pressure Vessels)
|
||||
```
|
||||
📋 표준 및 규격
|
||||
- ASME (미국기계학회) 공지사항
|
||||
- KGS (한국가스안전공사) 기술기준
|
||||
- API (미국석유협회) 표준 업데이트
|
||||
- PED (유럽 압력기기 지침)
|
||||
|
||||
🔬 기술 논문
|
||||
- Journal of Pressure Vessel Technology
|
||||
- International Journal of Pressure Vessels and Piping
|
||||
- Pressure Vessels and Piping Conference
|
||||
|
||||
🏭 업계 동향
|
||||
- Pressure Vessel Manufacturer Association
|
||||
- 한국압력용기공업협동조합
|
||||
- 일본압력기술협회
|
||||
```
|
||||
|
||||
### 법적 준수 원칙
|
||||
- ✅ 공개 RSS 피드만 활용
|
||||
- ✅ 메타데이터 중심 수집 (제목, 요약, 태그)
|
||||
- ✅ 저작권 표시 및 원문 링크 제공
|
||||
- ❌ 전문 복사 금지
|
||||
- ❌ 페이월 우회 금지
|
||||
|
||||
## 🏷️ 태그 기반 정보 구조
|
||||
|
||||
### 다층 태그 시스템
|
||||
|
||||
```json
|
||||
{
|
||||
"article_id": "asme_2024_11_17_001",
|
||||
"source": "ASME",
|
||||
"source_type": "standard_update",
|
||||
"metadata": {
|
||||
"title": "ASME BPVC Section VIII Division 1 개정사항",
|
||||
"description": "압력용기 설계 기준 주요 변경사항 (첫 200자)",
|
||||
"url": "원문 링크",
|
||||
"published": "2024-11-17T10:30:00Z",
|
||||
"document_type": "standard"
|
||||
},
|
||||
"tags": {
|
||||
"field": {
|
||||
"primary": "pressure_vessels",
|
||||
"secondary": ["industrial_safety", "plant_packages"]
|
||||
},
|
||||
"location": {
|
||||
"primary": ["USA"],
|
||||
"mentioned": ["Korea", "Japan", "Europe"],
|
||||
"coordinates": [[40.7589, -73.9851]]
|
||||
},
|
||||
"technical_category": {
|
||||
"main": "Pressure Vessels",
|
||||
"sub": ["Design Standards", "Safety Codes", "Material Specifications"]
|
||||
},
|
||||
"entities": {
|
||||
"companies": ["현대중공업", "두산에너빌리티", "Babcock & Wilcox"],
|
||||
"organizations": ["ASME", "KGS", "API", "PED"],
|
||||
"standards": ["BPVC Section VIII", "KGS FS111", "API 510"]
|
||||
},
|
||||
"keywords": {
|
||||
"extracted": ["pressure vessel", "design code", "safety factor"],
|
||||
"weighted": [
|
||||
{"term": "ASME BPVC", "score": 0.95},
|
||||
{"term": "압력용기", "score": 0.88},
|
||||
{"term": "안전계수", "score": 0.75}
|
||||
]
|
||||
},
|
||||
"technical_specs": {
|
||||
"pressure_range": "150-600 psi",
|
||||
"temperature_range": "-20°C to 400°C",
|
||||
"materials": ["SA-516 Grade 70", "SA-240 Type 316L"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 태그 자동 생성 파이프라인
|
||||
|
||||
```
|
||||
다중 소스 수집 (RSS/API/논문DB)
|
||||
↓
|
||||
메타데이터 추출 (제목/요약/저자/날짜)
|
||||
↓
|
||||
전문 분야 NLP 처리
|
||||
├─ 기술 용어 인식 (Technical NER)
|
||||
├─ 표준/규격 추출 (ASME, KGS, API 등)
|
||||
├─ 기업/조직 인식
|
||||
├─ 지역/국가 추출
|
||||
└─ 기술 사양 파싱 (압력, 온도, 재료 등)
|
||||
↓
|
||||
전문 분야별 태그 정규화
|
||||
├─ 산업안전: 위험도, 사고유형, 예방조치
|
||||
├─ 플랜트: 장비유형, 공정, 용량
|
||||
└─ 압력용기: 규격, 재료, 설계조건
|
||||
↓
|
||||
신뢰도 점수 부여 (소스별 가중치)
|
||||
↓
|
||||
전문 DB 저장 (PostgreSQL + Elasticsearch)
|
||||
```
|
||||
|
||||
## 🔍 검색 시스템 설계
|
||||
|
||||
### 다차원 검색 인터페이스
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ 🔍 검색어: "ASME BPVC 압력용기 설계" │
|
||||
├─────────────────────────────────────────────────┤
|
||||
│ 📅 기간: [2024.10.01] ~ [2024.11.17] │
|
||||
│ 🏭 분야: [✓산업안전 ✓플랜트 ✓압력용기] │
|
||||
│ 🌍 지역: [✓한국 ✓미국 □일본 □유럽] │
|
||||
│ 📋 소스: [✓ASME ✓KGS ✓논문 □업계뉴스] │
|
||||
│ 🏷️ 기술분류: [✓설계기준 ✓안전규격 □재료] │
|
||||
│ 🎯 개체: [표준명] [기업명] [장비유형] │
|
||||
│ ⚙️ 기술사양: [압력범위] [온도범위] [재료등급] │
|
||||
└─────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 스마트 쿼리 빌더
|
||||
|
||||
**자연어 → 구조화 쿼리**
|
||||
```
|
||||
입력: "지난달 현대중공업 압력용기 ASME 기준"
|
||||
↓
|
||||
파싱: {
|
||||
time: "last_month",
|
||||
company: "현대중공업",
|
||||
field: "pressure_vessels",
|
||||
standard: "ASME"
|
||||
}
|
||||
↓
|
||||
쿼리:
|
||||
SELECT * FROM technical_documents
|
||||
WHERE '현대중공업' = ANY(entities.companies)
|
||||
AND 'pressure_vessels' = ANY(tags.field.primary)
|
||||
AND 'ASME' = ANY(entities.standards)
|
||||
AND published >= '2024-10-01'
|
||||
```
|
||||
|
||||
### 검색 결과 랭킹
|
||||
|
||||
**관련도 점수 계산**
|
||||
```python
|
||||
relevance_score = (
|
||||
technical_term_match * 0.3 + # 전문 용어 일치도
|
||||
standard_match * 0.25 + # 표준/규격 일치도
|
||||
company_match * 0.15 + # 기업/조직 일치도
|
||||
recency * 0.15 + # 최신성
|
||||
source_credibility * 0.1 + # 소스 신뢰도 (논문>표준>뉴스)
|
||||
field_relevance * 0.05 # 분야 관련성
|
||||
)
|
||||
|
||||
# 소스별 신뢰도 가중치
|
||||
source_weights = {
|
||||
"academic_paper": 1.0, # 학술 논문
|
||||
"standard_update": 0.95, # 표준 업데이트
|
||||
"industry_report": 0.8, # 산업 보고서
|
||||
"news_article": 0.6, # 뉴스 기사
|
||||
"blog_post": 0.3 # 블로그 포스트
|
||||
}
|
||||
```
|
||||
|
||||
## 💡 태그 활용 기능
|
||||
|
||||
### 1. 기술 트렌드 대시보드
|
||||
```
|
||||
분야별 트렌드 차트:
|
||||
- 기술별 언급 빈도 (막대 그래프)
|
||||
- 시간별 트렌드 변화 (라인 차트)
|
||||
- 색상 = 분야별 구분 (안전=빨강, 플랜트=파랑, 압력용기=초록)
|
||||
- 클릭 시 해당 기술 상세 검색
|
||||
|
||||
예시: "ASME BPVC" 급상승, "BOG 처리" 지속 증가
|
||||
```
|
||||
|
||||
### 2. 연관 기술 네트워크
|
||||
```
|
||||
"압력용기" 검색 시:
|
||||
ASME BPVC
|
||||
↑
|
||||
압력용기 ─── KGS FS111
|
||||
↓ ↘ ↘
|
||||
현대중공업 API 510 ─── 검사기준
|
||||
↓
|
||||
해상플랜트
|
||||
```
|
||||
|
||||
### 3. 기술 발전 타임라인
|
||||
```
|
||||
특정 기술의 시간별 발전 추이:
|
||||
|
||||
"BOG 처리기술" 발전 추이:
|
||||
│
|
||||
│ ╱╲
|
||||
│ ╱ ╲ ← 새로운 규제 발표
|
||||
│ ╱ ╲
|
||||
│__╱______╲___
|
||||
2023 2024 2025
|
||||
|
||||
주요 이벤트:
|
||||
- 2024.03: IMO 새 배출 규제
|
||||
- 2024.07: 삼성중공업 신기술 발표
|
||||
- 2024.11: ASME 기준 개정
|
||||
```
|
||||
|
||||
## 🔧 기술 구현
|
||||
|
||||
### Elasticsearch 스키마
|
||||
```json
|
||||
{
|
||||
"mappings": {
|
||||
"properties": {
|
||||
"title": {"type": "text", "analyzer": "nori"},
|
||||
"description": {"type": "text", "analyzer": "nori"},
|
||||
"source_type": {"type": "keyword"},
|
||||
"tags": {
|
||||
"properties": {
|
||||
"field": {
|
||||
"properties": {
|
||||
"primary": {"type": "keyword"},
|
||||
"secondary": {"type": "keyword"}
|
||||
}
|
||||
},
|
||||
"location": {
|
||||
"properties": {
|
||||
"primary": {"type": "keyword"},
|
||||
"coordinates": {"type": "geo_point"}
|
||||
}
|
||||
},
|
||||
"technical_category": {
|
||||
"properties": {
|
||||
"main": {"type": "keyword"},
|
||||
"sub": {"type": "keyword"}
|
||||
}
|
||||
},
|
||||
"entities": {
|
||||
"properties": {
|
||||
"companies": {"type": "keyword"},
|
||||
"organizations": {"type": "keyword"},
|
||||
"standards": {"type": "keyword"}
|
||||
}
|
||||
},
|
||||
"technical_specs": {
|
||||
"properties": {
|
||||
"pressure_range": {"type": "keyword"},
|
||||
"temperature_range": {"type": "keyword"},
|
||||
"materials": {"type": "keyword"}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"published": {"type": "date"},
|
||||
"vector": {"type": "dense_vector", "dims": 768}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 태그 추출 모듈
|
||||
```python
|
||||
# spaCy + 전문 분야 커스텀 모델
|
||||
def extract_technical_tags(text, title, description, source_type):
|
||||
tags = {
|
||||
"field": classify_technical_field(text, title),
|
||||
"location": extract_locations(text),
|
||||
"technical_category": classify_technical_category(text),
|
||||
"entities": extract_technical_entities(text),
|
||||
"technical_specs": extract_technical_specs(text)
|
||||
}
|
||||
return normalize_technical_tags(tags, source_type)
|
||||
|
||||
# 전문 용어 추출
|
||||
def extract_technical_entities(text):
|
||||
entities = {
|
||||
"companies": extract_companies(text),
|
||||
"organizations": extract_organizations(text),
|
||||
"standards": extract_standards(text) # ASME, KGS, API 등
|
||||
}
|
||||
return entities
|
||||
|
||||
# 기술 사양 추출 (압력용기 특화)
|
||||
def extract_technical_specs(text):
|
||||
specs = {}
|
||||
|
||||
# 압력 범위 추출 (psi, bar, MPa)
|
||||
pressure_pattern = r'(\d+(?:\.\d+)?)\s*(psi|bar|MPa|kPa)'
|
||||
pressure_matches = re.findall(pressure_pattern, text, re.IGNORECASE)
|
||||
if pressure_matches:
|
||||
specs["pressure_range"] = [f"{val} {unit}" for val, unit in pressure_matches]
|
||||
|
||||
# 온도 범위 추출
|
||||
temp_pattern = r'(-?\d+(?:\.\d+)?)\s*°?([CF])'
|
||||
temp_matches = re.findall(temp_pattern, text)
|
||||
if temp_matches:
|
||||
specs["temperature_range"] = [f"{val}°{unit}" for val, unit in temp_matches]
|
||||
|
||||
# 재료 규격 추출 (SA-, ASTM, KS 등)
|
||||
material_pattern = r'(SA-\d+|ASTM\s+\w+|KS\s+\w+|STS\s*\d+)'
|
||||
material_matches = re.findall(material_pattern, text, re.IGNORECASE)
|
||||
if material_matches:
|
||||
specs["materials"] = material_matches
|
||||
|
||||
return specs
|
||||
|
||||
# 표준/규격 추출
|
||||
def extract_standards(text):
|
||||
standards = []
|
||||
|
||||
# ASME 관련
|
||||
asme_pattern = r'ASME\s+(BPVC|B31\.\d+|PTC|QRO)'
|
||||
asme_matches = re.findall(asme_pattern, text, re.IGNORECASE)
|
||||
standards.extend([f"ASME {match}" for match in asme_matches])
|
||||
|
||||
# KGS 관련
|
||||
kgs_pattern = r'KGS\s+(FS\d+|GC\d+|AC\d+)'
|
||||
kgs_matches = re.findall(kgs_pattern, text, re.IGNORECASE)
|
||||
standards.extend([f"KGS {match}" for match in kgs_matches])
|
||||
|
||||
# API 관련
|
||||
api_pattern = r'API\s+(\d+[A-Z]*)'
|
||||
api_matches = re.findall(api_pattern, text, re.IGNORECASE)
|
||||
standards.extend([f"API {match}" for match in api_matches])
|
||||
|
||||
return standards
|
||||
```
|
||||
|
||||
## 📊 검색 분석 대시보드
|
||||
|
||||
### 검색 트렌드 분석
|
||||
```
|
||||
최근 검색어 TOP 10:
|
||||
1. ASME BPVC (428회)
|
||||
2. 압력용기 설계 (356회)
|
||||
3. 현대중공업 (289회)
|
||||
4. BOG 처리 (234회)
|
||||
5. KGS FS111 (198회)
|
||||
6. 산업안전 (187회)
|
||||
7. LNG 플랜트 (165회)
|
||||
8. API 510 (142회)
|
||||
9. 해상플랜트 (128회)
|
||||
10. 냉동기 효율 (115회)
|
||||
|
||||
검색 조합 패턴:
|
||||
- 표준 + 기업 (42%) - "ASME + 현대중공업"
|
||||
- 기술 + 지역 (28%) - "BOG + 한국"
|
||||
- 분야 + 기간 (30%) - "산업안전 + 최근 1개월"
|
||||
|
||||
분야별 검색 비율:
|
||||
- 압력용기: 45%
|
||||
- 플랜트 패키지: 35%
|
||||
- 산업안전: 20%
|
||||
```
|
||||
|
||||
### 개인화 추천
|
||||
```
|
||||
"관심 분야 기반 추천"
|
||||
- 최근 검색 기반: "ASME 검색 → KGS 관련 문서 추천"
|
||||
- 연관 기술 제안: "압력용기 → 재료 시험, 용접 기준"
|
||||
- 트렌딩 알림: "새로운 안전 규제 발표"
|
||||
- 업데이트 알림: "구독한 표준의 개정 사항"
|
||||
|
||||
맞춤형 대시보드:
|
||||
- 관심 기업 동향 (현대중공업, 두산에너빌리티 등)
|
||||
- 구독 표준 업데이트 (ASME, KGS, API)
|
||||
- 분야별 최신 논문 (압력용기, 플랜트 안전)
|
||||
```
|
||||
|
||||
## 🚀 최적화 전략
|
||||
|
||||
### 캐싱 계층
|
||||
```
|
||||
L1: Redis (실시간 검색 결과, 트렌딩 태그)
|
||||
L2: PostgreSQL (구조화된 메타데이터, 사용자 프로필)
|
||||
L3: Elasticsearch (전문 검색, 태그 인덱스)
|
||||
L4: S3/NAS (원본 문서, 논문 PDF)
|
||||
```
|
||||
|
||||
### 증분 업데이트
|
||||
- **실시간 모니터링**: RSS 피드 5분마다 체크
|
||||
- **논문 DB 동기화**: 일일 1회 학술 데이터베이스 스캔
|
||||
- **표준 업데이트**: ASME, KGS 등 공식 사이트 주간 모니터링
|
||||
- **스마트 처리**: 새 문서만 NLP 태그 처리
|
||||
- **통계 재계산**: 일일 태그 빈도 및 트렌드 업데이트
|
||||
|
||||
### 검색 성능 최적화
|
||||
- **사전 계산**: 자주 검색되는 조합 (기업+표준) 캐싱
|
||||
- **인덱스 최적화**: 전문 용어 기반 역색인 구축
|
||||
- **벡터 검색**: 의미 기반 유사 문서 검색 (BERT 기반)
|
||||
- **지역별 샤딩**: 한국/미국/일본 등 지역별 데이터 분산
|
||||
- **압축 저장**: 메타데이터 압축으로 저장 공간 최적화
|
||||
|
||||
## 🛠️ 기술 스택
|
||||
|
||||
### Backend
|
||||
- **언어**: Python 3.9+
|
||||
- **프레임워크**: FastAPI
|
||||
- **데이터베이스**: PostgreSQL, Elasticsearch
|
||||
- **캐시**: Redis
|
||||
- **NLP**: spaCy, Transformers, scikit-learn
|
||||
- **태스크 큐**: Celery + Redis
|
||||
- **PDF 처리**: PyPDF2, pdfplumber
|
||||
- **웹 스크래핑**: BeautifulSoup, Scrapy
|
||||
|
||||
### Frontend
|
||||
- **프레임워크**: React/Next.js
|
||||
- **차트**: D3.js/Chart.js (트렌드 차트, 네트워크 그래프, 타임라인)
|
||||
- **UI**: Material-UI/Tailwind CSS
|
||||
- **검색**: Algolia InstantSearch (자동완성)
|
||||
|
||||
### 전문 분야 도구
|
||||
- **논문 수집**: arXiv API, PubMed API, IEEE Xplore API
|
||||
- **표준 모니터링**: ASME, KGS, API 웹사이트 크롤러
|
||||
- **기술 용어 사전**: 압력용기, 플랜트, 안전 전문 용어 DB
|
||||
- **데이터 분석**: 기술 동향 분석, 키워드 트렌드 추적
|
||||
|
||||
### Infrastructure
|
||||
- **컨테이너**: Docker, Docker Compose
|
||||
- **모니터링**: Prometheus, Grafana
|
||||
- **로그**: ELK Stack
|
||||
- **배포**: GitHub Actions
|
||||
- **스토리지**: MinIO (S3 호환) - 논문 PDF 저장
|
||||
|
||||
## 📋 설치 및 실행
|
||||
|
||||
### 맥미니 설치 가이드
|
||||
|
||||
#### 1. 요구사항
|
||||
```bash
|
||||
# macOS 12.0+ (Monterey 이상 권장)
|
||||
# Homebrew 패키지 매니저
|
||||
# Python 3.9+
|
||||
# Node.js 16+
|
||||
# Docker Desktop for Mac
|
||||
```
|
||||
|
||||
#### 2. 개발 환경 설정
|
||||
```bash
|
||||
# Homebrew 설치 (없는 경우)
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
|
||||
# 필수 도구 설치
|
||||
brew install python@3.11 node@18 postgresql redis
|
||||
brew install --cask docker
|
||||
|
||||
# Python 가상환경 설정
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
|
||||
# 프로젝트 클론
|
||||
git clone https://github.com/your-repo/industrial-info-system.git
|
||||
cd industrial-info-system
|
||||
```
|
||||
|
||||
#### 3. 로컬 개발 설치 (권장)
|
||||
```bash
|
||||
# 환경 변수 설정
|
||||
cp .env.example .env
|
||||
# .env 파일 편집 (DB 연결 정보 등)
|
||||
|
||||
# Python 의존성 설치
|
||||
pip install -r requirements.txt
|
||||
|
||||
# Node.js 의존성 설치 (프론트엔드)
|
||||
cd frontend
|
||||
npm install
|
||||
cd ..
|
||||
|
||||
# 로컬 데이터베이스 설정
|
||||
brew services start postgresql
|
||||
brew services start redis
|
||||
createdb industrial_info
|
||||
|
||||
# 데이터베이스 마이그레이션
|
||||
python manage.py migrate
|
||||
|
||||
# Elasticsearch 설치 및 실행 (선택사항)
|
||||
brew install elasticsearch
|
||||
brew services start elasticsearch
|
||||
|
||||
# 개발 서버 실행
|
||||
python manage.py runserver # 백엔드 (8000 포트)
|
||||
cd frontend && npm run dev # 프론트엔드 (3000 포트)
|
||||
```
|
||||
|
||||
#### 4. Docker 기반 설치 (프로덕션)
|
||||
```bash
|
||||
# Docker Desktop 실행 확인
|
||||
docker --version
|
||||
docker-compose --version
|
||||
|
||||
# 환경 설정
|
||||
cp .env.example .env
|
||||
# .env 파일에서 Docker 환경에 맞게 수정
|
||||
|
||||
# Docker 컨테이너 빌드 및 실행
|
||||
docker-compose up --build -d
|
||||
|
||||
# 데이터베이스 초기화
|
||||
docker-compose exec web python manage.py migrate
|
||||
docker-compose exec web python manage.py createsuperuser
|
||||
|
||||
# 로그 확인
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
#### 5. 맥미니 최적화 설정
|
||||
```bash
|
||||
# 메모리 사용량 최적화 (8GB 모델용)
|
||||
export ELASTICSEARCH_JAVA_OPTS="-Xms512m -Xmx1g"
|
||||
export REDIS_MAXMEMORY="256mb"
|
||||
|
||||
# SSD 수명 보호를 위한 로그 설정
|
||||
# docker-compose.yml에서 로그 로테이션 설정
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
# 백그라운드 서비스 자동 시작 설정
|
||||
brew services start postgresql
|
||||
brew services start redis
|
||||
```
|
||||
|
||||
#### 6. 성능 모니터링
|
||||
```bash
|
||||
# 시스템 리소스 모니터링
|
||||
htop # brew install htop
|
||||
docker stats # Docker 컨테이너 리소스 사용량
|
||||
|
||||
# 애플리케이션 로그 모니터링
|
||||
tail -f logs/app.log
|
||||
docker-compose logs -f web
|
||||
```
|
||||
|
||||
### API 엔드포인트
|
||||
```
|
||||
# 검색 관련
|
||||
GET /api/search/documents # 통합 문서 검색
|
||||
GET /api/search/standards # 표준/규격 검색
|
||||
GET /api/search/companies # 기업별 기술 동향
|
||||
GET /api/search/suggest # 검색어 자동완성
|
||||
|
||||
# 태그 및 분석
|
||||
GET /api/tags/trending # 트렌딩 기술 태그
|
||||
GET /api/tags/network # 연관 기술 네트워크
|
||||
GET /api/analytics/dashboard # 기술 트렌드 대시보드
|
||||
GET /api/analytics/timeline # 기술 발전 타임라인
|
||||
|
||||
# 데이터 수집
|
||||
POST /api/collect/rss # RSS 피드 수집
|
||||
POST /api/collect/papers # 논문 데이터베이스 동기화
|
||||
POST /api/collect/standards # 표준 업데이트 확인
|
||||
|
||||
# 전문 분야별
|
||||
GET /api/safety/incidents # 산업안전 사고 동향
|
||||
GET /api/plant/equipment # 플랜트 장비 기술 동향
|
||||
GET /api/pressure/vessels # 압력용기 기술 동향
|
||||
```
|
||||
|
||||
## 📈 로드맵
|
||||
|
||||
### Phase 1: 기본 인프라 구축 (현재)
|
||||
- [x] 다중 소스 RSS 수집 시스템
|
||||
- [x] 전문 분야 NLP 태그 추출 파이프라인
|
||||
- [x] Elasticsearch 기반 검색 API
|
||||
- [ ] 논문 데이터베이스 연동 (PubMed, IEEE)
|
||||
- [ ] 표준 기관 웹사이트 모니터링
|
||||
|
||||
### Phase 2: 전문 기능 개발 (진행 중)
|
||||
- [ ] 웹 인터페이스 (React 기반)
|
||||
- [ ] 기술 트렌드 대시보드 시각화
|
||||
- [ ] 연관 기술 네트워크 그래프
|
||||
- [ ] 실시간 표준 업데이트 알림
|
||||
- [ ] 압력용기 기술 사양 파서
|
||||
|
||||
### Phase 3: 고도화 (계획)
|
||||
- [ ] 개인화 추천 시스템
|
||||
- [ ] 모바일 앱 (React Native)
|
||||
- [ ] 다국어 지원 (한/영/일)
|
||||
- [ ] AI 기반 기술 동향 예측
|
||||
- [ ] 기업별 기술 경쟁력 분석
|
||||
|
||||
### Phase 4: 확장 (미래)
|
||||
- [ ] 특허 정보 연동
|
||||
- [ ] 기술 이전 매칭 플랫폼
|
||||
- [ ] 산업 안전 예측 모델
|
||||
- [ ] 글로벌 플랜트 프로젝트 추적
|
||||
|
||||
## 🤝 기여하기
|
||||
|
||||
1. Fork the Project
|
||||
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
|
||||
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
|
||||
4. Push to the Branch (`git push origin feature/AmazingFeature`)
|
||||
5. Open a Pull Request
|
||||
|
||||
## 📄 라이선스
|
||||
|
||||
이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 `LICENSE` 파일을 참조하세요.
|
||||
|
||||
## 📞 연락처
|
||||
|
||||
프로젝트 링크: [https://github.com/your-repo/industrial-info-system](https://github.com/your-repo/industrial-info-system)
|
||||
|
||||
---
|
||||
|
||||
**산업 전문 정보 수집 시스템**으로 더 스마트한 기술 정보 검색을 경험해보세요! 🏭🚀
|
||||
|
||||
### 🎯 특화 분야
|
||||
- **산업안전**: 사고 예방과 안전 규제 동향
|
||||
- **플랜트 패키지**: 중공업 기술과 장비 트렌드
|
||||
- **압력용기**: 설계 기준과 표준 업데이트
|
||||
|
||||
법적 문제 없이 공개된 정보만을 활용하여 전문가들에게 필요한 기술 정보를 제공합니다.
|
||||
Reference in New Issue
Block a user