본문 바로가기

프로그래밍 언어/java

(5)
Java는 왜 컴파일러와 인터프리터를 같이 사용하는가? 배경예전에 C를 배우고 Python을 배울 때, 약간 의문이 들었던 것이 있다.❓왜 Python은 C랑 다르게 더 느린 Interpreter를 사용하지?✅ Python의 설계 철학은 더 쉽고 더 용이한 개발을 추구하는 것이다.Python이 Interpreter를 사용함으로 얻는 장점컴파일 과정없이 코드를 빠르게 실행할 수 있어서 개발과 테스트를 빠르게 할 수 있음.한 줄씩 실행하므로 디버깅이 용이함.동적 타이핑(C나 Java처럼 타입이 정적으로 정해지지 않아도 되는것).이식성이 높음.위의 이유로 언어마다 추구하는 장점이 다른 것으로 이해하고 넘어갔다.하지만 Java는 컴파일러와 인터프리터를 모두 사용한다.Java 실행과정java 실행과정을 간단히 살펴보면 아래와 같은 순서로 실행된다.우선 Java 컴파일..
자바는 어떻게 동작하는가? 자바가 어떻게 동작하는지 알기 위해서는 일단 Java 플랫폼의 핵심 구성 요소에 대해서 알 필요가 있습니다.다음은 자바의 핵심 구성요소에 대한 간단한 설명입니다.JDK (Java Development Kit) JDK는 Java 애플리케이션을 개발하기 위한 소프트웨어 개발 키트입니다.Java 컴파일러(javac)를 포함하여 소스 코드를 바이트코드로 변환합니다.디버거, 아카이브 도구(jar) 등 개발에 필요한 다양한 도구를 제공합니다.JRE를 포함하고 있어 개발한 애플리케이션을 실행할 수 있습니다.Java API 문서와 소스 코드도 포함되어 있습니다.JRE (Java Runtime Environment) JRE는 Java 애플리케이션을 실행하기 위한 환경입니다.JVM과 Java 클래스 라이브러리를 포함합니다..
입출력 객체는 왜 close 해줘야 하는가? close()BufferedReader와 Scanner 클래스는 java.io.Closeable 인터페이스를 구현하고 있다. Closeable 인터페이스는 AutoCloseable 인터페이스를 상속받고 있고 이는 해당 클래스가 시스템 리소스를 사용하는 클래스이며, 사용 후 명시적으로 리소스를 해제해야 함을 의미합니다. 따라서 리소스 누수 혹은 메모리 누수를 막기 위해서 사용이 끝난 후 명시적으로 close() 메서드를 호출하여 리소스를 해제하는 것이 좋다.https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/BufferedReader.htmlhttps://docs.oracle.com/en/java/javase/17/docs/api/ja..
Java 입출력 BufferedReaderSystem.in 은 자바에서 표준 입력 스트림을 나타낸다.InputStreamReader 는 바이트 스트림인 System.in 을 문자 스트림으로 변환한다. 즉, 바이트 단위로 입력받은 데이터를 char 단위로 처리할 수 있게 해준다.BufferedReader 는 문자 입력 스트림에 버퍼링을 수행한다.readLine() 메서드는 BufferedReader 객체를 통해 호출되며, 사용자로부터 한 줄의 문자열 입력을 받는다. 이 메서드는 사용자가 입력한 데이터의 끝을 나타내는 엔터(Enter) 키를 입력할 때까지 기다린다.읽을 줄이 없거나 입출력 오류가 발생하면 IOException 을 발생시킬 수 있다.만약 입력 소스의 끝에 도달하거나 더 이상 읽을 데이터가 없으면 readLin..
데이터를 미리 로드하고 Rserve 실행 내용Rserve 환경과 Rscript, Rstudio 환경과의 차이 발생에 따른 문제가 발생했다.코드의 결과가 다른 문제였는데 조사과정에서 어떤 매개변수에서 특정 데이터가 출력되지 않는 것을 알게되었고 데이터 로드가 잘 안되지 않을까? 하는 의문을 갖게 되었다.→ Rserve 환경에서 필요한 데이터를 미리 로드해두고 추후 함수만 호출해서 사용하고 싶다..해결과정메모리 크기가 문제가 아닐까 생각해서 Rserve의 메모리 설정을 알아보았으나 따로 적절한 정보를 얻지 못했다. (추후 알아보니 Rserve의 메모리 설정은 R 버전이 발전하면서 사라졌다고 한다.)Rstudio등 R을 실행하는 환경과 Rserve의 환경이 다르다면 Rserve를 실행할 때 미리 데이터를 로드해두고 R 서버를 시작하는 방법이었다. R..