반응형

IT/Java 3

[Spring boot]컨테이너, 클래스로더가 뭘까? (feat. ClassNotFoundException를 곁들인)

웹 어플리케이션 컨테이너는 뭘까? == 웹 어플리케이션이 배포되는 공간 정적 파일과 동적 파일이 있다면? 정적 파일 전달 => 웹서버 동적 파일 전달 => 웹 어플리케이션 서버 or 웹어플리케이션 컨테이너(Java에서) 웹 어플리케이션 컨테이너 == WAS 그럼 WAS는 어떻게 웹어플리케이션을 인식하고 동작시킬까? 이걸 알려면 Java의 특징을 알아야한다. Java의 특징중 대표적인 것은 Write once, run anywhere. 즉, 한 번 작성하면 플랫폼 상관없이 쓸 수 있다는 점이다. 이 특징을 실행할 수 있게 하는 기술 == 클래스 로더(class loader) 그럼 클래스 로더는 뭔데? 자바 코드를 작성한 후 컴파일하면 해당 코드는 JVM에서 실행 가능한 상태가 된다. 그럼 실행하면 되잖아?..

IT/Java 2022.05.10

[Java] main() 메소드는 뭘까?

main()메소드란? 자바 응용프로그램의 실행이 시작되는 특별한 메소드 자바를 처음 시작한다면, 다음 코드를 반드시 보게된다. 항상 보게되는 이 main()메소드가 무슨 의미인지 아래 코드를 보면서 설명하겠다. public static void main(String[] args) { // 소스코드 } 1. public 다른 클래스에서 호출 가능함을 의미한다. 자바 프로그램이 실행을 시작할 때 JVM(*자바 가상 기계)에 의해 호출되어야 하므로 public 속성으로 선언되어야한다. 2. static static은 정적인 속성이며, 실행되기 전에도 호출 가능함을 의미한다.(동적은 실행되는 도중 호출되는 것) main()메소드는 자신 포함 클래스의 객체가 생성되기 전에, 처음부터 JVM에 의해 호출되므로 st..

IT/Java 2022.05.10

[Java]레퍼런스 변수란?

자바를 공부하다보면 레퍼런스 변수라는 단어가 나온다. 레퍼런스 변수는 메모리상 생성된 인스턴스를 가리키는데 사용되는 변수이다. 일반적인 데이터를 넣는 변수가 아니며, 인스턴스를 사용할때 레퍼런스 변수를 통해서만 사용 가능하다. 간단한 예시를 들자면, 아마 배열(Array)을 공부할 때 처음 나올텐데, 아래의 코드를 보자 int intArray []; int : 배열의 타입 intArray : 배열에 대한 레퍼런스 변수 [] : 배열 선언 이 상태에서는 배열 공간이 할당된 상태가 아니며, 레퍼런스 변수만 생성된 상태이다. 배열에서 intArray라는 레퍼런스 변수는 배열에 대한 주소 값을 가진다. // Tip. 배열 선언시 []안에 크기를 지정하면 안된다. intArray = new int [5]; int..

IT/Java 2022.05.09