commit 관련

  • git log
    • commit 로그 확인
    • git commit 내역을 보여준다
  • git add [파일 경로]
    • 변경된 파일 stage
    • 경로는 상대 경로 및 절대 경로로 지정 가능하다
    • 해당 파일은 staged 상태로 Staging Area에 추가된다
    • 해당 상태에서는 reset 등 명령어를 사용하여 되돌릴 수 있고, 이력이 남지 않는다
  • git commit -m “메시지”
    • Staging Area에 있는 파일을 commit 한다
    • commit을 실행하면 Staging Area에 있는 파일들이 하나의 이력으로 git directory에 저장된다
  • git push origin [브런치]
    • commit 된 파일들을 GitHub나 GitLab 등 원격 저장소(remote repository)에 반영된다.
    • 해당 명령을 실행한 후에는 되돌릴 경우 일반적으로 이력이 남게 된다.
      • hard reset과 -f 옵션을 이용한 push로 이력이 남지 않도록 복구할 수 있지만, 권장되지 않는 방법이다
  • git diff [commit sha]
    • 현재와 지정한 커밋의 비교 출력
  • Commit 컨벤션

 

branch 관련

  • git branch [옵션]
    • 현재 브랜치를 확인
    • git branch -v
      • 브랜치의 마지막 커밋 내역 추가 표시
    • git branch -a
      • 브랜치의 모든 정보 표시
  • git branch [브랜치 이름]
    • 브랜치를 생성
  • git branch --merged / --no-merged
    • merge 된 브랜치 표시 / merge 되지 않은 브랜치 표시
  • git branch -d [브랜치 이름]
    • 브랜치 삭제
    • 아직 merge 하지 않은 커밋이 있다면 삭제되지 않음
      • -D 옵션으로 강제 삭제 가능
  • git branch -m [브랜치 이름] [변경할 브랜치 이름]
    • 브랜치의 이름을 변경
    • -M 옵션을 사용하면 동일한 이름의 브랜치가 있어도 덮어씀
  • git checkout [옵션] [브랜치 이름]
    • 해당 브랜치로 전환
    • [옵션]에 -b를 넣으면 브랜치를 생성하고, 동시에 체크아웃

 

merge 관련

 

git tag

  • git tag
    • 태그 전체 조회
  • git tag [태그 이름]
    • local에 태그 추가
  • git tag -d [태그 이름]
    • local의 태그 삭제
  • git push origin [태그 이름]
    • 원격 저장소에 태그 추가
  • git push -d origin [태그 이름]
    • 원격 저장소의 태그 삭제

 

git stash

  • 수정된 파일을 stack에 저장할 수 있다
  • git stash (save)
    • 스택에 새로운 stash가 만들어지며, 현재 working directory는 마지막으로 커밋한 상태(nothing to commit, working tree clean)가 된다
  • git stash list
    • git stash 명령을 실행해 넣은 스택의 목록을 확인한다
  • git stash apply [stash name]
    • 스택에서 가장 최근의 stash를 가져온다
    • 옵션을 지정하면 특정 stash name을 가져올 수 있다
    • apply 명령 후에도 스택에 있는 stash는 그대로 남아있다
  • git stash pop [stash name]
    • apply와 동일하게 동작하지만, 스택에서 stash를 삭제한다

 

user.name & user.email 설정

  • 글로벌 설정
    • 이메일 설정: git config --global user.email “<설정할 이메일>”
    • 이름 설정: git config --global user.name “<설정할 이름>”
    • 글로벌 설정 확인: git config --global --list
    • 특정 이메일 삭제:git config --global --unset user.email “<삭제할 이메일>”
    • 특정 이름 삭제: git config --global --unset user.name “<삭제할 이름>”
    • 이메일 전체 삭제: git config --global --unset-all user.email
    • 이름 전체 삭제: git config --global --unset-all user.name
  • 특정 저장소 설정
    • 이메일 설정: git config user.email “<설정할 이메일>”
    • 이름 설정: git config user.name “<설정할 이름>”
    • 설정 확인: git config --list
    • 특정 이메일 삭제:git config --unset user.email “<삭제할 이메일>”
    • 특정 이름 삭제: git config --unset user.name “<삭제할 이름>”
    • 이메일 전체 삭제: git config --unset-all user.email
    • 이름 전체 삭제: git config --unset-all user.name

 

