본문 바로가기
Spring

02 - 1 인터페이스 사용과 컬렉션 프레임워크

by hjwjddl 2023. 6. 28.

스프링 프레임워크 사용을 위해 꼭 필요한 자바의 기초 지식을 알아보자.

 

 

인터페이스란?

자바에서 클래스에 포함하는 메서드이 구체적인 내용을 작성하지 않고 상수와 메서드 타입만 정의한 것을 말한다.

 

  • 인터페이스 선언하기

인터페이스를 선언할 때는 interface 키워드를 사용

인터페이스 선언
public interface Greet {
	void greeting();
}

 

암묵적 접근 제어자
public interface Greet {
	public abstract void greeting();
}

 

인터페이스는 다른 클래스에서 구현하는 것을 전제로 만들어진다. 그렇기 때문에 인터페이스를 선언한 메서드는 암묵적으로 public abstract 접근 제어자(access modifier)가 붙은 추상 클래스라고 불린다. 위 두가지 코드는 같은 의미를 가진다.

 또한 인터페이스에서 변수를 선언한 경우는 암묵적으로 public static final 한정자가 붙어서 상수가 된다.

 

  • 인터페이스 구현하기

 인터페이스를 구현할 때는 implements 키워드를 사용한다. 또한 인터페이스로 정의되는 추상 메서드를 모두 구현해야 한다. 구현하지 않은 경우에는 컴파일 에러가 발생한다.

 인터페이스의 추상 메서드는 암묵적으로 public abstract 한정자가 붙기 때문에 구현할 때는 public을 선언해 둘 필요가 있다.

public class MorningGreet impolements Greet {
	@Override
    public void greeting() {
    	System.out.print("Good morning");
    }
}
  @Override

 

 슈퍼 클래스나 인터페이스의 메서드를 상속 혹은 구현하는 클래스에서 재정의 하는 것을 말한다.

즉, @Override를 메서드에 부여하는 것으로 "이것은 재정의(Override)된 메서드입니다. 만약 재정의 되어 있지 않으면 에러가 발생합니다."라는 것을 알려준다.

 

 

 


 

 

 자바에서는 복수의 데이터를 더 쉽게 사용할 수 있게 하는 컬렉션(Collection)이라는 클래스를 제공한다.

종류와 용도는 3종류로 나눌 수 있으며 그 중 하나는 리스트이다.

  • 리스트(List) : 순서대로 데이터를 저장.데이터 중복 허용
  • 세트(Set) : 순서를 유지하지 않는 집합. 데이터 중복 허용 X
  • 맵(Map) : 키와 값의 쌍으로 이루어진 순서를 유지하지 않는 집합. 키의 중복 허용 X, 값의 중복은 허용

  이러한 컬렉션의 모음을 컬렉션 프레임워크(Collection Framework)라고 한다. 

 컬렉션 프레임워크는 다양한 인터페이스와 구현 클래스로 구성된다. 

 

 

 

List에 대해 알아보자.

 

리스트(List)란?

컬렉션 프레임워크에서 제공하는 인터페이스로 여러 데이터를 순서대로 정렬하여 저장할 때 사용한다. 실제로 사용할 시에는 List 인터페이스를 구현한 클래스를 사용한다. 여러 데이터를 다룰 때 자주 사용한다.

'List interface'의 구현 클래스
  • ArrayList : List 인터페이스의 구현 클래스에서 가장 많이 사용된다. 
                     장점 - 요소의 검색을 고속으로 처리할 수 있다.
                     단점 - 요소의 수가 많아지면 추가/삭제를 처리하는데 시간이 많이 걸린다.
  • LinkedList : 요소끼리 전후 양방향의 링크로 참조하는 리스트 구조를 이용해 관리한다.
                       장점 - 요소의 추가/삭제가 ArrayList보다 빠르다. 
                       단점 - 특정 요소 검색과 같은 인덱스 값에 의한 무작위 엑세스에는 적합하지 않다.
List 사용 예시
import java.util.ArrayList;
import java.util.List;

public class ListExample {
	public static void main(String[] args) {
    	// String 타입을 저장할 List
        List<String> animals = new ArrayList<>();
        
        // List에 데이터 추가
        animals.add("cat");
        animals.add("dog");
        animals.add("dinosour");
        animals.add("panda");
        
        // List의 데이터 출력
        for (String animals : animals) {
        	System.out.println(animals);
        }
    }
}

 

 List에 넣을 수 있는 형태를 제한하는 부분은 '제네릭(Generic)' 이라고 한다. 예시 코드에서 제네릭은 <String>부분 이다.

 

 

 

 

 

 

 

 

 

https://wikibook.co.kr/spring/

 

스프링 프레임워크 첫걸음: 그림과 실습으로 쉽게 배우는 스프링 프레임워크 완벽 입문서

세상에서 가장 친절한 스프링 프레임워크 입문서! 스프링 프레임워크는 전 세계적으로 가장 널리 사용되는 오픈소스 자바 애플리케이션 프레임워크입니다. 이 책에서는 스프링 프레임워크를

wikibook.co.kr