글
라벨이 Nginx 서버 셋업인 게시물 표시
[7] Nginx 서버 셋업 - Drogon 서버 OpenCV를 활용한 Text Detection API 구축
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
RHEL 환경에서 Text Detection을 Drogon 서버에 연동하여 API 형태로 추출 및 Client에 보여지는 기능 개발 주의. OCR(Optical Character Recognition, 광학 문자 인식)이 아닌 Text Detection이 목적 Detection 이후 OCR은 추후에 연동 해보는걸로.. ## 0. Text Detection 프레임 워크 서치 | 프레임워크 | 언어 | 장점 | 단점 | |---------------------|-----------------|--------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------| | Tesseract OCR | C++ (Python 등) | 오픈 소스, 다국어 지원, 커스터마이징 가능 | 전처리 없이는 성능 저하 가능, 텍스트 감지 기능이 따로 없으므로 OpenCV 등과 함께 사용 필요 | | OpenCV + EAST 모델 | C++, Python | 빠른 텍스트 감지, CPU 및 GPU 모두 지원, OpenCV와의 통합 용이 | 텍스트 감지만 지...
[6] Nginx 서버 셋업 - Up/Down 구현 + 간단한 업로드 client
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
리스팅 까지 진행됫고, 업/다운을 Drogon을 통해 구현한다 --- ## 1. 서버 기능 구현 ### 1-1. Drogon Contoller 구현 Drogon Contoller 등록 진행을 한다 ( 아래 작업을 해야 빌드시 인식이 됨 ) ``` cd /root/drogon2/drogon/build/drogon_ctl drogon_ctl create controller FileController ``` --- ### 1-2. 업/다운 구현 소스 위치할 경로 ( /root/drogon2/drogon/build/drogon_ctl/testAPI/controllers ) FileController.h #pragma once #include using namespace drogon; class FileController : public HttpController { public: std:: string _storagePath = "/root/storage/"; METHOD_LIST_BEGIN // "/upload" 경로의 POST 요청 처리 ADD_METHOD_TO(FileController::handleUpload, "/upload", Post); // "/download/{filename}" 경로의 GET 요청 처리 ADD_METHOD_TO(FileController::handleDownload, "/download/{1}", Get); METHOD_LIST_END // 메서드 선언 void handleUpload(const HttpRequestPtr& req, std::function && callback); void handleDownload(const HttpRequestPtr& req, std::function && ca...
[5] Nginx 서버 셋업 - Web에서 서버 폴더 리스팅
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
업/다운로드를 구현 하기 전 우선 장비 local 저장소를 만들고 해당 저장소를 web에서 볼수있게 먼저 정의한다 --- ## 1. 저장소 생성 및 권한 부여 - 저장소 생성 ``` mkdir /root/storage cd /root/storage vi test.txt ( 적당히 아무값 넣고 저장 종료 ) ``` - nginx가 뜬 user권한을 폴더에 부여 ``` ps aux | grep nginx --- # 제 경우는 nobody 이므로 해당 폴더 소유주 변환 [root@vbox build] (master) $ ps aux | grep nginx root 52636 0.0 0.0 4544 2412 ? Ss 01:26 0:00 nginx: master process ./nginx root 59772 0.0 0.1 13064 9600 pts/1 T 06:04 0:00 /usr/bin/vim nginx.conf nobody 60676 0.0 0.0 13168 5484 ? S 06:23 0:00 nginx: worker process nobody 60677 0.0 0.0 13168 5612 ? S 06:23 0:00 nginx: worker process --- # 권한 및 소유주 변환 sudo chmod -R 755 /root/storage sudo chown -R nobody:nobody /root/storage # SELinux 보안 컨텍스트 수정 sudo chcon -R -t httpd_sys_content_t /root/storage ``` 위 작업들을 수행하지 않으면, 403 Fobbiden을 맞게된다 --- ## 2. Nginx 설정 적용 - alias 통해, list api 가 들어오면 /root/storage의 경로를 보여준다 ``` user nobody; worker_proce...
[4] Nginx 서버 셋업 - Drogon 테스트 API 작성
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
API를 만들어보자 Drogon 으로 만들거고, 관련 해서 특정 값을 리턴하는 정도로 진행한다 --- ## 1. Drogon Test Project 설정 - drogon_ctl 이 설치된 곳에서 아래 명령어를 입력한다 ``` drogon_ctl create project testAPI cd testAPI ``` --- ## 2. 빌드 - 전체 경로의 경우 /root/drogon2/drogon/build/drogon_ctl/testAPI/build 가 된다 ``` mkdir build cd build cmake .. make ``` --- 만약 아래 에러 발생 시 환경변수 선언하고 drogon 재설치하는게 마음편하니 재설치하자 ``` CMake Error at /usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package): By not providing "FindJsoncpp.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "Jsoncpp", but CMake did not find one. Could not find a package configuration file provided by "Jsoncpp" with any of the following names: JsoncppConfig.cmake jsoncpp-config.cmake Add the installation prefix of "Jsoncpp" to CMAKE_PREFIX_PATH or set "Jsoncpp_DIR" to a directory containing one of the above files. If "Jsoncpp...
[3] Nginx 서버 셋업 - C++ 웹 프레임워크 연결
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
C++ 서버로 만들어 보는게 목표이기에 프레임워크 서치를 우선 진행 ## 0. C++ 웹 프레임워크 조사 | 프레임워크 | 장점 | 단점 | |------------|------|------| | **Drogon** | - 최신 C++14/17 지원 - 비동기 프로그래밍 및 다중 스레드 지원 - HTTP2, WebSocket 지원 - 높은 성능 및 사용자 친화적 API - 활발한 커뮤니티 및 지원 | - 초기 설정이 복잡할 수 있음 | | **Pistache** | - 경량 설계로 빠른 웹 서버 구현 - RESTful API 개발에 적합 - 간단한 코드와 쉬운 학습 | - 개발 및 업데이트 속도가 느림 - 제한된 기능성 | | **Crow** | - Flask와 유사한 직관적인 사용법 - JSON 지원 및 라우팅 기능 포함 - 경량 설계 | - 기능이 제한적이며 대규모 애플리케이션에는 부적합 - 유지보수가 부족할 수 있음 | | **CppCMS** | - 고성능 웹 애플리케이션 구축 가능 - 세션 관리 및 국제화 지원 | - 설정이 복잡하고 높은 학습 곡선 - 문서가 부족하고 사용법이 어렵다 | | **Restbed** | - RESTful API 개발에 적합 - 비동기 및 확장 가능한 설계 | - 제한된 기능으로 대규모 프로젝트에는 부적합 - 커뮤니티 지원이 활발하지 않음 | - GPT 피셜 인기 좋은 Drogon으로 우선 진행해보기로한다. --- ## 1. 프레임워크 의존성 설치 ``` sudo yum install -y git cmake gcc-c++ libuuid-devel openssl-devel zlib-devel brotli-devel jsoncpp-devel libuuid libuuid-devel ``` jsoncpp-devel 없다면 별개 설치필요 --- ### jsoncpp는 별개 설치 ``` # jsoncpp 소스 코드 다운로드 git clone https://github.com/open-source-parsers/jso...
[2] Nginx 서버 셋업 - 특정버전 nginx 다운로드하여 셋업
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
시스템 경로에 셋업하여 실행하는 법이 있지만, 다운로드 및 빌드하여 셋업하는 방법으로 진행하겠습니다. ## 구축환경 - Red Hat Enterprise Linux release 9.4 (Plow) ## 1. NGINX 다운로드 및 압축 해제 ``` wget http://nginx.org/download/nginx-1.21.6.tar.gz tar -xvf nginx-1.21.6.tar.gz ``` --- ## 2. 필요 Library 설치 ``` sudo yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel ``` - gcc: C 컴파일러로, NGINX 소스 코드를 컴파일하여 실행 가능한 프로그램으로 만드는데 필요합니다. - pcre: Perl Compatible Regular Expressions 라이브러리로, NGINX에서 정규 표현식을 처리할 수 있도록 지원합니다. - pcre-devel: PCRE 라이브러리의 개발 헤더 파일을 포함하며, NGINX를 컴파일할 때 필요합니다. - zlib: 데이터 압축을 위한 라이브러리로, NGINX의 Gzip 압축 기능을 사용하기 위해 필요합니다. - zlib-devel: zlib의 개발 파일을 포함하며, 소스 컴파일 시 필요한 헤더 파일과 라이브러리를 제공합니다. - openssl: SSL/TLS 암호화를 위한 라이브러리로, HTTPS 및 보안 연결을 처리하기 위해 NGINX에 필요합니다. - openssl-devel: OpenSSL 라이브러리의 개발 헤더 파일을 포함하며, NGINX의 SSL/TLS 지원을 컴파일할 때 필요합니다. --- 만약 설치시 아래 에러가 발생한다면 ``` Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs) 0.0 B/s | ...
[1] Nginx 서버 셋업 - Virtualbox 설치 및 Putty 연결
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
테스트용 Linux 셋업을 위해 가상환경 설치 진행 VMWare를 쓸려햇는데 가입이 귀찮게 되어있어 VirtualBox로 선회 ### 셋업 환경 - window10 ### 설치 ## 1. VirtualBox - Download - https://www.virtualbox.org/wiki/Downloads - 위 경로에서 다운로드 진행 ( OS에 맞게 설치, widnows hosts 로 진행 ) --- - 다운로드 이후 설치 진행 --- ## 2. RHEL(RedHat Enterprise Linux) OS 다운로드 CentOS를 주로썼지만 EOL (End of Line) 으로 이제는 RHEL쓰기를 권장 - https://developers.redhat.com/products/rhel/download (24.11.02 기준 9.4 version) - RHEL을 무료로 사용하려면 Individual Developer Subscription에 등록해야 하고 등록 비용은 발생하지 않는다. --- ## 3. VirtualBox - RHEL 가상머신 만들기 1. 머신 > 새로 만들기 ㄴ 저장소 경로 설정 --- 2. VM 비밀번호 셋업 --- 3. 가상머신 리소스 할당 ㄴ 사용 컴퓨터에 따라 동적으로 변함. 저는 4core / 8GB 할당함 (20GB) --- 4. 소프트웨어 확인 (GUI 시스템은 필요없어서 제거) --- 5. 접속 확인 --- ## 4. Putty 연결 아래 사항 확인 ### 4-1.VM 설정에서 확인 사항 ``` 1. VirtualBox를 실행하고 연결할 가상 머신을 선택한 후 설정 2. 네트워크 탭 이동 > 어댑터 1을 NAT로 설정한 후 고급 옵션 3. 포트 포워딩 규칙 설정 이름: 원하는 이름 입력 (예: SSH) 호스트 포트: 9999 (또는 사용하지 않는 포트) 게스트 포트: 22 (기본 SSH 포트, 고정) ex) putty -(9999...
이 블로그의 인기 게시물
윤석열 계엄령 선포! 방산주 대폭발? 관련주 투자 전략 완벽 분석
## 1. 배경 2024년 12월 3일, 윤석열 대통령이 국가 비상사태를 이유로 계엄령을 선포하였습니다. 계엄령은 전시나 사변 등 국가의 안녕과 공공질서가 심각하게 위협받을 때 대통령이 군사적 권한을 통해 이를 방어하고 유지하기 위해 발효하는 특별한 조치입니다. 이러한 조치는 국내 정치·경제 전반에 큰 영향을 미치며, 특히 주식시장에서는 관련 기업들의 주가 변동이 예상됩니다. 24.12.03 오전 5시 계엄 해제로 아래 관련주 추천 - [윤석열 계엄령 해제! 이재명 관련주 급등? 투자자 필독 전략](https://warguss.blogspot.com/2024/12/yoon-martial-law-lift-lee-jaemyung-stocks.html) --- ## 2. 기업 및 관련주 ### 2-1 식품 관련주 - 계엄령이 선포되면 사회적 불안정성이 증가할 수 있으며, 이에 따라 생필품 및 음식 관련 주식이 단기적으로 강세를 보일 가능성이 있습니다. #### 1. CJ제일제당 (KOSPI: 097950) [시가총액: 약 10조 원] - **주요 산업**: 식품 및 생필품 제조 - **관련주 근거**: 국가적 위기 상황에서 식료품 수요가 증가하며, 즉석밥, 가공식품 등의 판매가 확대될 가능성이 있습니다. - **주가정보**: [네이버 차트](https://finance.naver.com/item/main.nhn?code=097950) #### 2. 오뚜기 (KOSPI: 007310) [시가총액: 약 3조 원] - **주요 산업**: 식품 제조 및 유통 - **관련주 근거**: 라면, 즉석식품 등 비축 가능한 식품 수요가 증가하며, 매출 상승이 기대됩니다. - **주가정보**: [네이버 차트](https://finance.naver.com/item/main.nhn?code=007310) #### 3. 대상 (KOSPI: 001680) [시가총액: 약 2조 원] - **주요 산업**: 식품 제조 및 발효제품 - **관련주 근거**: 계엄...
대통령 퇴진운동 관련주: 방송·통신·촛불수혜주 완벽 분석
--- ## 1. 배경 2024년 12월 3일, 윤석열 대통령이 비상계엄령을 선포했으나, 짧은 시간 내에 이를 해제하면서 정치적 긴장감이 커졌습니다. 이에 따라 대규모 촛불시위와 같은 사회적 움직임이 예상되며, 통신과 관련된 기업 및 촛불 제조와 연관된 산업에 관심이 모이고 있습니다. --- ## 2. 기업 및 관련주 대규모 시위 및 관련 활동으로 인해 통신, 미디어, 그리고 촛불 제조와 관련된 기업들이 단기적인 수혜를 볼 것으로 예상됩니다. ### 2-1. 통신 관련주 #### 1. **KT (030200) [약 12조 원]** - **주요 산업:** 통신 - **관련주 근거:** 시위 생중계 및 대규모 통신 트래픽 증가로 매출 증대 가능성 - **주가정보:** [네이버 차트](https://finance.naver.com/item/main.nhn?code=030200) #### 2. **SK텔레콤 (017670) [약 12조 원]** - **주요 산업:** 통신 - **관련주 근거:** 대규모 데이터 사용 증가로 인한 수익 상승 - **주가정보:** [네이버 차트](https://finance.naver.com/item/main.nhn?code=017670) #### 3. **LG유플러스 (KOSPI, 032640) [약 4.9조 원]** - **주요 산업:** 통신 - **관련주 근거:** 촛불시위로 인한 데이터 및 음성 서비스 사용 증가 예상 - **주가정보:** [네이버 차트](https://finance.naver.com/item/main.nhn?code=032640) --- ### 2-2. 방송 관련주 #### 1. **SBS (034120) [약 2,924억 원]** - **주요 산업:** 방송 및 미디어 콘텐츠 제작 - **관련주 근거:** 시위 관련 특집 방송 및 실시간 보도에 따른 광고 수익 증가 - **주가정보:** [네이버 차트](https://finance.naver.com/item/main.nhn?code...
키움 OPEN API MFC 개발 (1)
* 키움 API 개발 - visual studio 2019 , MFC * Visual Studio Set - 새 프로젝트 만들기 / MFC 검색 - 다음 이후, MFC 설정에서 어플리케이션 종류 변경 (대화 상자 기반) * 기본 적용 Flow ( https://www.kiwoom.com/nkw.templateFrameSet.do?m=m1408000000 ) = 우선 생략하고, Step 2 설치 = Step 3 자료실/ KhOpenApiTest_2.71.zip 다운로드 * Step 2 설치 후, 설치 경로의 OpenAPI 디렉토리 찾기 1. 파일 찾기 2. KHOpenAPI.ocx 를 프로젝트 소스에 복사 * Step 3 자료실/다운로드 1. khOpenApiTest_2.71.zip 다운/압축 풀고, 2. KHOpenAPI.cpp/h KHOpenAPICtrl.cpp/h 프로젝트 소스에 복사 * 내부 소스에 다음추가 header에 class 생성 cpp에 다음 소스 추가 * 리소스 뷰 > IDD_TRADINGAPP_DIALOG 1. 확인 우클릭 > Active X 컨트롤 삽입 2. KHOpenAPI Control 적용 하면 위 화면처럼 적용 이후 실행 시 다음 화면 이후 매수/매도 적용