diff --git a/Recognition/.obsidian/plugins/recent-files-obsidian/data.json b/Recognition/.obsidian/plugins/recent-files-obsidian/data.json index d93ed26..e4ade16 100644 --- a/Recognition/.obsidian/plugins/recent-files-obsidian/data.json +++ b/Recognition/.obsidian/plugins/recent-files-obsidian/data.json @@ -1,9 +1,137 @@ { "recentFiles": [ + { + "basename": "CMD 명령어", + "path": "Programing/Windows/CMD 명령어.md" + }, + { + "basename": "2024-03-25", + "path": "Work Related/1.업무메모/2024-03-25.md" + }, + { + "basename": "2023.10-3", + "path": "Work Related/3.주간계획/스마트계류장/2023.10-3.md" + }, + { + "basename": "2023.10-4", + "path": "Work Related/3.주간계획/스마트계류장/2023.10-4.md" + }, + { + "basename": "Jenkins 설치", + "path": "Programing/Jenkins/Jenkins 설치.md" + }, + { + "basename": "용어정리", + "path": "Work Related/프로젝트/스마트계류장/항공용어/용어정리.md" + }, + { + "basename": "프로젝트 범위 요약", + "path": "Work Related/프로젝트/스마트계류장/0.관련정보/프로젝트 범위 요약.md" + }, + { + "basename": "약어표", + "path": "Work Related/프로젝트/스마트계류장/항공용어/약어표.md" + }, + { + "basename": "Java 접근제한", + "path": "Programing/Java/Java 접근제한.md" + }, + { + "basename": "16진수 표기", + "path": "Programing/Java/16진수 표기.md" + }, + { + "basename": "CMD 실행", + "path": "Programing/Java/CMD 실행.md" + }, + { + "basename": "Docker 페쇄망 이관", + "path": "Programing/Docker/Docker 페쇄망 이관.md" + }, + { + "basename": "Kafka 명령어", + "path": "Programing/Kafka(AMQP)/Kafka 명령어.md" + }, + { + "basename": "kafka 오류", + "path": "Programing/Kafka(AMQP)/kafka 오류.md" + }, + { + "basename": "Kafka 설치", + "path": "Programing/Kafka(AMQP)/Kafka 설치.md" + }, + { + "basename": "방문증 신청 문구", + "path": "Work Related/프로젝트/스마트계류장/9.기타/방문증 신청 문구.md" + }, + { + "basename": "TODO", + "path": "Work Related/프로젝트/스마트계류장/TODO.md" + }, + { + "basename": "EAI 데이터 초기화", + "path": "Work Related/프로젝트/스마트계류장/1.데이터베이스/EAI 데이터 초기화.md" + }, + { + "basename": "2024-04-01", + "path": "Work Related/1.업무메모/2024-04-01.md" + }, + { + "basename": "EAI 프로시져 테스트", + "path": "Work Related/프로젝트/스마트계류장/1.데이터베이스/EAI 프로시져 테스트.md" + }, + { + "basename": "GAM_LIST 데이터 일괄 insert", + "path": "Work Related/프로젝트/스마트계류장/1.데이터베이스/GAM_LIST 데이터 일괄 insert.md" + }, + { + "basename": "Docker 설치", + "path": "Programing/Docker/Docker 설치.md" + }, + { + "basename": "무제 파일", + "path": "Programing/Docker/무제 파일.md" + }, + { + "basename": "설치 및 실행", + "path": "Programing/Grafana/설치 및 실행.md" + }, + { + "basename": "용어", + "path": "Programing/0.Root/용어.md" + }, + { + "basename": "권한(Grant)", + "path": "Programing/Tibero/권한(Grant).md" + }, + { + "basename": "스키마 생성", + "path": "Programing/Tibero/스키마 생성.md" + }, + { + "basename": "설치", + "path": "Programing/MariaDB/설치.md" + }, + { + "basename": "ssh포트로 파일 전송", + "path": "Programing/Linux/Linux 명령어/ssh포트로 파일 전송.md" + }, + { + "basename": "SSH", + "path": "Programing/Linux/RHEL9/SSH.md" + }, + { + "basename": "공유문서", + "path": "Work Related/프로젝트/스마트계류장/0.관련정보/공유문서.md" + }, { "basename": "Maven 설치", "path": "Tools/VSCode_Server/Maven 설치.md" }, + { + "basename": "SACP maven 빌드 명령어", + "path": "Work Related/프로젝트/스마트계류장/9.기타/SACP maven 빌드 명령어.md" + }, { "basename": "프로젝트 생성", "path": "Tools/VSCode_Server/프로젝트 생성.md" @@ -24,18 +152,6 @@ "basename": "VSCode Extension", "path": "Tools/VSCode/VSCode Extension.md" }, - { - "basename": "공유문서", - "path": "Work Related/프로젝트/스마트계류장/0.관련정보/공유문서.md" - }, - { - "basename": "2024-03-25", - "path": "Work Related/1.업무메모/2024-03-25.md" - }, - { - "basename": "방문증 신청 문구", - "path": "Work Related/프로젝트/스마트계류장/9.기타/방문증 신청 문구.md" - }, { "basename": "Docker 폐쇄망 설치", "path": "Programing/Docker/Docker 폐쇄망 설치.md" @@ -48,18 +164,10 @@ "basename": "Reno server URL", "path": "Work Related/프로젝트/스마트계류장/1.데이터베이스/Reno server URL.md" }, - { - "basename": "Docker 설치", - "path": "Programing/Docker/Docker 설치.md" - }, { "basename": "Docker Compose", "path": "Programing/Docker/Docker Compose.md" }, - { - "basename": "Docker 페쇄망 이관", - "path": "Programing/Docker/Docker 페쇄망 이관.md" - }, { "basename": "Docker Engine", "path": "Programing/Docker/Docker Engine.md" @@ -91,114 +199,6 @@ { "basename": "Tibero 7 설치", "path": "Programing/Tibero/Tibero 7 설치.md" - }, - { - "basename": "리눅스 확장자 일괄 변경", - "path": "Programing/Linux/Linux 명령어/리눅스 확장자 일괄 변경.md" - }, - { - "basename": "리눅스 특정 폴더, 파일 용량 확인", - "path": "Programing/Linux/Linux 명령어/리눅스 특정 폴더, 파일 용량 확인.md" - }, - { - "basename": "무제 파일 2", - "path": "Programing/Docker/무제 파일 2.md" - }, - { - "basename": "HAProxy HA (High Availability) 구성하기", - "path": "Programing/Linux/RHEL9/HAProxy HA (High Availability) 구성하기.md" - }, - { - "basename": "NGINX HA (High Availability) 구성하기", - "path": "Programing/Linux/RHEL9/NGINX HA (High Availability) 구성하기.md" - }, - { - "basename": "리눅스 crontab", - "path": "Programing/Linux/Linux 프로그램/리눅스 crontab.md" - }, - { - "basename": "Utils", - "path": "Programing/Linux/Linux 프로그램/Utils.md" - }, - { - "basename": "테이블 일괄 생성 스크립트", - "path": "Work Related/프로젝트/스마트계류장/1.데이터베이스/산출물작업/테이블 일괄 생성 스크립트.md" - }, - { - "basename": "테이블 Archive 로그 설정 변경", - "path": "Programing/Tibero/테이블 Archive 로그 설정 변경.md" - }, - { - "basename": "일반 유저에 관리자 권한 부여", - "path": "Programing/Linux/Ubuntu/일반 유저에 관리자 권한 부여.md" - }, - { - "basename": "무제 파일", - "path": "무제 파일.canvas" - }, - { - "basename": "자주사용하는 마크다운", - "path": "Programing/Markdown/자주사용하는 마크다운.md" - }, - { - "basename": "Filebeat 재배포", - "path": "Work Related/프로젝트/스마트계류장/9.기타/Filebeat 재배포.md" - }, - { - "basename": "2022-11-11", - "path": "Work Related/1.업무메모/2023/2022-11-11.md" - }, - { - "basename": "리눅스 데몬 서비스 관련", - "path": "Programing/Linux/Linux 명령어/리눅스 데몬 서비스 관련.md" - }, - { - "basename": "리눅스 명령어", - "path": "Programing/Linux/Linux 명령어/리눅스 명령어.md" - }, - { - "basename": "ELK 폐쇄망 설치(New)", - "path": "Programing/ELK/ELK 폐쇄망 설치(New).md" - }, - { - "basename": "리눅스 ls 정렬해서 보기", - "path": "Programing/Linux/Linux 명령어/리눅스 ls 정렬해서 보기.md" - }, - { - "basename": "무제 파일 1", - "path": "Programing/Docker/무제 파일 1.md" - }, - { - "basename": "유닉스(AIX) 유저 생성", - "path": "Programing/Linux/Unix/유닉스(AIX) 유저 생성.md" - }, - { - "basename": "ssh포트로 파일 전송", - "path": "Programing/Linux/Linux 명령어/ssh포트로 파일 전송.md" - }, - { - "basename": "Ubuntu 버전 확인", - "path": "Programing/Linux/Ubuntu/Ubuntu 버전 확인.md" - }, - { - "basename": "리눅스 OS 버전확인", - "path": "Programing/Linux/Linux 명령어/리눅스 OS 버전확인.md" - }, - { - "basename": "Kafka 설치", - "path": "Programing/Kafka(AMQP)/Kafka 설치.md" - }, - { - "basename": "특정 포트 임시 오픈", - "path": "Programing/Linux/Ubuntu/특정 포트 임시 오픈.md" - }, - { - "basename": "특정포트 허용", - "path": "Programing/Linux/RHEL9/특정포트 허용.md" - }, - { - "basename": "2023-05-08", - "path": "Work Related/1.업무메모/2023/2023-05-08.md" } ], "omittedPaths": [], diff --git a/Recognition/.obsidian/workspace.json b/Recognition/.obsidian/workspace.json index a4030cd..338e3d7 100644 --- a/Recognition/.obsidian/workspace.json +++ b/Recognition/.obsidian/workspace.json @@ -4,50 +4,23 @@ "type": "split", "children": [ { - "id": "665ce87635c13187", + "id": "e55c8d30f7a2d34c", "type": "tabs", "children": [ { - "id": "1b13dc8db74ebc6c", + "id": "5481a3c21b2c27b9", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "Work Related/1.업무메모/2024-03-25.md", - "mode": "source", - "backlinks": true, - "source": false - } - } - }, - { - "id": "bd4fead765e9c739", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "Programing/Docker/Docker 페쇄망 이관.md", - "mode": "source", - "backlinks": true, - "source": false - } - } - }, - { - "id": "6b3bea491a79b018", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "Tools/VSCode_Server/Maven 설치.md", + "file": "Programing/Windows/CMD 명령어.md", "mode": "source", "backlinks": true, "source": false } } } - ], - "currentTab": 2 + ] } ], "direction": "vertical" @@ -76,7 +49,7 @@ "state": { "type": "search", "state": { - "query": "프로세스", + "query": "netstat", "matchingCase": false, "explainSearch": false, "collapseAll": true, @@ -109,7 +82,8 @@ "state": {} } } - ] + ], + "currentTab": 1 } ], "direction": "horizontal", @@ -129,7 +103,7 @@ "state": { "type": "backlink", "state": { - "file": "Tools/VSCode_Server/Maven 설치.md", + "file": "Programing/Windows/CMD 명령어.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -146,7 +120,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "Tools/VSCode_Server/Maven 설치.md", + "file": "Programing/Windows/CMD 명령어.md", "linksCollapsed": false, "unlinkedCollapsed": true } @@ -169,7 +143,7 @@ "state": { "type": "outline", "state": { - "file": "Tools/VSCode_Server/Maven 설치.md" + "file": "Programing/Windows/CMD 명령어.md" } } }, @@ -211,55 +185,55 @@ "command-palette:명령어 팔레트 열기": false } }, - "active": "6b3bea491a79b018", + "active": "5481a3c21b2c27b9", "lastOpenFiles": [ - "Tools/VSCode_Server/프로젝트 생성.md", - "Tools/VSCode_Server/Ubuntu에 설치.md", - "Tools/VSCode_Server/vscode_server 설치관련.md", - "Tools/VSCode_Server/Maven 설치.md", - "Tools/VSCode/VSCode 설치.md", - "Tools/VSCode/VSCode Extension.md", - "Work Related/프로젝트/스마트계류장/0.관련정보/공유문서.md", "Work Related/1.업무메모/2024-03-25.md", - "Work Related/프로젝트/스마트계류장/9.기타/방문증 신청 문구.md", - "Programing/Docker/Docker 폐쇄망 설치.md", - "Programing/Linux/Ubuntu/프로세스 확인 및 강제 종료.md", - "Work Related/프로젝트/스마트계류장/1.데이터베이스/Reno server URL.md", - "Programing/Docker/Docker 설치.md", - "Programing/Docker/Docker Compose.md", + "Work Related/3.주간계획/스마트계류장/2023.10-3.md", + "Work Related/3.주간계획/스마트계류장/2023.10-4.md", + "Programing/Jenkins/Jenkins 설치.md", + "Work Related/프로젝트/스마트계류장/항공용어/용어정리.md", + "Work Related/프로젝트/스마트계류장/0.관련정보/프로젝트 범위 요약.md", + "Work Related/프로젝트/스마트계류장/항공용어/약어표.md", + "Programing/Java/Java 접근제한.md", + "Programing/Java/16진수 표기.md", + "Programing/Java/CMD 실행.md", "Programing/Docker/Docker 페쇄망 이관.md", - "Programing/Docker/Docker Engine.md", - "Work Related/1.업무메모/2022.06/2022-06-06.md", - "Work Related/1.업무메모/2022.06/2022-06-16.md", - "Work Related/프로젝트/D-MHFH/유지보수/상황관제-방송수신내역(항적).md", - "Programing/Linux/Linux 명령어/커맨트라인(bash) 단축키.md", - "Programing/ELK/ElasticSearch 쿼리.md", - "Learning/Programing/WSL개발환경 셋팅/Set Up.md", - "Programing/Tibero/Tibero 7 설치.md", - "Programing/Linux/Linux 명령어/리눅스 확장자 일괄 변경.md", - "Programing/Linux/Linux 명령어/리눅스 특정 폴더, 파일 용량 확인.md", - "Programing/Docker/무제 파일 2.md", + "Programing/Kafka(AMQP)/Kafka 명령어.md", + "Programing/Kafka(AMQP)/kafka 오류.md", + "Programing/Kafka(AMQP)/Kafka 설치.md", + "Work Related/프로젝트/스마트계류장/9.기타/방문증 신청 문구.md", + "Work Related/프로젝트/스마트계류장/TODO.md", + "Work Related/프로젝트/스마트계류장/1.데이터베이스/EAI 데이터 초기화.md", + "Work Related/1.업무메모/2024-04-01.md", + "Work Related/프로젝트/스마트계류장/1.데이터베이스/EAI 프로시져 테스트.md", + "Work Related/프로젝트/스마트계류장/1.데이터베이스/GAM_LIST 데이터 일괄 insert.md", + "zzz.resources/Pasted image 20240404100942.png", + "zzz.resources/Pasted image 20240404100125.png", + "zzz.resources/Pasted image 20240404095641.png", + "zzz.resources/Pasted image 20240404094102.png", + "zzz.resources/Pasted image 20240404094035.png", + "zzz.resources/Pasted image 20240404093714.png", + "zzz.resources/Pasted image 20240404093006.png", + "zzz.resources/Pasted image 20240404092924.png", + "zzz.resources/Pasted image 20240404092657.png", + "zzz.resources/Pasted image 20240404092425.png", + "Programing/Docker/Docker 설치.md", + "Programing/Docker/무제 파일.md", + "Programing/Grafana/설치 및 실행.md", + "Programing/0.Root/용어.md", + "Programing/Jenkins", + "Programing/Tibero/권한(Grant).md", + "Programing/Tibero/스키마 생성.md", "무제 파일.canvas", "Work Related/1.업무메모/2023", - "zzz.resources/Pasted image 20240320095219.png", - "zzz.resources/Pasted image 20240304095048.png", - "zzz.resources/Pasted image 20240304095038.png", "zzz.resources/tibero-jdbc-7.jar", "Work Related/프로젝트/스마트계류장/Java PGM/Components/DB", "Work Related/프로젝트/스마트계류장/Java PGM/Components", "Work Related/3.주간계획/스마트계류장", - "zzz.resources/Pasted image 20230919121430.png", - "zzz.resources/Pasted image 20230919121415.png", - "zzz.resources/Pasted image 20230919121410.png", - "zzz.resources/Untitled.png", "새 텍스트 문서.txt", - "zzz.resources/Pasted image 20221228170541.png", "Programing/Linux/Unix", "Work Related/프로젝트/스마트계류장/Java PGM/Radar/desktop.ini", "Work Related/프로젝트/스마트계류장/Java PGM/desktop.ini", - "Work Related/프로젝트/스마트계류장/Java PGM/Radar", - "zzz.resources/Pasted image 20230618182519.png", - "zzz.resources/Pasted image 20230606235608.png", "무제 파일 2.canvas", "무제 파일 1.canvas" ] diff --git a/Recognition/Programing/Java/Java 접근제한.md b/Recognition/Programing/Java/Java 접근제한.md new file mode 100644 index 0000000..f372950 --- /dev/null +++ b/Recognition/Programing/Java/Java 접근제한.md @@ -0,0 +1,8 @@ +#Java + +| **접근 제한** | **적용 대상** | **접근할 수 없는 클레스** | +| --------- | ----------------- | -------------------------- | +| public | 클래스, 필드, 생성자, 메소드 | 없음 | +| protected | 필드, 생성자, 메소드 | 자식 클래스가 아닌 다른 패키지에 소속된 클래스 | +| default | 클래스, 필드, 생성자, 메소드 | 다른 패키지에 소속된 클래스 | +| private | 필드, 생성자, 메소드 | 모든 외부 클래스 | diff --git a/Recognition/Programing/Jenkins/Jenkins 설치.md b/Recognition/Programing/Jenkins/Jenkins 설치.md new file mode 100644 index 0000000..e77f23b --- /dev/null +++ b/Recognition/Programing/Jenkins/Jenkins 설치.md @@ -0,0 +1,210 @@ +#jenkins + +### Jenkins 설치 +#### 1.Docker Image 준비 +(외부인터넷 연결 + 도커 설치된 환경에서 작업) +```shell + +# 폴더 생성 +mkdir /opt/jenkins && +cd jenkins && +mkdir jenkins_home + +# docker-compose 파일 생성 +-------------------------------------------------------------------------------- +version: '3.8' +services: + jenkins: + image: jenkins/jenkins:lts + container_name: jenkins + user: root +# environment: +# - TZ=Asia/Seoul + privileged: true + ports: + - 9093:8080 +# - 9000:50000 + volumes: + - ./jenkins_home:/var/jenkins_home + - /var/run/docker.sock:/var/run/docker.sock + restart: unless-stopped +-------------------------------------------------------------------------------- + +# Docker image 빌드 및 실행 +docker-compose build && docker-compose up -d + +# Jenkins 실행 확인 +## Jenkins Unlock Password 확인 (Unlock 이후 파일 삭제됨) +cat ./jenkins_home/secrets/initialAdminPassword +## jenkins 페이지 접속 및 초기 설정 +# 1. http://{hostname}:9093 접속 +# 2. 최초1회 Unlock Password 입력하여 Unlock +# 3. 관리자 계정 생성 +# 4. Jenkins URL 정보 확인 및 수정 +# 5. "Start using Jenkins" 버튼클릭하여 초기설정 완료 +# 6. 기본 Plugin 설치진행 + +# Docker image Export +ocker save -o /home/gmt/docker_data/docimg_jenkins.tar jenkins/jenkins + + +``` + +#### 2.Plugin 설치 + - Dashboard > Jenkins 관리 > Plugins > Available plugins (/manage/pluginManager/available) + - GitLab Plugin + - Maven Integration plugin + - Publish Over SSH + - Publish Over FTP +#### 3.Jenkins에 Maven 설치 + - Dashboard > Jenkins 관리 > Tools > Maven installations (/manage/configureTools/) + - Name : 임의입력 + - Install automatically 선택 + - Version 선택후 저장 + ![[Pasted image 20240403173424.png]] + +#### 4.폐쇄망 서버 이관 준비 +```shell + +# Docker image Export +ocker save -o /home/gmt/docker_data/docimg_jenkins.tar jenkins/jenkins + +# Jenkins Plubin Export +cd /opt/jenkins/ && +mkdir jenkins_plugins && +cp -r jenkins_home/plugins/*.jpi jenkins_plugins/ + +cd jenkins_plugins/ && +ls | grep '.jpi' | cut -d . -f 1 | while read line; do mv $line.jpi $line.hpi; done && +tar -cvf ../plugins.tar ./ + +# Jenkins Tools Export (maven... ) +cd /opt/jenkins/jenkins_home/ +tar -cvf tools.tar tools + +# 최종 이관 파일 List +- docimg_jenkins.tar +- plugins.tar +- tools.tar +- + Docker, Docker-compose 설치파일 + + +``` + +### Maven Repository 준비 +##### Jenkins에 설치한 동일한 버전의 Maven 설치 +- https://archive.apache.org/dist/maven/maven-3/ +- 환경변수 + MAVEN_HOME, D:\MAVEN\apache-maven-3.9.6 +- CMD> mvn -v +##### setting.xml 작성 +- **라이브러리 저장될 폴더 상위에 setting.xml 작성** +```xml + + + + D:\Workspace\Jenkins\tet_git\maven_repository + + + + +``` +##### Offline용 라이브러리 다운로드 +- 프로젝트 폴더로 이동하여 CMD 실행 +```c + +# Offline에서 참조할 dependency 목록과 함께 다운로드 +mvn dependency:go-offline -gs D:\Workspace\Jenkins\tet_git\settings.xml + +# 기본옵션으로 빌드 +mvn clean install -gs D:\Workspace\Jenkins\tet_git\settings.xml + +# Offline옵션으로 빌드(테스트) +mvn -o clean install -gs D:\Workspace\Jenkins\tet_git\settings.xml + +# repository 압축 +tar -cvf maven_repository.tar .\maven_repository + +# Jenkins서버로 압축파일 전송 +scp -P 11443 maven_repository.tar root@10.200.31.42:/home/gmt/jenkins_home/ + +``` +##### 폐쇄망 Jenkins서버 구성 + + +### Jenkins CI/CD 환경 구성 + +##### 1.SSH 설정 +```shell + +# jenkins 서버에서 key발급 +docker exec -it jenkins bash +ssh-keygen + +# ssh key 확인 +## 경로: /root/.ssh/ +## id_rsa : 비공개키 +## id_rsa.pub : 공개키 + +``` +- 비공개키 붙여넣기 + Dashboard > Jenkins 관리 > System > Publish over SSH (/manage/configure) +![[Pasted image 20240404092425.png]] +- SSH Server 추가 (key사용하여 비밀번호 없이 로그인) +![[Pasted image 20240404092657.png]] + +##### 2. Maven 설정 +- Dashboard > Jenkins 관리 > Tools > Maven Configuration (/manage/configureTools) +![[Pasted image 20240404092924.png]] +- Dashboard > Jenkins 관리 > Tools > Maven installations +![[Pasted image 20240404093006.png]] + +##### 3.GitLab 설정 +- 3-1. GitLab에서 유저 생성( 소스 Pull 용) + - Admin -> Users -> New user + - Nane, Username, Email, Password만 입력 하고 나머지 기본. +![[Pasted image 20240404093714.png]] +- 3-2. 프로젝트 Group Member추가 + - Groups -> SACP(프로젝트 Group 클릭) + -> 오른쪽하단 group members에서 Manage access 버튼 클릭 + ![[Pasted image 20240404094102.png]] + - Invite members 버튼 -> 팝업창에 새로추가한 유저 선택하고 Invite 버튼 + (role은 Guest여도 상관없음) +- 3-3. Access Token 발급 + - Preferences(User Settings) -> Access Tokens + - Token name : 임의입력 + - Select scopes : 모두 체크 + - 생성하고 화면 상단의 키 복사(이후에 다시 확인 할 수 없음) + +- 3-4. Jenkins Credential 등록 + - Dashboard > Jenkins 관리 > Credentials > Stores scoped to Jenkins (/manage/credentials) + - Domains -> Global -> Add Credential + - Kind, API token 입력 + - 선택1(API Token) + ![[Pasted image 20240404095641.png]] + - 선택1(Username, password) + ![[Pasted image 20240404100125.png]] +### Jenkins Pipline 설정 +- 소스 코드 관리 -> Git 선택 + - Repository URL, Credentials, Branch Specifier 입력 +- 빌드 유발 -> Build when a change is pushed to GitLab. GitLab webhook URL:... + - 고급 클릭하면 맨밑에 Secret token -> Generate 버튼 + - URL과, Secret token 복사하여 GitLab에서 Webhook 설정 +- Build -> Goals and options : -o clean install -DskipTests=true +- 빌드 후 조치 -> 추가 -> "Send build artifacts over SSH" 선택 + ![[Pasted image 20240404100942.png]] + + +### ※ GitLab Webhook 설정 +1. 사전 준비 +- Admin Area -> Settings -> Network -> Outbound requests +- Allow requests to the local network from web hooks and services 체크 +※ Webhook 설정시 (Url is blocked: Requests to the local network are not allowed) 오류 방지 + +2. Webhook 설정 +- 프로젝트별로 설정해야함 +- GitLab -> 프로젝트 -> Settings -> Webhooks +- URL, Secret token 입력 +- Add webhook 버튼 diff --git a/Recognition/Work Related/1.업무메모/2024-03-25.md b/Recognition/Work Related/1.업무메모/2024-03-25.md index 5c7fdf7..3583bb7 100644 --- a/Recognition/Work Related/1.업무메모/2024-03-25.md +++ b/Recognition/Work Related/1.업무메모/2024-03-25.md @@ -39,6 +39,22 @@ https://g4daclom.tistory.com/78 publish over ssh 대체 SSH Plugin : https://ktaes.tistory.com/100 +- Offline 설치 : +https://www.jenkins.io/doc/book/installing/offline/ +https://emptyreset.tistory.com/96 + +- FTP를 이용한 Windows서버 배포 +https://itkevin.tistory.com/13 + +- Pipline for Windows +https://garve32.tistory.com/40 + +- windows + ssh +https://blog.gizmo80.com/101 + +- IIS + FTP +https://oingdaddy.tistory.com/70 + ---- ##### Docker-compose @@ -87,9 +103,31 @@ Start using Jenkins 버튼 # 추가 플러그인 설치 > Jenkins 관리 -> Jenkins Global Tool Configuration -publish over ssh -maven -jdk +1. Bitbucket Pipeline for Blue Ocean +2. Dashboard for Blue Ocean +3. Personalization for Blue Ocean +4. Display URL for Blue Ocean +5. Server Sent Events (SSE) Gateway +6. Events API for Blue Ocean +7. Blue Ocean Pipeline Editor +8. i18n for Blue Ocean +9. Autofavorite for Blue Ocean +10. Blue Ocean +11. NodeJS +12. GitLab +13. Generic Webhook Trigger +14. Gitlab Authentication +15. Gitlab API +16. GitLab Branch Source +17. Gitlab Merge Request Builder +18. Config File Provider +19. Docker +20. Docker Pipeline +21. docker-build-step + +※ GITLAB ? +https://pangtrue.tistory.com/356 +https://pulpul8282.tistory.com/288 # publish over ssh 설정 @@ -151,13 +189,20 @@ tar -xvf plugins.tar -C /home/gmt/jenkins_home/plugins/ ssh-keygen - +# Key Jenkins 등록 cat /root/.ssh/id_rsa +# 접속 대상서버로 Key 전송 +ssh-copy-id -i id_rsa.pub -p 11443 root@10.200.31.136 ``` +- GitLab 설정 + +- Webhook 설정시 (Url is blocked: Requests to the local network are not allowed) 오류시 + ~~ /admin/application_settings/network + Outbound requests -> Allow requests to the local network from web hooks and services 체크 diff --git a/Recognition/Work Related/1.업무메모/2024-04-01.md b/Recognition/Work Related/1.업무메모/2024-04-01.md new file mode 100644 index 0000000..b76b6d1 --- /dev/null +++ b/Recognition/Work Related/1.업무메모/2024-04-01.md @@ -0,0 +1,7 @@ +- tss_fusion schdul_id +- tss_radar ELK 연동 +- jenkins 셋팅 +- ~~주기장 상황분석 schdul_id, 항공기 등록기호 추가 +- ~~sacp_schadul_info a-cdm sttatus 추가 +- ~~GAM 취소/삭제된데이터 처리 + diff --git a/Recognition/Work Related/프로젝트/스마트계류장/0.관련정보/공유문서.md b/Recognition/Work Related/프로젝트/스마트계류장/0.관련정보/공유문서.md index aca569d..1956839 100644 --- a/Recognition/Work Related/프로젝트/스마트계류장/0.관련정보/공유문서.md +++ b/Recognition/Work Related/프로젝트/스마트계류장/0.관련정보/공유문서.md @@ -29,7 +29,7 @@ http://10.200.32.100:30080/ - NAS 10.200.32.100:5000 -root / todn +admin / todn @gmtc.kr / Wldpaxl - NAS SSH diff --git a/Recognition/Work Related/프로젝트/스마트계류장/1.데이터베이스/EAI 프로시져 테스트.md b/Recognition/Work Related/프로젝트/스마트계류장/1.데이터베이스/EAI 프로시져 테스트.md new file mode 100644 index 0000000..361b149 --- /dev/null +++ b/Recognition/Work Related/프로젝트/스마트계류장/1.데이터베이스/EAI 프로시져 테스트.md @@ -0,0 +1,93 @@ +```sql +CREATE OR REPLACE PROCEDURE UIC.PROC_Test_CURSOR_Before +IS + + n_cnt NUMBER(10); + + /* 처리 대상 데이터 조회용 커서 */ + CURSOR C_IF_TEST IS + select IF_SRC, IF_DT + from ( + select 'ARTS_ARR' as IF_SRC, DATEANDTIME as IF_DT + from ueai.EAI_ELECSTRIPARRARTS_RCV_TEST + where DEAL_STAT = 'T' + union all + select 'ARTS_DEP' as IF_SRC, DATEANDTIME as IF_DT + from ueai.EAI_ELECSTRIPDEPARTS_RCV_TEST + where DEAL_STAT = 'T' + union all + select 'A-CDM_ARR' as IF_SRC, DATEANDTIME as IF_DT + from ueai.EAI_FLTACDMMLSTNARR_RCV_TEST + where DEAL_STAT = 'T' + union all + select 'A-CDM_DEP' as IF_SRC, DATEANDTIME as IF_DT + from ueai.EAI_FLTACDMMLSTNDEP_RCV_TEST + where DEAL_STAT = 'T' + union all + select 'GAM' as IF_SRC, DATEANDTIME as IF_DT + from ueai.EAI_GRDACMVT_RCV_TEST + where DEAL_STAT = 'T' + ) + where if_dt < '20231219000000.000' + order by if_dt, if_src; + +BEGIN + + FOR cur IN C_IF_TEST LOOP + + IF cur.IF_SRC = 'ARTS_ARR' THEN + + update ueai.EAI_ELECSTRIPARRARTS_RCV_TEST + set deal_stat = 'S' + where dateandtime = cur.IF_DT; + + UIC.PROC_EAI_INTRFC_ARTS_ARR_edit(); + + ElsIF cur.IF_SRC = 'ARTS_DEP' THEN + + update ueai.EAI_ELECSTRIPDEPARTS_RCV_TEST + set deal_stat = 'S' + where dateandtime = cur.IF_DT; + + UIC.PROC_EAI_INTRFC_ARTS_DEP_Edit(); + + ElsIF cur.IF_SRC = 'A-CDM_ARR' THEN + + update ueai.EAI_FLTACDMMLSTNARR_RCV_TEST + set deal_stat = 'S' + where dateandtime = cur.IF_DT; + + UIC.PROC_EAI_INTRFC_ACDM_ARR_Edit(); + + ElsIF cur.IF_SRC = 'ARTS_ARR' THEN + + update ueai.EAI_ELECSTRIPDEPARTS_RCV_TEST + set deal_stat = 'S' + where dateandtime = cur.IF_DT; + + PROC_EAI_INTRFC_ACDM_DEP_EDIT(); + + ElsIF cur.IF_SRC = 'GAM' THEN + + update ueai.EAI_GRDACMVT_RCV_TEST + set deal_stat = 'S' + where dateandtime = cur.IF_DT; + + UIC.PROC_EAI_INTRFC_GAM_EDIT(); + + END IF; + + END LOOP; + + +RETURN; + +EXCEPTION WHEN OTHERS THEN + + DBMS_OUTPUT.PUT_LINE('PROC_Test_CURSOR-'||'['||SQLERRM||']'); + + RETURN ; + +END; + +``` \ No newline at end of file diff --git a/Recognition/Work Related/프로젝트/스마트계류장/1.데이터베이스/GAM_LIST 데이터 일괄 insert.md b/Recognition/Work Related/프로젝트/스마트계류장/1.데이터베이스/GAM_LIST 데이터 일괄 insert.md new file mode 100644 index 0000000..62458bf --- /dev/null +++ b/Recognition/Work Related/프로젝트/스마트계류장/1.데이터베이스/GAM_LIST 데이터 일괄 insert.md @@ -0,0 +1,219 @@ +```sql + + +create table uic.SACP_GAM_LAST( + GAM_ID varchar(22), + GAM_SE varchar(4), + IF_DT varchar(18), + stand_no varchar(4), + AC_REG_NO varchar(12), + AC_TY_IATA varchar(10), + AC_GRAD varchar(5), + ARLN_CD_IATA varchar(3), + NEXT_STAND_NO varchar(4), + NEXT_STAND_TY varchar(4), + EXP_Stand_on_De varchar(8), + EXP_Stand_on_Tm varchar(4), + EXP_Stand_off_De varchar(8), + EXP_Stand_off_Tm varchar(4), + Actl_Stand_on_De varchar(8), + Actl_Stand_on_Tm varchar(4), + Actl_Stand_Off_De varchar(8), + Actl_Stand_off_Tm varchar(4), + ACTL_APN_IN_DE varchar(8), + ACTL_APN_IN_TM varchar(4), + ACTL_APN_Out_DE varchar(8), + ACTL_APN_OUT_TM varchar(4), + ACTL_NEXT_STAND_ON_TM varchar(4), + fltnm_arr varchar(8), + fltnm_dep varchar(8), + HDL_CAR_NO varchar(10), + standStat varchar(1), + REGISTER_ID varchar(30), + REGIST_DT TIMESTAMP, + UPDUSR_ID varchar(30), + UPDT_DT TIMESTAMP +); + +CREATE UNIQUE INDEX UIC.PK_SACP_GAM_LAST + ON UIC.SACP_GAM_LAST ( + GAM_ID, GAM_SE ASC + ); + + +ALTER TABLE UIC.SACP_GAM_LAST + ADD + CONSTRAINT PK_SACP_GAM_LAST + PRIMARY KEY ( + GAM_ID, GAM_SE + ); + + + +truncate table uic.SACP_GAM_LAST ; + + +insert into uic.SACP_GAM_LAST +select + GAM_ID + , GAM_SE + , IF_DT + , STAND_NO + , AC_REG_NO + , AC_SUB_TY_IATA + , AC_GRAD + , FLTCARR + , NEXT_STAND_NO + , NEXT_STAND_TY + , SUBSTR( PREDON_DT, 1,8) + , SUBSTR( PREDON_DT, 9) + , SUBSTR( PREDOFF_DT, 1,8) + , SUBSTR( PREDOFF_DT, 9) + , SUBSTR( ACTLON_DT, 1,8) + , SUBSTR( ACTLON_DT, 9) + , SUBSTR( ACTLOFF_DT, 1,8) + , SUBSTR( ACTLOFF_DT, 9) + , SUBSTR( RAMPIN_DT, 1,8) + , SUBSTR( RAMPIN_DT, 9) + , SUBSTR( RAMPOUT_DT, 1,8) + , SUBSTR( RAMPOUT_DT, 9) + , SUBSTR( ACTL_NEXT_STAND_ON_DT, 9) + , FLTNM_ARR + , FLTNM_DEP + , HDL_CAR_NO + , 'SYSTEM' + , systimestamp + , null + , null +from ( +SELECT /*+ INDEX_DESC(A EAI_IDX_GRDACMVT_DEAL_STAT)*/ + acRegNo AS AC_REG_NO -- 항공기 등록 번호 + , acType AS AC_TY_IATA -- 항공기 타입(IIS MVD, ICAO/IATA코드체계와 다름) + , acStype AS AC_SUB_TY_IATA -- 항공기 서브 타입(IATA) + , icaoAcCat AS AC_GRAD -- 항공기 등급(ICAO) + , standId AS STAND_NO -- 주기장 번호 + , Nextstandid AS NEXT_STAND_NO -- 다음배정주기장 + , standType AS NEXT_STAND_TY -- 주기장 유형 + , ARRFLTIND AS FLTNM_ARR -- 도착 운항 편명 + , DEPFLTIND AS FLTNM_DEP -- 출발 운항 편명 + , bseGAMId AS GAM_ID -- GAM ID + , SeqNo AS GAM_SE -- GAM SEQ + , towInfSource AS TOW_INFO_SRC -- Towing 정보 제공자 + , towInd AS TOW_STTUS_AT -- Towing 상태 여부 + , towCarID AS HDL_CAR_NO -- 조업 차량 번호 + , standStat AS GAM_STTUS_CD -- 상태코드 + , DateAndTime AS IF_DT + , ucm.fun_utc_tm(predOnDate||predOnTime) AS PREDON_DT -- 예상 주기장 도착 시각 + , ucm.fun_utc_tm(rampInDate||rampInTime) AS RAMPIN_DT -- 실제 계류장 진입 시각 + , ucm.fun_utc_tm(actlOnDate||actlOnTime) AS ACTLON_DT -- 실제 주기장 도착 시각 + , ucm.fun_utc_tm(predOffDate||predOffTime) AS PREDOFF_DT -- 예상 주기장 출발 시각 + , ucm.fun_utc_tm(rampOutDate||rampOutTime) AS RAMPOUT_DT -- 실제 계류장 진출 시각 + , ucm.fun_utc_tm(actlOffDate||actlOffTime) AS ACTLOFF_DT -- 실제 주기장 출발 시각 + , ucm.fun_utc_tm(clearDate||clearTime) AS clear_dt -- 주기장 출발 승인 + , ucm.fun_utc_tm( predOffDate||ACTLONTIMEOFNEXTSTD) as ACTL_NEXT_STAND_ON_DT -- 다음 배정주기장 도착 일시 + , FLTCARR + FROM UEAI.EAI_GRDACMVT_RCV A +where dateandtime in ( + select max(dateandtime) as if_dt + from ueai.EAI_GRDACMVT_RCV + where ACTLONTIME is not null + and ACTLOFFTIME is not null + and predondate >= '20240301' + group by BSEGAMID, SEQNO ) +order by bsegamid, seqno, dateandtime +) + + + + +insert into uic.SACP_GAM_LAST +select + GAM_ID + , GAM_SE + , IF_DT + , STAND_NO + , AC_REG_NO + , AC_SUB_TY_IATA + , AC_GRAD + , FLTCARR + , NEXT_STAND_NO + , NEXT_STAND_TY + , SUBSTR( PREDON_DT, 1,8) + , SUBSTR( PREDON_DT, 9) + , SUBSTR( PREDOFF_DT, 1,8) + , SUBSTR( PREDOFF_DT, 9) + , SUBSTR( ACTLON_DT, 1,8) + , SUBSTR( ACTLON_DT, 9) + , SUBSTR( ACTLOFF_DT, 1,8) + , SUBSTR( ACTLOFF_DT, 9) + , SUBSTR( RAMPIN_DT, 1,8) + , SUBSTR( RAMPIN_DT, 9) + , SUBSTR( RAMPOUT_DT, 1,8) + , SUBSTR( RAMPOUT_DT, 9) + , SUBSTR( ACTL_NEXT_STAND_ON_DT, 9) + , FLTNM_ARR + , FLTNM_DEP + , HDL_CAR_NO + , 'SYSTEM' + , systimestamp + , null + , null +from ( +SELECT /*+ INDEX_DESC(A EAI_IDX_GRDACMVT_DEAL_STAT)*/ + acRegNo AS AC_REG_NO -- 항공기 등록 번호 + , acType AS AC_TY_IATA -- 항공기 타입(IIS MVD, ICAO/IATA코드체계와 다름) + , acStype AS AC_SUB_TY_IATA -- 항공기 서브 타입(IATA) + , icaoAcCat AS AC_GRAD -- 항공기 등급(ICAO) + , standId AS STAND_NO -- 주기장 번호 + , Nextstandid AS NEXT_STAND_NO -- 다음배정주기장 + , standType AS NEXT_STAND_TY -- 주기장 유형 + , ARRFLTIND AS FLTNM_ARR -- 도착 운항 편명 + , DEPFLTIND AS FLTNM_DEP -- 출발 운항 편명 + , bseGAMId AS GAM_ID -- GAM ID + , SeqNo AS GAM_SE -- GAM SEQ + , towInfSource AS TOW_INFO_SRC -- Towing 정보 제공자 + , towInd AS TOW_STTUS_AT -- Towing 상태 여부 + , towCarID AS HDL_CAR_NO -- 조업 차량 번호 + , standStat AS GAM_STTUS_CD -- 상태코드 + , DateAndTime AS IF_DT + , ucm.fun_utc_tm(predOnDate||predOnTime) AS PREDON_DT -- 예상 주기장 도착 시각 + , ucm.fun_utc_tm(rampInDate||rampInTime) AS RAMPIN_DT -- 실제 계류장 진입 시각 + , ucm.fun_utc_tm(actlOnDate||actlOnTime) AS ACTLON_DT -- 실제 주기장 도착 시각 + , ucm.fun_utc_tm(predOffDate||predOffTime) AS PREDOFF_DT -- 예상 주기장 출발 시각 + , ucm.fun_utc_tm(rampOutDate||rampOutTime) AS RAMPOUT_DT -- 실제 계류장 진출 시각 + , ucm.fun_utc_tm(actlOffDate||actlOffTime) AS ACTLOFF_DT -- 실제 주기장 출발 시각 + , ucm.fun_utc_tm(clearDate||clearTime) AS clear_dt -- 주기장 출발 승인 + , ucm.fun_utc_tm( predOffDate||ACTLONTIMEOFNEXTSTD) as ACTL_NEXT_STAND_ON_DT -- 다음 배정주기장 도착 일시 + , FLTCARR + FROM UEAI.EAI_GRDACMVT_RCV A +where dateandtime in ( + select max(dateandtime) as if_dt + from ueai.EAI_GRDACMVT_RCV a, + ( select standid as standid_std, max(dateandtime) as if_dt_max + from ueai.EAI_GRDACMVT_RCV + where predonDate > to_char(sysdate -2, 'yyyymmdd') + and standid is not null + and ACTLONTIME is not null + and ACTLONTIMEOFNEXTSTD is null + group by standid ) b + where 1=1 + and a.STANDID = b.standid_std + and a.DATEANDTIME = b.if_dt_max + and ACTLONTIME is not null + and ACTLOFFTIME is null + group by BSEGAMID, SEQNO ) +order by bsegamid, seqno, dateandtime +) mm +where not exists ( + select 'x' + from uic.SACP_GAM_LAST + where gam_id = mm.GAM_ID + and gam_se = mm.gam_se + ) + + + + + + +``` \ No newline at end of file diff --git a/Recognition/Work Related/프로젝트/스마트계류장/9.기타/방문증 신청 문구.md b/Recognition/Work Related/프로젝트/스마트계류장/9.기타/방문증 신청 문구.md index b61ed91..0887819 100644 --- a/Recognition/Work Related/프로젝트/스마트계류장/9.기타/방문증 신청 문구.md +++ b/Recognition/Work Related/프로젝트/스마트계류장/9.기타/방문증 신청 문구.md @@ -1,10 +1,10 @@ **EC-Miner** B -스마트 계류장관제플랫폼 구축사업 3-56-25 지엠티 컨소시엄 사무실 AI 소프트웨어 개발 진행을 위한 방문 목적 -D -스마트 계류장관제플랫폼 구축사업 T2 계류장 관제탑 12층 항공기 흐름도 AI구성 작업을 위한 방문 +스마트 계류장관제플랫폼 구축사업 3-56-25 T2 지엠티 사무실 AI 음성 및 영상 개발 지원을 위한 방문 목적 + D + 스마트 계류장관제플랫폼 구축사업 T2 계류장 관제탑 12층 항공기 흐름도 AI구성 작업을 위한 방문 E -스마트 계류장관제플랫폼 구축사업 3-56-25 지엠티 사무실 AI 소프트웨어 개발 진행을 위한 방문시 차량 이동 경로 +스마트 계류장관제플랫폼 구축사업 3-56-25 T2 지엠티 사무실 AI 음성 및 영상 개발 지원을 위한 방문 시 차량 이동 경로 **개발팀** B diff --git a/Recognition/Work Related/프로젝트/스마트계류장/TODO.md b/Recognition/Work Related/프로젝트/스마트계류장/TODO.md index 08d8507..95b388d 100644 --- a/Recognition/Work Related/프로젝트/스마트계류장/TODO.md +++ b/Recognition/Work Related/프로젝트/스마트계류장/TODO.md @@ -39,4 +39,12 @@ g- [x] 데이터블럭 뷰 생성 #### 프로시져 관련 작업 - [ ] uic.SACP_FLT_SCHDUL 스케줄 정보 상태 (계획, 실행, 취소) - [ ] uic.SACP_FLT_SCHDUL GAM_ID 추가 -- [ ] 각 연계 프로시져 UEAI.EAI_GRDACMVT_RCV -> uic.SACP_GAM_LAST로 변경 \ No newline at end of file +- [ ] 각 연계 프로시져 UEAI.EAI_GRDACMVT_RCV -> uic.SACP_GAM_LAST로 변경 + + + +- [ ] EyeIfEai : 최초실행시 스레드 순차 실행 +- [ ] 로그 상태로그와 분리 +- [ ] + + diff --git a/Recognition/zzz.resources/Pasted image 20240403173424.png b/Recognition/zzz.resources/Pasted image 20240403173424.png new file mode 100644 index 0000000..a2447a2 Binary files /dev/null and b/Recognition/zzz.resources/Pasted image 20240403173424.png differ diff --git a/Recognition/zzz.resources/Pasted image 20240404092425.png b/Recognition/zzz.resources/Pasted image 20240404092425.png new file mode 100644 index 0000000..9dcb780 Binary files /dev/null and b/Recognition/zzz.resources/Pasted image 20240404092425.png differ diff --git a/Recognition/zzz.resources/Pasted image 20240404092657.png b/Recognition/zzz.resources/Pasted image 20240404092657.png new file mode 100644 index 0000000..e042da1 Binary files /dev/null and b/Recognition/zzz.resources/Pasted image 20240404092657.png differ diff --git a/Recognition/zzz.resources/Pasted image 20240404092924.png b/Recognition/zzz.resources/Pasted image 20240404092924.png new file mode 100644 index 0000000..80c1f1b Binary files /dev/null and b/Recognition/zzz.resources/Pasted image 20240404092924.png differ diff --git a/Recognition/zzz.resources/Pasted image 20240404093006.png b/Recognition/zzz.resources/Pasted image 20240404093006.png new file mode 100644 index 0000000..1361385 Binary files /dev/null and b/Recognition/zzz.resources/Pasted image 20240404093006.png differ diff --git a/Recognition/zzz.resources/Pasted image 20240404093714.png b/Recognition/zzz.resources/Pasted image 20240404093714.png new file mode 100644 index 0000000..883d5f6 Binary files /dev/null and b/Recognition/zzz.resources/Pasted image 20240404093714.png differ diff --git a/Recognition/zzz.resources/Pasted image 20240404094035.png b/Recognition/zzz.resources/Pasted image 20240404094035.png new file mode 100644 index 0000000..2c94e2c Binary files /dev/null and b/Recognition/zzz.resources/Pasted image 20240404094035.png differ diff --git a/Recognition/zzz.resources/Pasted image 20240404094102.png b/Recognition/zzz.resources/Pasted image 20240404094102.png new file mode 100644 index 0000000..b796c50 Binary files /dev/null and b/Recognition/zzz.resources/Pasted image 20240404094102.png differ diff --git a/Recognition/zzz.resources/Pasted image 20240404095641.png b/Recognition/zzz.resources/Pasted image 20240404095641.png new file mode 100644 index 0000000..1aa7482 Binary files /dev/null and b/Recognition/zzz.resources/Pasted image 20240404095641.png differ diff --git a/Recognition/zzz.resources/Pasted image 20240404100125.png b/Recognition/zzz.resources/Pasted image 20240404100125.png new file mode 100644 index 0000000..972f365 Binary files /dev/null and b/Recognition/zzz.resources/Pasted image 20240404100125.png differ diff --git a/Recognition/zzz.resources/Pasted image 20240404100942.png b/Recognition/zzz.resources/Pasted image 20240404100942.png new file mode 100644 index 0000000..737fc45 Binary files /dev/null and b/Recognition/zzz.resources/Pasted image 20240404100942.png differ