이전에 사용한 방법: nohup 원래 jar파일을 배포할 때 nohup이라는 명령어를 자주 썼다. nohup 명령어의 동작 방식은 다음과 같았다. nohup java -jar springProject.jar & ps -ef kill -9 [pid] nohup 으로 jar파일을 백그라운드로 실행시킨다 만들어진 프로세스를 확인한다 만들어진 nohup.out 파일로 로그를 확인한다 해당 프로세스를 ps 명령어로 조회한 후 kill해서 종료시킨다 문제점 깃허브 액션으로 배포자동화를 하여 스크립트를 실행하려고 했는데, 이전 방법에서 ps -ef로 해당 pwd를 찾아 프로세스를 삭제하기 너무 어렵다고 생각하였다. nohup을 대신할 방법이 systemctl 명령어라고 하여 방법을 찾아봤다 Systemd(System..
전체 글
공부중인 학생입니다! 글에서 틀린 곳이 있으면 지적 부탁드립니다 블로그 이사 https://velog.io/@joohr1234문제상황 깃허브 액션으로 NCP에 배포동화를 하는 도중 발생 host, username, password, port 모두 잘 넣어줬는데도 해당 오류가 발생 문제해결 - name: Execute remote SSH commands to restart server uses: appleboy/ssh-action@master with: host: ${{ secrets.SERVER_IP }} username: username password: ${{ secrets.DEPLOYMENT_PASSWORD }} port: ${{ secrets.SERVER_PORT }} script: | sudo systemctl stop myapp ... username을 제대로 넣어주지 않아 발생함 수정하니 잘 돌아가는 것을 확인할 ..
[Java] java.lang.IllegalStateException: Module entity with name: [] should be available 자바, 인텔리제이 오류
문제상황 깃허브에서 프로젝트를 clone 받은 상태 gradle을 reload할 때 해당 오류가 발생 sdk와 gradle을 맞게 세팅했음에도 해당 오류가 뜸 문제해결 setting.gradle의 프로젝트 이름을 정확하게 적기(대소문자까지 정확하게) 참고한 블로그 https://potwings.tistory.com/49
보호되어 있는 글입니다.
보호되어 있는 글입니다.
REST API를 개발하면서 버전이 올라가도 기존 버전의 API는 사용할 수 있도록 하고싶어 이 포스팅을 작성한다. 클라이언트는 API 버전이 변경될 때마다 애플리케이션을 업데이트하고 싶지 않을 수 있다. API버전을 관리한다면 새로운 버전을 만들되, 이전 버전을 계속 유지할 수 있을 것이다. 이전에 진행했던 프로젝트에서는 버전을 관리하려고 했지만 디렉토리 구조도 제대로 잡지 않았고, 결국 하나의 버전에 바로바로 수정사항을 추가하는 식으로 개발하였다. 이번 프로젝트에서는 디렉토리 구조도 잘 짜고 네이밍도 제대로 하여 API 버전을 관리하고싶어 공부해보려고 한다. 참고사항: 백엔드는 springboot로 api를 작성하고 프론트에서 이를 받는 식으로 개발 Version 관리할 때 중요한 점 URI가 지저분..
https://www.acmicpc.net/problem/16948 16948번: 데스 나이트 게임을 좋아하는 큐브러버는 체스에서 사용할 새로운 말 "데스 나이트"를 만들었다. 데스 나이트가 있는 곳이 (r, c)라면, (r-2, c-1), (r-2, c+1), (r, c-2), (r, c+2), (r+2, c-1), (r+2, c+1)로 이동할 수 있다. 크 www.acmicpc.net bfs를 쓰면 시간이 너무 오래걸릴 것 같아 수식으로 해결해봤다. 규칙을 찾는 데 시간이 좀 걸렸지만, 수식을 사용하기 때문에 수행시간이 빠르다. 1. 갈 수 없는 곳 판별하기 이렇게 표로 슥슥 그려보면 갈 수 없는 지점이 보인다 행(row)은 시작지점의 2의 배수만큼 떨어져 있어야하고 열(col)은 시작지점과 (2 x..
https://www.acmicpc.net/problem/9324 9324번: 진짜 메시지 스파이들은 사령부와 통신하기 위해서 SMTP(비밀 메시지 전송 프로토콜)를 사용해 비밀 회선으로 전자 메시지를 보낸다. 메시지가 적들에 의해 조작되어 보내진 것이 아닌 진짜 메시지라는 것 www.acmicpc.net 문제를 대충 읽어서 3번째만 바뀌는 줄 알았다. 알고보니 3번 째 나올 때마다 계속 두 번씩 나와야했다;; ex) A B A B AA B A B A B AA 내 풀이(HashMap 사용) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; im..
2902: KMP는 왜 KMP일까? - 브론즈2 https://www.acmicpc.net/problem/2902 2902번: KMP는 왜 KMP일까? 입력은 한 줄로 이루어져 있고, 최대 100글자의 영어 알파벳 대문자, 소문자, 그리고 하이픈 ('-', 아스키코드 45)로만 이루어져 있다. 첫 번째 글자는 항상 대문자이다. 그리고, 하이픈 뒤에는 반드 www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.security.NoSuchAlgorithmException; import java.util.StringTokenizer; public c..
BASE64란? 8bit 이진 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 문자로 표현하기 위해 만들어진 인코딩 방식 ASCII문자 하나는 64진법의 숫자 하나를 의마한다 (base64를 번역하면 64진법이라는 뜻) 전자메일을 통한 이진 데이터 전송 등에 많이 사용 Base64 변환 표는 다음과 같다(출처: 나무위키) https://www.acmicpc.net/problem/10935 10935번: BASE64 인코딩 첫째 줄에 문자열 S가 주어진다. S는 알파벳 대문자와 소문자, 그리고 숫자로만 이루어져 있으며, 길이는 최대 50이다. www.acmicpc.net 자바코드 public class Main { public static void main(String[] args) throws I..