나는 스타트업에서 근무하는 백엔드 개발자이다.
오늘은 단일 기능을 개발하고, 클라이언트가 바로 바로 테스트할 수 있게 테스트용 브런치 별로 배포를 진행하려고 한다.
(클라이언트의 요청 사항이었다.)
CI/CD 구축하는 것도 작성하고 있지만 오늘은 수동 배포를 하는 방법을 작성해보겠다.
ssh -i {name}.pem "username"@"domain"
이런 식으로 터미널에 치면 서버에 접속 된다.
이때 pem키에 권한 문제가 뜨면 권한을 주면 된다.
chmod 400 {name}.pem
이렇게 하면 파일 권한을 400으로 바꾸는 거다.
chmod = change mode의 약자
400
-> User : 4 : 읽기 권한
-> Group : 0 : 권한 없음
-> All : 0 : 권한 없음
여기서 숫자는 각 권한에 대응되는 숫자의 합이다.
4는 읽기, 2는 쓰기, 1은 실행에 해당한다.
예) 6이면 읽기+쓰기, 7이면 읽기+쓰기+실행 권한이라고 보면 된다.
암튼 이렇게 해서 들어가면 서버에 접속된 것이다.
ps aux | grep java
이렇게 하면 지금 실행중인 객체 중 'java'인 것들을 검색하게 된다.
시스템에서 현재 실행 중인 프로세스를 보기 위한 명령어.
ps는 프로세스 상태를 보여주고,
aux는 모든 사용자의 프로세스를 상세히 보여준다는 옵션
그런 다음 | 기호를 사용하여 출력을 다른 명령어로 전달한다.
grep은 특정 문자열을 찾기 위한 명령어로, 주어진 문자열을 찾아 그에 해당하는 라인을 출력한다.
따라서 ps aux | grep java는 현재 실행 중인 모든 프로세스를 보여주고, 이 중에서 "java"라는 단어를 포함하는 프로세스만 필터링하여 보여준다.
그러면 pid를 알 수 있다. 그러면 이 pid를 죽이면 된다
kill -9 {pid}
이렇게 하면 프로세스를 죽이는 거다.
kill: 프로세스에 시그널을 보내는 명령어.
-9: 프로세스에게 보내는 시그널 중 하나인 SIGKILL을 나타냄. 이 시그널은 해당 프로세스를 강제로 종료시킨다.
./gradlew clean
이 명령은 프로젝트를 클린(clean) 상태로 만들어서 새로운 빌드를 위한 준비를 할 수 있도록 한다.
1) 이전 빌드 과정에서 생성된 파일들을 삭제한다.
2) 빌드 과정에서 생성된 컴파일된 클래스, 라이브러리, 빌드된 실행 파일 등을 제거한다.
3) 캐시된 의존성이나 생성된 임시 파일들을 제거하여 프로젝트를 초기 상태로 되돌린다.
이 명령을 사용하면 빌드 디렉토리를 깨끗하게 초기화하여 새로운 빌드를 위한 환경을 마련할 수 있다. 기존 빌드 결과물을 제거하고 다시 빌드를 시작하려는 경우에 유용하다.
git pull origin {branch}
이런 식으로 원하는 브랜치에서 풀을 받아온다. fetch 해도 됨
./gradlew build
Gradle을 사용하여 프로젝트를 빌드하는 명령어. 이 명령을 실행하면 프로젝트의 소스 코드를 컴파일하고, 테스트를 실행하며, 빌드된 실행 파일을 생성함.
1) 의존성 다운로드: 프로젝트가 필요로 하는 외부 라이브러리 및 종속성을 자동으로 다운로드한다.
2) 컴파일: 소스 코드를 컴파일하여 실행 가능한 코드로 변환한다.
3) 테스트 실행: 프로젝트에 설정된 테스트를 실행하여 코드의 정상 작동 여부를 확인한다.
4) 빌드 결과물 생성: 빌드가 성공하면 실행 파일(JAR, WAR 등)이나 라이브러리 파일이 생성된다.
./gradlew build 명령은 프로젝트의 빌드를 수행하고, 빌드가 성공적으로 완료되면 결과물을 생성한다. 만약 빌드에 실패한다면 에러 메시지와 함께 어떤 부분에서 문제가 발생했는지에 대한 정보가 표시된다.
여기서 테스트 실행이 정말 정말 정말 오래 걸린다. 이를 대비해서 테스트를 제외하고 빌드해도 된다.
./gradlew build -x test
이렇게 하면 test가 제외하고 빌드된다.
./gradlew bootJar
명령어를 통해서 Jar 파일을 생성한다.
Spring Boot 프로젝트에서 사용되는 Gradle 빌드 도구를 통해 실행되는 명령어입니다. 이 명령은 Spring Boot 애플리케이션을 JAR 파일로 빌드하는 것이다.
java -jar your-application.jar
이 명령을 실행하면 해당 JAR 파일이 Java 가상 머신(JVM)에서 실행되며, Spring Boot 애플리케이션이 시작된다. 이를 통해 내장된 서버가 시작되고 설정된 포트에서 애플리케이션이 실행된다.
실행 중인 애플리케이션에 접근하려면 해당 애플리케이션이 구성된 포트로 웹 브라우저나 API 요청 등을 통해 접속할 수 있다.
실행하는데 너무 오래 걸린다. ^ㅜ.ㅜ^