참고 사이트

실습 사이트 : https://learngitbranching.js.org/?locale=ko

Git 공식 가이드 : https://git-scm.com/book/ko/v2

Commit 컨벤션 : https://meetup.toast.com/posts/106

Branch Naming : https://velog.io/@kim-jaemin420/Git-branch-naming

'Study > etc' 카테고리의 다른 글

[Git] ssh key 생성과 GitLab 등록  (0) 2022.12.15
[JMeter] JMeter 기초  (0) 2022.12.13
[Linux] tmux 사용법 기초  (0) 2022.11.22
[Linux] 쉘 스크립트/터미널의 변수 설정  (0) 2022.11.18
[Linux] vim 주요 명령어  (0) 2022.11.15

환경 정보

  • Ubuntu 20.04 LTS

 

Step 1. ssh key 생성

  • ssh-keygen -t rsa
    • 터미널에서 해당 명령어를 실행하면 3번의 입력을 받는다
      1. Enter file in which to save the key
      • key가 저장될 디렉토리를 설정한다
      • 미입력 시 기본 값으로 설정된다
      1. Enter passphrase (empty for no passphrase):
      • key에 대한 비밀번호를 설정한다
      • 미입력 시 key에 대한 비밀번호가 없이 설정된다
      1. Enter same passphrase again:
      • key에 대한 비밀번호 설정 시 비밀번호 재입력을 받는다
  • 위의 과정을 거치면, 설정한 디렉토리에 파일이 생성된다
    • 별도의 암호화 방식을 설정하지 않으면 RSA 방식의 프로토콜이 사용된다
    • id_rsa : rsa에 대한 private key
    • id_rsa.pub : rsa에 대한 public key
    • known_hosts : 등록된 호스트들의 값이 들어있다

 

Step 2. GitLab에 Key 등록

  • 자신의 프로필에서 Settings 또는 Preferences로 들어간다
  • “SSH Keys” 항목으로 들어간다
  • “Key”를 입력하는 부분에 id_rsa.pub 파일의 내용을 붙여넣기 한다
  • Title이나 Expiration Date를 설정하는 부분이 있다면 설정한다

 

Step 3. SSH를 이용한 Clone

  • Project에서 “Clone with SSH”를 선택하여 복사한다
  • 프로젝트 파일이 위치할 디렉토리에서 git clone [복사된 값]을 입력하여 clone 한다
  • 처음 진행 시 known_hosts 파일에 호스트를 등록할 지 입력받는다
    • Are you sure you want to continue connecting (yes/no/[fingerprint])?
    • yes를 입력하면 known_hosts 파일에 등록된다
  • 만약 key 생성 시 비밀번호를 설정했다면, 이 과정에서 비밀번호를 입력받는다

 

Step 4. SSH를 이용한 Git 사용

  • SSH를 등록했다면 remote에 대한 push를 할 때 비밀번호와 계정 정보를 입력하지 않아도 된다
  • 하지만 user.name과 user.email 정보는 입력이 필요하다
  • 아래와 같이 입력하여 설정한다
    • git config user.email [이메일 주소]
    • git config user.name [이름]
    • 중간에 --global 옵션을 주면 모든 git 사용 시에 해당 계정 정보가 등록된다
    • --global 옵션이 없다면 해당 레포지토리에만 설정이 저장된다
    • 저장된 정보는 로컬은 git config --list, 글로벌은 git config --global --list 명령어로 확인할 수 있다

 

Append.

  • SSH 키를 이용한 인증 방식은 자신의 컴퓨터에 있는 key 파일이 노출되지 않았을 때 보안이 우수하다
  • 또한 git을 이용하기에도 상당히 간편하다는 장점이 있다
  • 따라서 상황이 된다면 SSH 키를 적극적으로 활용하는 것이 좋다

 

