본문 바로가기

전체 글65

gradle - jar 빌드 및 실행 gradle을 이용해 프로젝트를 관리한 경우, IDLE 환경에서 단축어로 실행시키는 것 말고 터미널 커맨드를 활용한 실행을 알아보자! 먼저 gradle이 프로젝트 빌드 관리를 하고 있기에, gradle을 활용한 프로젝트 빌드를 먼저 해주자! gradle과 gradlew가 있을 텐데,, gradle은 로컬환경에 있는 gradle을 사용하는 것이고, gradlew의 경우 wrapper 형식으로 빌드시 필요 버전으로 로컬이 아닌 프로젝트에 종속적인 gradle의 버전을 활용하게 된다. 때문에 어느 환경이던 프로젝트가 실행되는 것이 중요하기 때문에 gradlew로 빌드를 한다. 빌드 ./gradle build ./gradlew clean build // clean build, cache된 값 사용하지 않음 이 .. 2024. 2. 1.
nohup - 프로세스 백그라운드 실행 터미널에서 실행하는 프로그램 즉 프로세스들은 터미널이 종료되면 프로세스들도 같이 종료된다. 터미널이 종료되는 것을 세션의 끊김이라 표현하고, logout이라고도 표현한다. 이때 터미널이 종료됨과 함께 hup이라는 signal을 보내 해당 터미널을 통해 실행된 프로세스들을 종료하는 신호를 보낸다. 이 경우에 'hup 시그널을 받아도 받지 않은 것처럼 있겠다~~' 가 바로 nohup이다. 예시와 함께 좀 더 이해하자! 여기 ABC.jar 파일이 있다. 이를 실행시키기 위해서는 아래와 같이 터미널에 입력한다. java -jar ABC.jar 근데 이렇게 입력하게 되면, 터미널의 한창이 ABC.jar 파일을 실행하느라 다른 작업을 못하게 된다. 따라서 터미널 화면을 볼 수 있고, ABC.jar도 함께 실행되도록.. 2024. 2. 1.
return Boolean과 return Function의 차이 return 함수 와 그냥 일반 return의 차이 아래 두 함수는 단순하게 생각해본다면, if 조건에 맞다면 return True를 하는 함수로 이해할 수 있겠지만, 실행결과는 다르게 나온다. def dfs1(): if 조건: return True for i in range(4): return dfs1() def dfs2(): if 조건: return True for i in range(4): if dfs2(): return True dfs1 함수는 for 문이 있기 때문에 자칫 4번 실행되지 않나? 라는 착각을 할 수 있다. (나다..) 그러나, i = 0일때만 for문을 스캔하고 해당 for문에서 return True가 되지 않는다면 함수가 끝나 return 되기 때문에 그 다음인 i=1, 2, 3.. 2024. 1. 30.
[AWS] S3 AccessControlListNotSupported 개발을 하며 테스트로 AWS S3에 파일 업로드 요청을 보낸 후 마주친 문제이다. 에러코드는 아래와 같다 com.amazonaws.services.s3.model.AmazonS3Exception: The bucket does not allow ACLs (Service: Amazon S3; Status Code: 400; Error Code: AccessControlListNotSupported; Request ID: {requestId}; S3 Extended Request ID: {id}; Proxy: null) 해결 방법 해결 방법으로는 해당 버킷의 설정에서 ACL을 활성화 해주면 된다! ACL이란, Access Control List로 활성화된 버킷과 객체들의 접근 권한 설정이다. 버킷을 생성한 a.. 2024. 1. 26.