본문 바로가기

분류 전체보기

(16)
[IntelliJ] Build Tools -> Gradle 설정으로 더 빠르게 실행하기 preferences -> Build, Execution, Deployment -> Build Tools -> Gradle -> Build and run using / Run tests using => 아래의 그림처럼 Gradle로 되어 있을텐데 두개 모두 IntelliJ IDEA로 설정해준다. IntelliJ IDEA에서 Build and run using, Run tests using 옵션을 사용하면 Gradle을 사용하는 것보다 더 빠른 속도로 애플리케이션을 빌드하고 실행할 수 있습니다. Gradle을 사용하는 것보다 더 빠른 이유는 다음과 같습니다. 1. Gradle 설정이 필요하지 않음 IntelliJ IDEA에서 Build and run using, Run tests using 옵션을 사용하면..
[Docker] 쌓이는 image&container 정리 Docker를 사용하는 경우 쌓이는 이미지와 컨테이너의 수가 많아질 수 있습니다. 이는 디스크 공간을 많이 차지하며, 성능 문제 및 보안 취약성 등의 문제를 일으킬 수 있습니다. 또한, 빌드가 되지않는 에러가 발생할 수 있습니다. 따라서, Dcoker 이미지 및 컨테이너를 주기적으로 관리하는 것이 좋습니다. 1. 사용하지 않는 Docker 리소스 제거 docker system prune -a 위의 명령어를 사용하여 다음과 같은 리소스들을 제거합니다. 사용되지 않는 이미지 (dangling images) 종료된 컨테이너 (exited containers) 사용되지 않는 볼륨 (dangling volumes) 사용되지 않는 네트워크 (dangling networks) 모든 리소스를 제거하기 위해 "-a" 플..
[Docker] 로컬에서 성공했지만 도커로 배포 시 [No such file or directory] 오류 Firebase 클라우드 메시징(FCM)을 이용하는 서버를 개발하고, 로컬에서 실행 성공 후 도커를 이용하여 aws ec2에 배포하였습니다. 빌드는 성공했지만 실행 시 로그에 자꾸 아래와 같은 에러가 떴습니다. Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.google.firebase.FirebaseApp]: Factory method 'firebaseApp' threw exception; nested exception is java.io.FileNotFoundException: src/main/resources/파일이름.json (No such file or directory) FCM을..
[Spring] byte 타입으로 변수 선언 시 java.lang.NullPointerException: null 에러발생 DTO에 private byte parity로 변수 "parity"를 byte타입으로 선언하였습니다. java.lang.NullPointerException: null 에러가 발생했습니다. 이 에러는 parity 변수에 초기값을 주지 않았기 때문에, 해당 변수는 기본적으로 null 상태인데 byte 타입의 변수는 null값을 가질 수 없기 때문에, 이 변수가 null 상태에서 사용될 경우 java.lang.NullPointerException: null 오류가 발생했습니다. 따라서, 해당 변수에 초기값을 할당해주어야 합니다. ex) private byte parity = 0 -> null이 아닌 0으로 초기화
[Spring] MyBatis resultType="Boolean"사용하기 resultType을 boolean으로 사용하면 조건에 따라 1,0으로 true, false를 리턴할 수 있습니다. 아래 예시와 같이 작성하면 item table에 id가 #{id}인 데이터가 한개일 때 1, 그 외에 0를 리턴합니다. 유효성검사에 유용하게 사용할 수 있습니다. 잘못된 사용법 SELECT IF(COUNT(*) = 1, true, false) 올바른 사용법 ex) SELECT IF(COUNT(*) = 1, 1, 0) FROM item WHERE id = #{id}
[Linux] 명령어 정리 - 패키지 관련 명령어 패키지 설치 sudo apt-get install 패키지명 -> sudo : 권한 상승 명령어 -> apt-get 어떤 라이브러리에 의존성이 있는지를 파악해서 해당 라이브러리까지 같이 자동으로 설치해주는 명령어 대부분의 프로그램들은 혼자 동작하지 않습니다. 수많은 라이브러리를 참조하면서 동작하는게 보통입니. 프로그램마다 필요한 라이브러리가 전부 다르고, 같은 라이브러리를 쓴다고 해도 서로 요구하는 라이브러리의 버전이 달라서 이를 관리하기가 매우 까다로웠습니. 우분투의 패키지 관리는 이러한 문제점을 사용자가 고민하지 않도록 패키지 서버를 운영하고 있습니다. 수많은 패키지를 보유하고 있으면서 패키지들의 각각 라이브러리 의존성 정보도 같이 관리해줍니다. 그러나 몇가지 단점도 존재하는데, 우선 인터넷에 접속이 ..
[GithubAction] github action -> github에서 제공하는 CI(Continuous Integration, 지속 통합)와 CD(Continuous Deployment, 지속 배포)를 위한 서비스입니다. github에서 제공하는 컴퓨터. ex) 작업을 끝내고 github에 push -> github action에서 빌려준 컴퓨터로 자동으로 코드 테스트 실행 -> 실행 결과 이상이 없다면 실제 서비스를 하고 있는 서버로 업로드를 해서 서비스에 적용 -> 담당자들에게 서비스가 잘 적용되었다고 메시지 전송 push, pull request 등 이슈의 발행과 같은 사건이 저장소에서 일어났을 때 자동으로 처리해야 하는 일을 할 수 있도록 해주는 도구가 action입니다. Events that trigger workfl..
[Linux] 명령어 정리 - 파일&디렉토리 현재 파일 경로 확인 pwd 홈 디렉토리로 이동 cd ~ 현재 디렉토리에 있는 파일과 서브 디렉토리 목록보기 ls : 간단하게 보여주기 ls -l : 자세하게 보여주기 파일 복사하기 cp 원본파일 대상파일 ex) /home/sg/example.desktop파일을 /home/sg/test.desktop 파일로 복사 -> cp /home/sg/example.desktop /home/sg/test.desktop 만약 현재 디렉토리가 /home/sg라면 생략가능 -> cp ./example.desktop ./test.desktop * ./ : 현재 디렉토리를 나타냄(. : 현재 디렉토리, .. : 상위 디렉토리) 파일 이동하기 파일 복사하기 와 동일 but 명령어 : mv 디렉토리 복사 및 이동 파일 복사 및 ..