SOPT 34기 SERVER 3주차 🔑keyword🔑 과제

1️⃣ 터미널 명령어 정리
📌 어떤 명령어들을 사용했을까?
sudo apt update
sudo apt install openjdk-17-jdk
- apt(Advanced Package Tool)
- Debian 계열의 리눅스 배포판에서 소프트웨어 패키지를 관리하기 위한 도구
- 시스템에 설치된 패키지를 업데이트 하거나 새 소프트웨어를 설치하는 데 사용됨
cd
mkdir
vim
ls
- cd(change directory)
- 사용자가 현재 작업중인 디렉토리를 변경할 때 사용하는 명령어
- mkdir(make directory)
- vim
- Linux 환경에서 텍스트 에디터를 제공
- 텍스트 에디터 중 하나로, 사용자가 텍스트 파일을 보거나 수정할 때 사용
- 다양한 프로그램이 언어를 지원하며, 효율적인 텍스트 편집 기능을 제공함
- ls
- 현재 폴더 아래에 있는 구성요소(파일, 폴더)를 표시
java -jar spring-0.0.1-SNAPSHOT.jar
nohup java -jar spring-0.0.1-SNAPSHOT.jar &
nohup
&
cat nohup.out
- jar
- Java Archive 파일로 패키징 된 application을 실행시킨다. .jar 확장자를 가지며, 여러 클래스 파일과 관련 리소스를 하나의 파일로 묶어 관리할 수 있다.
- 위의 명령어 에서는 -jar 명령어를 통해 SpringBoot를 배포한다.
- nohup(no hang up)
- 세션이 종료되어도 프로그램을 종료시키지 않고 계속 실행시키는 명령어
- &
- 프로세스를 실행할 때 백그라운드에서 동작하도록 만드는 명령어
- cat
ps -ef | grep java
grep
kill -9 <process ID>
- ps(process state)
- 현재 실행중인 프로세스와 상태를 출력하는 명령어
- grep
- kill -9
- kill : 서버 배포를 중지하는 명령어
- 9-kill : 프로세스를 종료할 때 사용
- 옵션 9-SIGKILL는 프로세스를 강제종료할 때 사용. 프로세스가 이 신호를 받으면 정리 작업 없이 즉시 종료
- 15-SIGTERM : 프로세스를 정상적으로 종료할 때 사용하며, 종료 전 필요한 정리 작업을 수행한 후 종료
sudo service nginx start
sudo systemctl restart nginx
sudo mv seminar /var/www
- service
- 시스템의 서비스를 시작, 중지, 재시작 하는 등의 관리를 담당
- systemctl
- 시스템의 서비스와 데몬을 관리하는 도구
- 서비스의 시작, 중지, 재시작 및 상태 확인 등을 수행
- mv(move)
- 파일이나 디렉토리를 이동시킬 때 사용하는 명령어
// Swap 관련 명령어
sudo dd if=dev/sero of=/swapfile bs=64M count=32
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s
sudo vi/etc/fstab
- dd(data duplicator)
- 파일을 변환하거나 복사할 때 사용하는 명령어
- 입력 파일(if)에서 출력 파일(of)로 데이터를 복사
- chmod(change mode)
- 디렉토리의 접근 권한 변경
- 사용자, 그룹, 다른 사용자들에 대한 파일의 읽기(read), 쓰기(write), 실행(execute) 권한을 설정하거나 변경 가
📌 vi 명령어 정리

- linux와 unix에서 사용하는 vi 편집기는
명령모드, 입력모드, 마지막 행 모드
총 3가지 모드로 구성된다. → 흔히 사람들이 말하는 vi 명령어는 이 세 가지 모드를 자유자재로 왔다갔다 하면서 코드나 글을 작성하는 것
- 명령모드(command mode)
- 처음 vi 명령어로 vi를 시작하게 되면 들어가게 되는 게 명령 모드이다.
- 방향키를 이용하여 커서를 이동할 수 있다.
dd
나 yy
로 한 줄 삭제 및 한 줄 붙여넣기 또는 x
명령어로 글자 하나를 삭제할 수 있다.
- 입력모드(insert mode)
- 명령모드에서
i
나 a
명령어를 통해 입력모드로 넘어갈 수 있다.
i
명령은 커서가 현재 위치한 부분에서부터, a
명령은 커서가 위치한 바로 다음 부분부터
- 입력 모드로 가게 되면, 자유롭게 코드나 글을 작성하면 된다.
- 명령모드로 다시 돌아오려면
ESC
를 누르면 된다.
- 마지막 행 모드(Last line mode)
- 명령모드에서
:
(콜론)을 입력하면 화면 맨 밑단에 :_____
하며 입력을 할 수 있는 공간이 나온다.
- 여기에서 현재까지 내가 작성한 이 내용을 저장하고 vi를 종료(
wq
)할지, 그냥 종료(q
, q!
)할지 등을 입력할 수 있다.
2️⃣ 카나리(Canary) 배포 방식
📌 배포 방식의 비교
롤링(Rolling)

블루 그린(Blue Green)

카나리(Canary)

📌 어원을 통한 이해
Canary
카나리아
라는 새 이름에서 유래하였다.
- 카나리아는 유독가스에 민감한 동물로, 석탄 광산에서 유독가스 누출의 위험을 알리는 용도로 사용되었다고 한다. 즉, 미리 위험을 감지하기 위해 사용되었다.
- 어원에서 유추할 수 있듯이, 카나리 배포는 위험을 빠르게 감지할 수 있는 배포 전략이다.
- 지정한 서버 또는 특정한 유저에게만 배포한 후, 정상적으로 작동한다고 하면 전체 배포를 진행한다.
- 서버 트래픽의 일부를 신 버전으로 분산하여 오류 여부를 확인할 수 있다.
- 카나리 배포방식에서는 A/B 테스트가 가능하고, 성능 모니터링에 유용하다.
- 트래픽을 분산시킬 때는 라우팅을 랜덤하게 할 수 있다.
🔗 참고 자료 - keyword 별
1️⃣ 터미널 명령어 정리
🔗 #1-1 vi 명령어 정리
2️⃣ 카나리 배포 방식
🔗 #2-1 카나리 배포 방식