IT/개발(자바, 서블릿, 스프링 등)
-
[Java] 컬렉션 개요IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 27. 23:31
컴퓨터공학에서는 '자료구조' 분야가 있다. 자료구조는 많은 양의 데이터를 효율적으로 관리(추가, 검색, 삭제, 삽입)하고자 데이터를 저장하는 방법이다. 자바는 여러 가지 자료구조 알고리즘을 API로 제공한다. 덕분에 우리는 복잡한 알고리즘을 몰라도 API를 사용해 자료구조를 구현할 수 있다. 이처럼 자료구조를 통해 데이터 그룹을 효율적으로 처리할 수 있도록 지원하는 자바 API들을 '자바 컬렉션 프레임워크'라고 한다. 여러 가지 자료구조 알고리즘을 미리 구현하여 데이터를 효율적으로 처리하는 자바 API다. 컬렉션 API는 List, Set, Map 3가지 계열이 있다. 표 Iterable 인터페이스의 메서드 제어자 및 타입 메서드 설명 default void forEach(Consumer c) 매개변수로..
-
[Java] 어노테이션IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 25. 19:34
어노테이션(annotation)은 실행하고는 상관없이 자바 소스코드에 주석문처럼 추가하는 부가적인 정보다. 어노테이션은 서로 다른 이름으로 구성된 정보들을 가지는 하나의 단위이며 이것을 메타데이터(metadata) 라고 한다. 어노테이션과 메타데이터는 같은 의미이며 보편적으로 많이 사용하는 용어는 어노테이션이다. 어노테이션은 컴파일러를 비롯해 개발에 사용되는 여러 도구에 정보를 제공할 목적으로 사용한다. 1. 어노테이션 개요 어노테이션 선언 [어노테이션 선언] @interface 어노테이션명 { 데이터타입 변수명(); } 인터페이스를 선언하는 방법과 비슷하다. interface 대신 @interface 키워드를 사용한다. @interface Check { String name(); int val(); }..
-
[Java] 제네릭 개념 정리IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 24. 20:52
ㅇ1. 제네릭이란? 자바는 90년대 1.0이 발표된 이후 꾸준하게 업데이트하여 현재 자바 11 버전까지 발표되었다. 새로운 버전이 발표될 때마다 기능이 추가되었는데 그중 자바 언어의 많은 변화를 가져온 것이 JDK 5에서 소개된 제네릭이다. 제네릭은 소스에서 데이터 타입을 프로그래밍할 때 결정하는 것이 아니고 실행할 때 결정하게 하는 기능이다. 매개변수로 받아서 데이터 타입을 결정한다고 해서 제네릭을 '매개변수 타입(parameter type)'이라고도 부른다. JDK에 제네릭이 포함됨으로써 기본자바 API들도 많이 변경되었다. 가방에 책, 연필통, 노트를 담는 작업을 자바 언어로 구현한다고 가정하자. 가방, 책, 연필통, 노트는 객체이므로 다음 코드처럼 각각 클래스로 만들어야 한다. 클래스 선언이 완료..
-
[Java] 예외 처리하기IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 24. 16:26
오류가 발생하면 프로그램이 강제로 중단되거나 원하는 결괏값을 도출할 수 없다. 개발 단계에서 오류를 예측하고 적절하게 대처해야 한다. 자바에서 발생하는 오류는 예외(Exception)와 에러(Error) 두 가지 종류가 있다. 이 중 '예외'는 프로그램을 잘못 구현해서 발생하고 프로그램 내에서 처리할 수 있는 오류다. 따라서 우리가 처리할 수 있는 예외에 대한 내용만 살펴본다. 1. 자바 예외 API 자바는 객체지향 언어이므로 모든 기능은 객체에 기반을 두고 처리한다. 오류 처리 또한 객체로 처리한다. 관련 API를 Java SE에서 제공한다. java.lang 패키지의 Exception 항목과 Error 항목으로 구분되어 있다. 예외 처리 객체 구조 오류에 관한 최상위 객체는 java.lang의 Thr..
-
[Java] 유틸리티 API (4) java.utilDate / java.util.Calendar 클래스IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 19. 22:56
Date 클래스 Date는 시스템의 날짜와 시간 정보를 가지는 API다. 여러 국가들의 날짜 형식을 지원하지 않는다. 간단한 날짜와 시간 정보가 필요할 때 사용한다. Date 객체를 생성할 땐 기본 생성자를 사용하고, 생성된 Date 객체의 날짜 시간 정보를 문자열로 변환할 땐 Date의 toString() 메서드를 사용한다. Date date = new Date(); String date_string = d.toString(); Calendar 클래스 Calendar는 날짜와 시간 정보를 설정하여 사용하는 API다. 날짜와 시간은 타임존과 로케일(locale)에 따라 다르게 지정할 수 있으므로 Calendar에는 날짜, 시간 처리에 관한 기본적인 메서드만 존재하고, 기본적인 날짜와 시간 정보는 설정해서..
-
[Java] 유틸리티 API (3) java.util.Arrays 클래스IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 19. 22:01
배열에 관한 여러 기능을 제공한다. Arrays 클래스에서 제공되는 모든 메서드가 static으로 선언되어 있으므로 'Arrays.메서드()' 형태로 사용한다. (아래의 표에서 * 표시는 오버로딩) 제어자 및 타입 메서드 설명 static int binarySearch(*) 배열에서 매개변수로 전달받은 값을 검색한 후 인덱스를 반환 static *[] copyOf(*[] original, int len) original 배열을 len 길이만큼 복사한 배열을 반환 static boolean equals(*[] a, *[] a2) 매개변수로 전달받은 두 배열이 같은지 비교 static void sort(*[] a) 배열 내용을 정렬 static String toString(*[] a) 배열 내용을 문자열로 ..
-
[Java] 유틸리티 API (1) java.util.StringTokenizer 클래스IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 19. 19:07
StringTokenizer 클래스 StringTokenizer는 String의 split() 메서드처럼 문자열을 분리하는 기능이 있다. String의 split() 메서드는 String[] 배열로 분리된 문자열을 반환하지만, StringTokenizer 클래스는 자체적으로 분리된 문자열을 처리한다. StringTokenizer가 자체적으로 가지는 분리된 문자열을 '토큰(token)'이라고 부른다. StringTokenizer 생성 시 문자열만 지정하면 공백을 기준으로 문자열이 분리된다. 분리된 각 문자열은 토큰이라고 하며 StringTokenizer는 토큰들의 집합이다. 토큰을 처리하는 방법은 StringTokenizer가 커서(cusor)라는 정보를 가지고 있는데 커서는 토큰의 위치를 나타내는 역할을..
-
[Java] Wrapper 클래스IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 19. 16:46
Wrapper 클래스는 Wrapper라는 이름의 클래스가 존재하는 것이 아니다. java.lang 패키지에 있는 클래스 중 자바의 기본 데이터 타입과 매핑되는 클래스들을 의미한다. Wrapper 클래스 기본 데이터 타입 Boolean boolean Byte byte Character char Double double Float float Integer int Long long Short short 박싱과 언박싱 기본 데이터는 값 자체만 저장되어 있으므로 데이터에 대해 처리할 때 메서드를 사용할 수 없다. 따라서 데이터에 대한 처리 기능이 필요할 땐 기본 데이터를 Wrapper 클래스로 생성한 후 해당 클래스에서 제공하는 메서드를 활용한다. Wrapper 클래스를 생성할 땐 Wrapper 클래스에서 sta..