Technology/Java 23

Java의 람다식에 대해 알아보자!!

람다식이란? 람다식이란 함수형 인터페이스를 구현한 익명 클래스의 객체로서 별도로 인터페이스를 구현한 내부 익명 클래스의 객체 생성할 필요 없이 화살표(->) 연산자를 이용해 해당 인터페이스의 메서드에 대해 한 줄로 간단히 표현한 식이다. 마치 함수처럼 작성을 하지만 실제로는 익명 클래스의 객체를 생성하는 방식으로 동작한다. 이때 당연히 익명 객체의 메서드와 람다식의 매개변수의 타입과 개수 그리고 반환 타입이 일치한다. 람다식이 등장하기 전에는 인터페이스를 사용하기 위해 다음과 같이 메서드 내에 내부 익명 클래스의 객체를 생성하여 이를 통해 인터페이스를 구현한 메서드를 사용하였다. class Main { public static void main(String[] args) { Token token = ne..

Technology/Java 2022.11.06

Java의 제네릭에 대해 알아보자!

제네릭이란? 제네릭은 자바 5에서 처음 도입된 것으로, 제네릭을 활용하면 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스를 다룰 때 컴파일러가 컴파일 시 타입 체크를 통해 런타임에 형변환 에러(ClassCastException)가 발생하는 것을 방지할 수 있다. 아울러, 컴파일 시에 검사를 해주므로, 객체의 타입 안정성을 높이고 형변환의 번거로움도 줄여준다. 예를 들어, 제네릭을 사용하지 않은 List 컬렉션을 다룰 때는 다음과 같은 문제가 있다. List numbers = new ArrayList(); numbers.add(1); numbers.add("2"); int sum = 0; for (Object o : numbers) { sum += (Integer) o; // ClassCastExce..

Technology/Java 2022.10.28

Java의 입출력(I/O)에 대해 알아보자!

입출력이란? 입출력(I/O)이란 입력(Input)과 출력(Output)을 줄여서 나타낸 것으로, 컴퓨터 내외부의 장치 또는 프로그램들 간의 데이터를 주고받는 것을 의미한다. 예를 들면, 키보드로 특정 데이터를 입력해서 화면에 출력시키는 것이 있으며, 또한 클라이언트와 서버간 데이터를 주고받는 웹 통신 역시 일종의 입출력에 해당된다. 이때 자바에서 입출력 시 기반이 되는 대표적인 것으로 스트림(Stream), 버퍼(Buffer), 채널(Channel)이 있다. 스트림(Stream) 기반의 입출력 자바 입출력에서의 스트림이란 데이터를 운반하는데 사용되는 연결 통로이다. 이때, 스트림은 단방향 통신만 가능하기 때문에, 입력과 출력을 동시에 처리할 수 없어 입력을 위한 입력 스트림과 출력을 위한 출력 스트림으로..

Technology/Java 2022.10.23

애노테이션을 정의하는 방법과 메타 애노테이션의 종류

해당 글은 자바에서 애노테이션을 정의하는 방법과 기본적으로 제공하는 애노테이션들 중 메타 애노테이션에 대해 다루는 글로, 자바에서 사용되는 애노테이션에 대한 기초 개념과 표준 애노테이션에 대해선 아래 글을 참고할 수 있다. Java의 애노테이션(Annotation) 기초 잠깐! 알쓸신잡, Annotation의 한글 표기법 : 애노테이션? 어노테이션? ※ TMI : Method → 메소드 X, 메서드 O 애노테이션이란? 애노테이션의 사전적인 뜻은 '주석'으로서 소스 코드의 동작에 직접적인 ikjo.tistory.com 애노테이션을 정의하는 방법 앞서 애노테이션 기초를 다룰 때에는 단순히 자바에서 기본적으로 제공하는 표준 애노테이션을 사용하는 방법에 대해서만 다루었는데, 이번에는 애노테이션을 직접 정의하는 ..

Technology/Java 2022.10.11

Java의 애노테이션(Annotation) 기초

잠깐! 알쓸신잡, Annotation의 한글 표기법 : 애노테이션? 어노테이션? ※ TMI : Method → 메소드 X, 메서드 O 애노테이션이란? 애노테이션의 사전적인 뜻은 '주석'으로서 소스 코드의 동작에 직접적인 영향을 주지 않으면서, 메타데이터(metadata)의 한 형태로서 프로그램에 대한 정보를 제공하는데 사용된다. 이때 애노테이션은 다른 프로그램을 위한 정보로서 해당 프로그램에 미리 정의된 종류와 형식으로 작성된다. Annotation vs Comment 앞서 애노테이션의 사전적인 뜻은 '주석'이라고 언급했는데, 참고로 일반적으로 우리들에게 '주석'이라고 하면 // ~ 또는 /* ~ */ 와 같이 소스 코드에 대한 부연 설명을 나타내는 것(컴파일러는 이를 무시한다.)을 떠올릴 수 있다. 사..

Technology/Java 2022.10.09