본문 바로가기

Programming Language5

Java Start Java 라는 프로그래밍 언어에 대해서 알아봅시다!저는 왜 Java를 공부했고 Java를 통해서 앞으로 무엇을 하게 될지 간략히 소개하려고 합니다.왜 Java?객체지향 Java는 객체지향을 가장 잘 지원하는 프로그래밍 언어라고 생각합니다. 우리가 사용하는 애플리케이션들이 예전과 다르게 굉장히 다양한 기능들을 지원하고 있는데 다양한 이유들이 있겠지만 그 중 가장 중요한 원인은 객체지향이라고 생각하고 있습니다.  멀티 스레드 지원서버 환경에서 작동하는 애플리케이션을 만들기 적합한 언어입니다. 서버 환경 특성 상 여러 사용자가 동시에 접속할 수 있어야 하기 때문에 많은 서버들이 멀티 스레드를 지원하는 Java를 통해 개발됩니다. Spring 프레임워크Spring 이라는 애플리케이션 프레임워크가 있습니다. 보편.. 2024. 6. 18.
JVM Execution - 자바 코드가 기계어로 번역되기까지 이번 포스팅에서는 JVM이 어떤 식으로 자바 코드를 해석하고 실행하는지 생각하고 정리해보려고 합니다. JVM이 자바 코드를 해석/실행하는 데 이해하기 위한 3가지 개념이 존재합니다. Compilation Execution Just-In-Time Compilation (JIT) 이 3가지 개념에 대해서 알아보겠습니다. Compilation 사람이 작성한 자바 코드는 .java 라는 파일에 작성됩니다. 이 코드는 사람이 알아볼 수 있는 코드입니다. 이제 이 코드를 JVM이 이해할 수 있는 코드인 자바 바이트 코드로 변환할 수 있어야 합니다. javac라는 Java 컴파일러를 통해 .java 파일에 작성된 자바 코드를 JVM이 이해할 수 있는 자바 바이트 코드로 만들어서 .class라는 형식으로 저장합니다. .. 2023. 8. 27.
Java reflection API 이번 포스팅 주제는 reflection이 어떻게 스프링의 강력한 기능들을 지원할 수 있게 해주는지 알아보는 것입니다. 진행 동기 스프링이 지원해주는 편리한 기능들에 감탄하는 경우가 종종 있습니다. 그런데 구체적으로 이런 기능들이 어떻게 가능한 것인지 궁금해져서 ChatGpt나 구글링하면서 찾아보던중 reflection이라는 Java API의 존재에 대해 알게 되었습니다. Java Reflection Api 리플렉션이란 런타임 시 프로그램의 클래스, 메서드, 필드 및 기타 구성 요소를 검사하고 조작할 수 있는 기능입니다. 이 기능을 사용하게 되면 컴파일 시점에 정확한 타입이 결정되지 않아도 다양한 클래스 및 객체와 함께 동작할 수 있게 됩니다. 이렇게 되면 굉장히 유연하고 동적인 코드를 쉽게 작성하는 것이.. 2023. 8. 19.
Java의 동작 방식에 대하여 - JVM Architecture, ClassLoader Java 동작 방식 항상 Java는 어떤 식으로 실행되는지 궁금할 때가 많았습니다. 현재 이 글을 작성하는 시점에서도 그렇게 완벽한 이해라고는 생각하지 않지만 이번 글에서는 Java는 어떤 식으로 실행되는지 JVM과 ClassLoader를 중점으로 글을 작성해 보려고 합니다. What is JVM? JVM이란 Java Virtual Machine의 약자로 자바 바이트 코드를 실행시키기 위한 가상의 기계를 말합니다. 자바 프로그램을 실행하기 위해서는 반드시 JVM이 설치되어 있어야 합니다. JVM에는 메모리 영역이 할당되는데 Java 동작 방식 이해에 아주 중요한 개념입니다. Java Runtime Sytem JVM에 할당되는 메모리 영역은 5 영역으로 나뉩니다. PC (pc register) CPU에 P.. 2023. 7. 19.