참고자료

'Study > etc' 카테고리의 다른 글

[Git] Git 기본 명령어  (0) 2022.12.20
[JMeter] JMeter 기초  (0) 2022.12.13
[Linux] tmux 사용법 기초  (0) 2022.11.22
[Linux] 쉘 스크립트/터미널의 변수 설정  (0) 2022.11.18
[Linux] vim 주요 명령어  (0) 2022.11.15

개요

Apache JMeter

  • 오픈 소스 소프트웨어로, 100% 순수 자바 애플리케이션이다.
    • Apache License 2.0
  • 웹 애플리케이션의 부하 테스트를 위해 개발되었다
    • 다른 테스트 기능들도 확장해가고 있음
  • 간단하게 여러 사용자가 접속하는 상황에 대한 테스트를 진행할 수 있다
  • Locust와 함께 가장 대표적인 오픈 소스 테스트 도구로 사용된다

 

간단한 웹 애플리케이션에 대한 부하 테스트

Step 1. 설치 및 실행

Step 2. 테스트 설정

  • 왼쪽 상단의 [Test Plan] - [Add] - [Thread Group]
    • [Thread Properties]에서 [Number of Threads (users)]에 원하는 접속 user 수를 입력
    • [Ramp-up period]는 부하를 몇 초 동안 나누어 줄 지 설정
    • [Loop Count]는 반복 횟수
  • [Thread Group] - [Add] - [Sampler] - [HTTP Request]
    • HTTP Request의 URL과 요청 메소드를 선택
    • 이번에 진행할 테스트는 간단히 웹 서버에 접속하여 세션을 발급받는 이벤트이므로, GET으로 index.jsp에 접속하도록 설정
  • 여기까지만 해도 테스트가 가능하지만, 모니터링을 위해 Listener를 추가
    • [Test Plan] - [Add] - [Listener] - [Summary Report] / [View Results Tree]
      • 원하는 리스너를 추가해서 모니터링을 진행
      • Summary Report가 대체적으로 유용해보임
      • View Results Tree는 Request 메시지 등 각각의 리퀘스트에 대한 정보를 확인 가능

Step 3. 테스트 시작

  • JMeter GUI 상단에 Start 버튼(초록섹 ▶ 모양) 클릭
  • 테스트가 진행되며 Summary Report와 View Results Tree에 결과가 남음

참고자료

'Study > etc' 카테고리의 다른 글

[Git] Git 기본 명령어  (0) 2022.12.20
[Git] ssh key 생성과 GitLab 등록  (0) 2022.12.15
[Linux] tmux 사용법 기초  (0) 2022.11.22
[Linux] 쉘 스크립트/터미널의 변수 설정  (0) 2022.11.18
[Linux] vim 주요 명령어  (0) 2022.11.15

Install

  • sudo apt install tmux
    • Ubuntu 기준

용어

  • session : 하나의 tmux 실행 상태
    • 다수의 window를 가질 수 있음
  • window : 하나의 터미널 화면
    • 다수의 pane을 가질 수 있음
  • pane : window를 분할한 것으로 각각의 터미널을 가질 수 있음
    • 각각의 pane은 다른 상태를 가짐
      • 예를 들어 pane1에서 export MY_VAL=”HELLO” 명령어를 실행해도 pane2에는 영향 없음
      • 이를 이용해 두 pane 간 다른 자바 환경변수를 적용하여 다른 버전을 설정할 수 있음

