@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for 'xxx-ssh.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "xxx-ssh.pem": bad permissions centos@ec2-xxx.ap-northeast-2.compute.a..
JAVA 를 정적분석해주는 2개의 프로그램을 소개하려고 합니다. Spotbugs는 Java의 바이트코드를, PMD는 Java 소스코드를 체크하여 정적분석을 해줍니다. 둘다 정적분석이라는 점에서는 같지만 점검하는 대상이 다르기 때문에 서로 정적분석 하는 관점도 달라지게 됩니다. 그렇기 때문에 어느 것이 더 좋다 라고 하기는 힘들고, 서로 찾아주는 문제점들이 다르기 때문에 모두 사용하는 것을 추천합니다. ( stackoverflow.com/a/4297378/1813672 ) Spotbugs Gradle 5.6 이전까지만 해도 FindBugs라는 plugin이 사용되어 왔으나 Gradle 5.6 버전 이후부터, FindBugs plugin이 삭제가 되어, 대신에 SpotBugs plugin을 사용할 수 있습니..
Gradle 버전 확인하는 방법을 알아보겠습니다. 저는 IntelliJ를 사용하고 있어서, IntelliJ IDE 화면 기준으로 설명 드리겠습니다. 1. IntelliJ( IDE ) IntelliJ의 Project Window에서 gradle > wrapper > gradle-wrapper.properties 파일을 열어봅니다. 파일을 열면 아래와 같이 내용이 나옵니다. distributionUrl의 마지막에 gradle 파일명에 버전이 나와있습니다( 6.5.1 ) distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-6.5...
JAVA 를 쓰다보면, 버전이 급격하게 다른걸 한번씩 보게 되는데 뭐지? 라고 생각은 했으나 그냥 별 생각없이 써왔었습니다. 그러다 문득 sourceCompatibility 를 설정 하다가 버전이 너무 낮은 것 같아( 1.8 ) 로컬에 설치된 JAVA 버전을 확인하니 "11.0.1" !!! 음?? 너무 버전차이가 심한것 아닌가 싶어서 알아보게 되었습니다. 먼저 gradle에 sourceCompatibility 설정 값을 찾아보니, 아래와 같이 JavaVersion.class에 enum type으로 정의가 되어있습니다. VERSION_1_1 VERSION_1_2 VERSION_1_3 VERSION_1_4 VERSION_1_5 VERSION_1_6 VERSION_1_7 VERSION_1_8 VERSION_1..
보통 로컬 PC에 있는 Postman 을 사용해서 HTTP 요청을 보내고, 속도가 얼마나 나오고 응답 크기가 얼만지 확인을 하는데 피치 못하게 보안상 이유로 방화벽 때문에 Postman 을 사용하지 못하는 경우가 있어 cURL 로 요청을 보내고, 응답을 파일에 저장 및 응답 속도를 출력하는 방법을 알아보겠습니다. 아래에 요청과 응답의 예제가 있습니다. $ sudo curl -w "@curl-format.txt" -o response.json -XGET 'host:port/api' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 118k 0 118k 0 0 199k 0 ..
평소처럼 리눅스에서 자바 앱을 실행했는데 갑자기 아래와 같이 경고가 뜨는 경우가 있습니다. 분명 프로그램은 기존에 쓰던 것 그대로 인데,, 경고가 떠서 당황스러울 때가 있습니다. OpenJDK 64-Bit Server VM warning: Insufficient space for shared memory file: Try using the -Djava.io.tmpdir= option to select an alternate temp location. 그럴 때는 PC의 용량을 확인해 보면, 100% 다 찬것을 확인할 수 있는데 정리를 좀 해주면 다시 뜨지 않습니다. $ df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 20G 0 100% /
로컬 환경이나, 다른 서버에서는 잘 되던 jps 가 어떤 서버에서는 되지 않는 경우가 있습니다. 여기서 "되지 않는다"는 건, jps 를 입력했는데 아무런 결과가 없다는 말입니다. jvm 인스턴스가 하나도 없더라도 Jps 에 대한 결과는 나와야되거든요. [abc@비정상서버 ~]$ jps [abc@비정상서버 ~]$ [abc@정상서버 ~]$ jps 10944 Jps 그래서 자바 버전도 확인하고, 환경변수도 보고 뭐 이래저래 찾아보다가 아래 stackoverflow 질문을 보게 되었습니다. ( stackoverflow.com/questions/3805376/jps-returns-no-output-even-when-java-processes-are-running ) 자바 프로세스가 돌아가고 있는데도, 아무런 결..
컴파일러 란? 흔히 컴파일러란, 고차원의 언어를 저차원의 즉 기계어로 옮기는 과정으로 이해를 하고 있습니다. 여기서 기계어란 H/W 가 이해할 수 있는 어셈블리어를 떠오르게 됩니다. 이게 전혀 틀린 말은 아니지만, JAVA 의 컴파일을 보다보면 조금 의아한 의문점이 생깁니다. 컴파일러에 대해 다시 한번 보고, C 언어의 컴파일과 JAVA 의 컴파일에 대해서 한번 알아 보겠습니다. 위키에 컴파일러를 찾아보면, 특정 프로그래밍 언어로 쓰고 있는 문서를 다른 프로그래밍 언어로 옮기는 프로그램을 뜻하며, 소스코드( 원시 코드 )를 목적코드로 출력한다고 합니다. C 계열의 언어를 예로 들면 C언어를 컴파일 하면 기계어인 어셈블리어로 변환이 되며 이는 H/W에서 이해할 수 있는 언어입니다. 자바에서 컴파일을 하면 ..
CPU 확인하는 방법 1. /proc/cpuinfo /proc/cpuinfo 의 파일 내용을 보는 방법이 있습니다. 각 CPU Core의 개별 상세 정보를 모두 볼 수 있습니다. $ cat /proc/cpuinfo processor: 0 vendor_id: GenuineIntel cpu family: 6 model: 85 model name: Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz stepping: 4 microcode: 0x1 cpu MHz: 2194.842 cache size: 4096 KB physical id: 0 siblings: 1 core id: 0 cpu cores: 1 apicid: 0 initial apicid: 0 fpu: yes fpu_excepti..
static 은 객체가 아닌 클래스에 할당이 됩니다. 그래서 A 클래스에 여러 객체가 생성되어도 static 은 같은 메모리를 참조하고 있습니다. static 은 클래스가 최초 로딩될 때 수행 되며, static 초기화 블록은 순차적으로 읽혀집니다. 이를 바탕으로 아래 예제를 살펴봅시다. public class Main { static private String val = "Hello"; static { val = "static block"; } public static void main(String[] args) { System.out.println(val); } static { val = "static block2"; } } 결과 static block2 Static 사용 static 을 어떻게 잘...
- Total
- Today
- Yesterday
- Size
- spring boot
- tomcat
- intellij
- Log
- gradle
- Spark
- Filter
- JSON
- install
- SpringBoot
- scala
- docker
- Git
- Container
- Index
- logstash
- mac
- AWS
- Linux
- apm
- elasticsearch
- maven
- error
- plugin
- Kibana
- Java
- spring
- Postman
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |