IntellJ 를 이용하기

  • Rebase Current onto Selected
  • Merge into Selected
  • Rebase --interactive (fixup)

시나리오

  1. 개인 개발 브랜치에서 커밋 내용에 신경 쓰지 않고 저장을 목적으로 커밋한다.
  2. master 브랜치에 다른 사람들이 반영 내용이 주기적으로 반영된다.
  3. 개인 개발 브랜치에 master 에 반영된 내용도 함께 업데이트되어 테스트 해야 한다.

시나리오 예

타임라인 순

  • 00:00 master 반영 v1
    • 01:00 master dev 브랜치 checkout
    • 01:10 dev 쓰기 기능 커밋
    • 01:20 dev 쓰기 기능 이래저래 막 커밋1
  • 02:00 master 반영 v2
    • 03:10 dev 쓰기 기능 이래저래 막 커밋2
    • 03:20 dev 쓰기 기능 이래저래 막 커밋3
      [master 브랜치]                                                                                 [dev 브랜치]

    • 04:00 master 내용 dev 브랜치에 반영 ("20:00 master 반영 v2" 내용이 rebase 01:00 시점 이후에 들어옴)
      dev 브랜치에서 "Rebase Current onto Selected"
      master 내용이 dev Checkout 시점으로 들어옴
    • 04:10 dev 쓰기 기능 이래저래 막 커밋4
    • 04:20 dev 쓰기 기능 이래저래 막 커밋5

05:00 dev 쓰기 기능 1~5번 커밋 내용 합쳐 master 에 머지하기

커밋 메시지 합치기
커밋 합치고 메시지 변경

Master 브랜치로 이동

dev -> master 로 Merge
완료

 

방법

  1. HttpClient 등 모듈에서 유효한 인증서를 체크하는 로직을 예외 시키는 방법
  2. certificate 인증서를 저장하여 호출하는 서버의 keystore 에 등록해주는 방법

방법 1에 대한 방법

            ## HttpClient 4.x 
            
            SSLContextBuilder builder = new SSLContextBuilder();
            builder.loadTrustMaterial(null, (certificate, authType) -> true);

            SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
                    builder.build(),
                    NoopHostnameVerifier.INSTANCE);

            httpClientBuilder.setSSLSocketFactory(sslsf);

방법 2에 대한 방법

  1. 크롬에서 아래와 같이 test1.cer 파일로 저장 (이름 무관)
  2. keytool -import -alias test1 -keystore $JAVA_HOME/lib/security/cacerts -file test1.cer -storepass changeit (alias 기존과 겹치지 않는 적당한 명칭, pass는 적당하게)
    1. 해당 파일만 가져와서 하드코딩으로 지정 할때
      System.setProperty("javax.net.ssl.trustStore", "$JAVA_HOME/lib/security/cacerts");

2024현재

 

과거

 

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:316)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:310)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1639)
	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:223)
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1037)
	at sun.security.ssl.Handshaker.process_record(Handshaker.java:965)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1064)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:347)
	at UrlConTest.main(UrlConTest.java:15)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397)
	at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302)
	at sun.security.validator.Validator.validate(Validator.java:262)
	at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621)
	... 14 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
	at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
	at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392)
	... 20 more

 

인증 정상으로 됐으나 에러 날때 vi ~/.bashrc 에서 실행되는 항목 있는지 체크

우선 agent 설치 전에 주석

 

[] Launch failed - cleaning up connection
[] [SSH] Connection closed.

 

Centos 7

$ sudo podman run -it centos:7 /bin/bash

[root@c0f41f59555f /]# ls
ls: cannot open directory .: Permission denied

/etc/selinux/config

SELINUX=disabled 확인

