[ (주) 마크클라우드 인턴 활동 리마인드 ] USPTO 데이터 크롤링 후 압축해제하여 MongoDB에 저장 & MariaDB 사용하여 로그인 및 회원가입 & Elasticsearch 를 사용한 상표 데이터 검색 서비스 ( 기간 : 2024.08.27 ~ 2024.08.28 )
Initial written at August 27, 2024 last updated at: August 28, 2024
- ver 1.0.0.
- Python : Crawling_Service
- FastAPI : Login_Service, Search_Service_Container 추가
- MariaDB : User service Database 추가
- MongoDB : Crawling Service Database 추가
- Elasticsearch : 검색 엔진 Database 추가 ( 레플리카 설정 추가 → 클러스터 상태 = GREEN )
- Kibana : 모니터링 시스템 추가
- ver 1.0.1.
- Crawling_Service : Python -> FastAPI
- Architecture : MSA -> MSA + DDD + Clean
- 코드 최적화 + 프로젝트 통합
.env.template
파일을 참고하여 .env
파일에 환경 변수값을 작성해주세요.
# 예시
LOGIN_HOST_PORT=
LOGIN_SERVER_PORT=
MARIADB_ID=
MARIADB_ROOT_PASSWORD=
MARIADB_DB_NAME=
MARIADB_HOST_PORT=
MARIADB_SERVER_PORT=
CRAWLING_HOST_PORT=
CRAWLING_SERVER_PORT=
MONGODB_HOST_PORT=
MONGODB_SERVER_PORT=
MONGODB_DB_NAME=
MONGODB_COLLECTION_NAME=
SEARCH_HOST_PORT=
SEARCH_SERVER_PORT=
ELASTIC_PASSWORD=
ELASTICSEARCH_INDEX=
KIBANA_HOST_PORT=
KIBANA_SERVER_PORT=
SECRET_KEY=
ALGORITHM=
ACCESS_TOKEN_EXPIRE_MINUTES=
REFRESH_TOKEN_EXPIRE_DAYS=
URL=
LOGIN_SERVER_PORT
와 login_service/entrypoint.sh
의 포트 번호를 일치시켜주세요
uvicorn main:app --host 0.0.0.0 --port 8000 --reload \
CRAWLING_SERVER_PORT
와 crawling_service/entrypoint.sh
의 포트 번호를 일치시켜주세요
uvicorn main:app --host 0.0.0.0 --port 8001 --reload \
SEARCH_SERVER_PORT
와 search_service/entrypoint.sh
의 포트 번호를 일치시켜주세요
uvicorn main:app --host 0.0.0.0 --port 8002 --reload \
본 프로젝트는 Docker Compose를 사용하므로 이를 실행시켜주세요.
(sudo) docker compose up (--build)
/project-root
│
├── crawling_service/
│ ├── dockerfile
│ ├── entrypoint.sh
│ ├── main.py
│ ├── requirements.txt
│ ├── setup.txt
│ ├── venv/
│ ├── core/
│ │ ├── config.ini
│ │ ├── docs.py
│ │ └── database.py
│ ├── model/
│ │ ├── ContentsHandler.py
│ │ ├── DatabaseManager.py
│ │ ├── DownloadManager.py
│ │ └── parser_model.py
│ ├── router/
│ │ ├── crawling_router.py
│ │ └── move_router.py
│ ├── service/
│ │ ├── crawling_service.py
│ │ └── move_service.py
│ └── utils/
│ ├── __init__.py
│ ├── arguments.py
│ ├── configs.py
│ ├── logs.py
│ └── proxies.py
│
├── login_service/
│ ├── dockerfile
│ ├── entrypoint.sh
│ ├── main.py
│ ├── requirements.txt
│ ├── setup.txt
│ ├── venv/
│ ├── core/
│ │ ├── config.ini
│ │ ├── docs.py
│ │ └── database.py
│ ├── model/
│ │ ├── jwt_model.py
│ │ └── user_model.py
│ ├── repository/
│ │ ├── jwt_repository.py
│ │ └── user_repository.py
│ ├── router/
│ │ ├── jwt_router.py
│ │ └── user_router.py
│ ├── schema/
│ │ ├── jwt_schema.py
│ │ └── user_schema.py
│ └── service/
│ ├── jwt_service.py
│ └── user_service.py
│
├── search_service/
│ ├── dockerfile
│ ├── entrypoint.sh
│ ├── main.py
│ ├── requirements.txt
│ ├── setup.txt
│ ├── venv/
│ ├── core/
│ │ ├── docs.py
│ │ └── database.py
│ ├── repository/
│ │ ├── es_search_repository.py
│ │ └── mongo_search_repository.py
│ ├── router/
│ │ ├── es_search_router.py
│ │ └── mongo_search_router.py
│ ├── schema/
│ │ └── mongo_search_schema.py
│ └── service/
│ ├── es_search_service.py
│ └── mongo_search_service.py
│
├── .env
├── .env.template
├── .gitignore
├── docker-compose.yml
└── README.md