Backend/JAVA 2

🙀 log4j 보안 취약점 발견 기념(?)으로 짧게 공부하기

log4j 보안 취약점이 나타난지 벌써 1달 정도가 넘었다. 엄청나게 큰 보안 이슈이다 보니까 빠르게 패치를 끝낸 상황일텐데, 그 상황을 지켜보면서, 내가 모르는게 너무 많아서 아주 짧게나마 공부해보고자 한다. 로그를 찍는다..! 근데 왜 라이브러리로? 로그를 찍을 때, 나는 System.out.println("######## 여기여기 ##########"); 이렇게.. 막 찍었다. 일단 로그를 찍는 라이브러리가 있는지 몰랐다! 그래서 System.out 을 이용하여 나의 로그를 여기저기에 남기고 다녔다. 그러다가 교육을 받으면서 다양한 라이브러리들이 존재함을 알게 되었다. System.out 으로 쓰는 대신에 사용하라고 했다. 근데 '왜?' 인지는 몰랐던 것 같다. '왜'일까? ~와 같은 다양한 이유들..

Backend/JAVA 2022.01.04

🙌JVM이 무엇이고 자바 코드가 어떻게 실행되는가 (수정,,)

JAVA 실행 과정 JVM을 설명하기 전에 왜 저것을 알아야 하는지를 위해, JAVA 실행 과정을 간단한 사진으로 빠르게 설명하고자 한다. 위 그림과 같이 우리는 MyProgram.java라는 파일에 간단한 소스코드를 작성했다. 이를 실행하기 위해 나는 이클립스에서 CTRL + F11을 눌렀다. 그리고 그 결과가 나왔다. 컴퓨터는 우리가 작성한 JAVA 코드를 읽을 수 있는걸까? 정답은 아니다! 컴퓨터는 자기가 이해할 수 있는 기계어로 작성되어져야 우리가 실행하고자 하는 바를 할 수 있다. 우리가 작성한 자바 소스 코드를 기계어로 변환하기까지 위와 같은 과정이 이루어지는 것이다. MyProgram.java를 컴파일러가 MyProgram.class 바이트 코드로 변환하고 OS에 맞게 설치된 JVM이 컴퓨터..

Backend/JAVA 2021.01.19