function maxVersion {
  FILE_FIND=$1
  START_STR=$2
  END_STR=$3

  FILES=$(ls $FILE_FIND)

  MAX_VERSION=-1
  for FILE in $FILES ; do
    FILE="$(basename -- $FILE)"
    VERSION=`echo $FILE | grep -o -P "(?<=$START_STR).*(?=$END_STR)"`
    if [ -n "$VERSION" ] ; then
      IFS='.' read -ra arr <<< "$VERSION"
      VERSION=${arr[2]}
      if [ $VERSION -gt $MAX_VERSION ]; then
        MAX_VERSION=$VERSION
      fi
    fi
  done
  echo $MAX_VERSION

}


CATALINA_HOME=/data/tomcat/apache-tomcat-9.0.7
PATCH_VERSION=$(maxVersion "/data/tomcat/apache-tomcat-*.zip" "tomcat-" ".zip")
echo "PATCH_VERSION: $PATCH_VERSION"

NOW_VERSION=`echo "$CATALINA_HOME" | grep -o -P '(?<=tomcat-).*(?=$)'`
IFS='.' read -ra arr <<< "$NOW_VERSION"
PATCHED_VERSION=${arr[2]}
echo "PATCHED_VERSION: $PATCHED_VERSION"

if [ $PATCH_VERSION -gt $PATCHED_VERSION ]; then
  echo "패치 파일 있음. 현재: $NOW_VERSION, 패치 버전: $PATCH_VERSION"
fi
vi /home/ddakker/.local/share/applications/idea.desktop

[Desktop Entry]
Version=1.0
Type=Application
Name=IntelliJ IDEA Ultimate Edition
Icon=/apps/idea-IU-193.6494.35/bin/idea.svg
Exec="/apps/idea-IU-193.6494.35/bin/idea.sh" %f
Comment=Capable and Ergonomic IDE for JVM
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-idea

 

키맵(단축키) 옵션은 Windows 로 설정했음

GNOME 40

[Konsole 설치]
dnf install konsole
단축키 - 복사 -> Ctrl + Insert 추가

[단축키] - 설정 > 키보드 > 바로가기 사용자 설정
창
	창 옮기기 - Alt + F7 제거
    현재 활동 보이기 - Disable (idea와 충돌)
    
조종
	모든 일반 창 감추가 - Super + D
    창 전환 - Alt-Tab (안 하면 동일 프로그램 합쳐진 기능으로 됨)
    오른쪽 작업 공간으로 옮기기 - Ctrl + Super + -> (idea 와 충돌)
    왼쪽 작업 공간으로 옮기기 - Ctrl + Super + -< (idea 와 충돌)

에플리케이션 메뉴 열기 - Alt + F1
	## 본인 계정에서 실행
	gsettings set org.gnome.shell.extensions.apps-menu apps-menu-toggle-menu "[]"

 ## 명령어 실행 - IBus 기본설정
 $ ibus-setup
  에모지 -> 바로 가기 키
  	에모지 주석 - Ctrl + Shift + e 제거
    유니코드 코드 값 - Ctrl + Shift + u 제거 (idea 대소문자 변경 충돌)

 

Cinnamon

[키보드 단축키 설정]
Alt + F1
	설정 -> 키보드 -> 일반 -> 작업 공간 선택 화면 보기
    재부팅 후 원복 된다면...
    ~/.config/plasma-org.kde.plasma.desktop-appletsrc
    	Alt + F1 부분 주석
Ctrl + Alt + <-
	설정 -> 키보드 -> 작업 공간 -> 왼쪽 작업 공간으로 이동 
Ctrl + Alt + ->
	설정 -> 키보드 -> 작업 공간 -> 오른쪽 작업 공간으로 이동 
Ctrl + Alt + T
	설정 -> 키보드 -> 런처 -> 터미널 실행
    
[창]
Alt + Mouse Drag
	설정 -> 창 -> 동작 -> 창을 이동할 때 사용할 특수 키
Alt + F7
	설정 -> 창 -> 위치 -> 창 이동
    
[한글 설정(IBUS)]
Ctrl + Shift + U
	Emoji -> Unicode code point
    
[터미널]
Copy, Past 단축키 변경
	기본 Ctl + Shift C, V 라서 일반적은 Ctl + Insert, Shift + Insert 로 변경

    

KDE Plasma

1. 터미널 konsole 복사/붙여넣기
	konsole - 키보드 단축키 설정
	복사 - 대체키에 Ctrl + Ins
    
2. 터미널 열기 - konsole
	Ctrl + Alt + t
	단축키 - 전역 단축키 - 시스템 설정 - Launch Konsole
    
3. 잠금
	Ctrl + Alt + l
	단축키 - 전역 단축키 - ksmserver - 세션 잠금
    
4. 메뉴 열기
	Alt + F1
	단축키 - 전역 단축키 - Plasma - 프로그램 위젯 활성화하기
    
5. Alt + Mouse Drag
	창관리 - 창 동작 - 창 내부,제목 표시줄 및 프레임 동작 - 수정자 키(D): Alt - 왼쪽 클릭(E):
    	아무것도 하지 않음
        
6. Ctrl + F9
	단축키 - 전역 단축키 - KWin - 보이는 창 바꾸기(현재 데스크톱)

 


sudo ip link set vboxnet0 up

https://github.com/mitchellh/vagrant/issues/5751

 디렉토리 생성

sudo mkdir -p /mnt/rhel6

sudo mkdir -p /mnt/rhel7

sudo mkdir -p /mnt/centos6

sudo mkdir -p /mnt/centos7트


 ISO 이미지 마운트

sudo mount -t iso9660 -o loop /data/_ISO_/rhel-server-6.9-x86_64-dvd.iso /mnt/rhel6

sudo mount -t iso9660 -o loop /data/_ISO_/rhel-server-7.3-x86_64-dvd.iso /mnt/rhel7

sudo mount -t iso9660 -o loop /data/_ISO_/CentOS-6.9-x86_64-bin-DVD1.iso /mnt/centos6

sudo mount -t iso9660 -o loop /data/_ISO_/CentOS-7-x86_64-DVD-1611.iso /mnt/centos7


 httpd 일때 설정

Alias /rhel6 "/mnt/rhel6"

<Directory /mnt/rhel6/>

    Options +Indexes

    AllowOverride none

    Require all granted

</Directory>


Alias /rhel7 "/mnt/rhel7"

<Directory /mnt/rhel7/>

    Options +Indexes

    AllowOverride none

    Require all granted

</Directory>


Alias /centos6 "/mnt/centos6"

<Directory /mnt/centos6/>

    Options +Indexes

    AllowOverride none

    Require all granted

</Directory>


Alias /centos7 "/mnt/centos7"

<Directory /mnt/centos7/>

    Options +Indexes

    AllowOverride none

    Require all granted

</Directory>


NGINX 일때 설정

server {

location /rhel7/ {

            alias   D:/data/yum/rhel7/;

autoindex       on;

allow all;

        }

location /rhel6/ {

            alias   D:/data/yum/rhel6/;

autoindex       on;

allow all;

        }

location /centos6/ {

            alias   D:/data/yum/centos6/;

autoindex       on;

allow all;

        }

location /centos7/ {

            alias   D:/data/yum/centos7/;

autoindex       on;

allow all;

        }

}


yum repo 설정

# /etc/yum.repos.d/local-rhel6.repo

[local-rhel6]

name=local-rhel6

baseurl=http://192.168.56.1/rhel6/Server/

enabled=1

gpgcheck=0


# /etc/yum.repos.d/local-rhel7.repo

[local-rhel7]

name=local-rhel7

baseurl=http://192.168.56.1/rhel7/

enabled=1

gpgcheck=0


# /etc/yum.repos.d/local-centos6.repo

[local-centos6]

name=local-centos6

baseurl=http://192.168.56.1/centos6/

enabled=1

gpgcheck=0


# /etc/yum.repos.d/local-centos7.repo

[local-centos7]

name=local-centos7

baseurl=http://192.168.56.1/centos7/

enabled=1

gpgcheck=0



+ Recent posts