명령어

  • 기본 커맨드(이하 “<CMD>”): <Control> + <b>
  • 실행 : tmux
  • Session
    • 세션 생성 : tmux new -s <세션 이름>
    • 세션 목록 확인
      • tmux ls
    • 세션 간 이동
      • 세션 목록 확인 및 전환 : <CMD> + <s>
      • 다음 세션으로 : <CMD> + )
      • 이전 세션으로 : <CMD> + (
    • 종료 관련
      • exit 명령어 입력 시 세션 종료
      • 세션을 종료하지 않고 빠져나가기 : <CMD> + <d>
    • 세션 종료
      • tmux kill-session -t <세션 이름>
    • 존재하는 세션에 연결(tmux 밖에서 실행해야 함)
      • tmux attach-session -t <세션 이름>
  • Window
    • 새로운 윈도우 생성 : <CMD> + <c>
    • 윈도우 이동 : <CMD> + <이동할 번호>
  • Pane
    • Pane 좌우로 나누기 : <CMD> + <%>
    • Pane 상하로 나누기 : <CMD> + <“>
    • Pane 간 이동 : <CMD> + <이동할 패널 방향키>
    • Pane 삭제 : <CMD> + <x> / <Control> + <d>
    • Pane에서 스크롤 이동 : <CMD> + <[> or <PgUP> or <PgDn>
      • 종료 하려면 <Control> + <c> or <q>
      • <Space Bar>를 입력하면 복사 모드가 된다
        • 이 상태에서 영역을 키보드로 지정한 후 <Enter>를 입력하면 복사됨
        • <CMD> + <]>로 내용 붙여넣기 가능
        • 복사된 내용은 window/pane 간 이동 하여 사용 가능(한 session에 적용)
        • 복사 모드가 안될 시 : ~/.tmux.conf 파일을 만들어 set-window-option -g mode-keys vi를 입력

명령어의 결과를 변수에 설정

  • 크게 두 가지 방법이 있음
    1. JAVA_HOME=pwd``
      • 주의 사항은 작은 따옴표(’)’가 아닌 역따옴표(`, backquote) 기호라는 것임
    2. JAVA_HOME=$(pwd)

변수 사용 시 작은 따옴표와 큰 따옴표

  • string = “Hello world!”
    1. echo ‘$string’
      • 문자 그대로인 $string이 출력됨
    2. echo “$string”
      • Hello world!가 출력됨

환경 변수 초기화

  • export PATH=$(getconf PATH)

쉘 스크립트 사용

  • 쉘 스크립트 파일 생성 후
    • 쉘 스크립트 파일의 상단에는 쉘을 명시해야 함
      • #!/bin/sh
        • 범용적으로 사용할 수 있는 sh로 지정하는 것이 좋음
    • Setup JDK Version
      • jdk6dir='/usr/local/jdk1.6.0_45'
      • jdk8dir='/usr/local/jdk1.8.0_311’
    • alias를 이용한 쉘 스크립트 설정 예시
      • alias j6='JAVA_HOME=${jdk6dir}; export JAVA_HOME; export PATH=$JAVA_HOME/bin:$PATH; export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH;’
      • alias j8='JAVA_HOME=${jdk8dir}; export JAVA_HOME; export PATH=$JAVA_HOME/bin:$PATH; export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH;’
    • 마지막 명령어(export PATH= ~ :$PATH)에서 $PATH가 앞에 붙지 않고 뒤에 붙어야 j6 입력 후 j8 입력 했을 때 바뀐 자바 버전이 적용됨. $PATH가 앞에 붙으면 처음 설정한 버전에서 변경되지 않음
  • ~/.bashrc 파일에 여러 용도의 쉘 스크립트를 적용하면 파일이 복잡해질 수 있으므로, 각각의 파일을 만들고(ex. bashconf1) ~/.bashrc에 source bashconf1과 같은 명령어를 두어 해당 쉘 스크립트를 터미널 실행 시 적용할 수 있도록 하는 방법이 사용될 수 있음

'Study > etc' 카테고리의 다른 글

[JMeter] JMeter 기초  (0) 2022.12.13
[Linux] tmux 사용법 기초  (0) 2022.11.22
[Linux] vim 주요 명령어  (0) 2022.11.15
[VirtualBox] 가상 머신(게스트) 내에서 USB 인식  (0) 2022.11.14
[VirtualBox] Windows 10 게스트 최적화  (0) 2022.11.11

+ Recent posts