JAVA 25

Java의 역사

더보기 JVM이란? 자바 가상머신(Java Virtual Machine)이라고 부르고 우리가 작성한 자바프로그램이 수행되는 프로세스를 의미한다. 자바는 플랫폼(OS)에 종속되지 않지만 JVM은 플랫폼에 종속이 된다. 예를 들어 JVM은 윈도우용 JVM과 리눅스용 JVM이 있기 때문에 플랫폼에 종속이 된다. 위처럼 자바 프로그램 실행 과정에서 컴파일된 바이트코드가 JVM으로 넘어왔을 때 컴퓨터가 프로그램을 실행할 때마다 JVM의 구성 요소중 하나인 인터프리터에 의해 계속해서 기계어로 해석해주면서 프로그램이 실행되게 된다. 자바 사용자가 코드를 작성하여 실행하면 자바 컴파일러(javac)에 의해서 1차적으로 컴파일이 되는데 이때 javac에 의해서 사용자가 작성한 코드가 바이트코드가 되는데 바이트코드란? 어..

JAVA 2023.03.12

Spring framework 핵심기술 - IoC 컨테이너

더보기 IoC컨테이너란? 객체를 생성하고 의존성을 관리해주는 컨테이너 인스턴스의 생성부터 소멸까지 개발자가 아니라 IoC컨테이너가 관리함 더보기 Bean이란? IoC컨테이너가 관리하는 객체 의존성 관리가 용이하다. 스코프(싱글톤객체로 관리가 용이) 라이프사이클 인터페이스 관리가 용이하다. 싱글톤 객체란? 해당 bean에 인스턴스가 오직 하나인 것을 의미(default값) 더보기 ApplicationContext란? 스프링 컨테이너라고 부름 public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher..

JAVA 2023.01.05

자바 I/O 와 NIO 차이

NIO란? NIO는 NewInputOutput의 약자이며 기존에 있던 I/O의 새로운 버전이라고 생각하면 된다. I/O와 NIO의 차이에 대해서 설명하기 전 가장 큰 차이는 버퍼의 유무입니다. 버퍼란? 쉽게 말해 임시적으로 사용하는 임시 저장 공간을 의미합니다. I/O vs NIO I/O NIO 입출력 방식 Stream Channel 버퍼 유무 X O 비동기 방식 X O 위의 표가 I/O와 NIO의 차이에 대해 정리한 표이다. 근데 갑자기 비동기 방식에 대한 차이에 궁금한 독자들도 있을 것이다. 동기 vs 비동기 동기란? 쉽게 말해서 일의 순서가 있다는 것을 의미한다. 예를 들어 어떤 사용자가 누군가에게 문자를 전송했을 때 수신자에게 문자가 올 때 까지 발신자는 누구에게도 문자를 보내지 못하는 것과 비슷..

JAVA 2022.06.14

I/O란?

I/O는 우리가 만든 프로그램에 있는 어떤 내용을 파일에 읽거나 저장할 일이 있을 때, 혹은 다른 서버나 디바이스로 보낼일이 있을 때 종종 사용한다. 그렇다면 위의 정의를 빗대어 I/O는 약자를 의미하는데 I는 Input(입력), O는Output(출력)을 의미하는걸 알 수 있다. 파일의 입출력에는 크게 바이트 스트림과 문자스트림을 나뉠 수 있다. 우선 문자스트림에 대해 이야기 해보겠다. 문자 스트림 문자 스트림이란 문자 단위로 읽고 쓰는 것을 의미합니다. 대표적으로 문자스트림에는 Reader 와 Writer의 abstract클래스가 존재합니다. Reader Reader는 문자 기반 입력스트림의 슈퍼 클래스로 추상클래스이다. Reader클래스에는 문자입력 스트림이 가져야 할 기본적인 메소드들이다. 메소드 ..

JAVA 2022.06.14

JAVA? 변수의 종류

프로그래밍 언어 중에는 다양한 언어가 있는데 저는 그 중에서도 최근에 공부하고 있는 "자바"에 대해서 말을 해보겠습니다. 자바에는 많은 변수가 존재한다. 그래서 오늘은 자바 변수에 대해서 설명을 할려고 합니다. ​ "변수" 란 계속 변하는 값을 저장하는 공간을 의미 합니다. 그럼 몇몇의 사람들은 '왜 제목이 변수의 종류이지' 라는 의문을 가지는 사람이 있을 수도 있다. 자바에서 변수는 하나만 존재하는 것이 아닌 "클래스변수", "인스턴스변수", "지역변수" 이렇게 총 3가지가 있다. ​ 먼저 "클래스 변수"에 대해 설명을 하겠다. ​ 클래스 변수는 다음에서 설명할 인스턴스변수와 선언되는 위치가 동일한데 변수 앞에 "static" 이라는 것이 붙으면 그게 클래스변수가 된다. 클래스변수는 변수들이 공통된 저..

JAVA 2022.06.14