public interfase Greet{
//인사하기
void greetiing();
}
인터페이스를 선언할 때는 interface 키워드를 사용
public interfase Greet{
//인사하기
public abstract void greetiing();
}
인터페이스는 다른 클래스에서 구현하는 것을 전제로 만들어진다. 그 떄문에 인터페이스를 선언한 메서드는 암묵적으로 public abstract 접근 제어자가 붙은 추상 클래스라고 불림.
implements 키워드를 사용, 또한 인터페이스로 정의되는 추상 메서드를 모두 구현할 필요가 있어 구현하지 않는 경우에는 컴파일 에러가 발생, 그리고 public abstract 한정자가 붙기 때문에 구현할 때는 public 을 선언할 필요 있음.
public class MoringGreet implements Greet{
@Override
public void greeting(){
System.out.println("좋은 아침입니다.");
}
}
@Override 어노테이션은 슈퍼 클래스나 인터페이스의 메서드를 상속 혹은 구현하는 클래스에서 재정의하는 것을 의미 (만약 재정의되어 있지 않으면 에러 발생 여부를 알려줌)
종류(인터페이스) | 개요 |
---|---|
리스트(List) | 순서대로 데이터를 저장, 데이터의 중복을 허용 |
세트(Set) | 순서를 유지하지 않는 집합, 중복을 허용하지 않음 |
맵(Map) | 키와 값의 쌍으로 이루어진 데이터 집합, 순서는 유지되지 않고 키의 중복을 허용하지 않으며 갑의 중복을 허용 |
List는 컬렉션 프레임워크에서 제공하는 인터페이스이며 여러데이터를 순서대로 정렬하여 저장할 때 사용
구현 | 개요 |
---|---|
ArrayList | List 인터페이스의 구현 클래스에서 가장 많이 사용되며 요소를 배열로 유지하기 떄문에 요소의 검색을 고속으로 처리할 수 있지만, 요소의 수가 많아지면 추가/삭제를 처리하는데 시간이 걸림 |
LinkedList | 요소끼리 전후 양방향의 링크로 참조하는 리스트 구조를 이용해 관리하기 떄문에 요소의 추가나 삭제가 ArrayList보다 빠름. 그러나 특정 요소 검색과 같은 인덱스 값에 의한 무작위 액세스에는 적합하지 않음. |
여러 개의 String 타입 요소를 취급하는 List의 동작 방식 확인 가능. List에 넣을 수 있는 형태를 제한하는 '제네릭(Generic)' 이며, <String>
부분을 제네릭이라 함
클라이언트는 서비스를 요청하는 쪽이고 서버는 서비스를 제공하는 쪽이며, 서버가 서비스를 제공해 그 서비스를 클라이언트가 사용하는 관계
브라우저란 인터넷을 사용할 때 이용하는 소프트웨어
애플리케이션은 응용 프로그램 소프트웨어의 약어이며, 프로그래밍 언어로 작성한 소프트웨어
웹 애플리케이션은 인터넷을 통해 사용되는 응용 프로그램이며, 검색 엔진, e-커머스, e-러닝 등 많은 응용프로그램이 웹 응용 프로그램으로 제공
웹 서버는 웹 애플리케이션을 배포하는 서버이며, 항상 실행되며 클라이언트로부터 요청(액세스)를 기다림
클라이언트와 웹 서버는 HTTP 요청(request)과 HTTP 응답(response)으로 상호작용하며, 이를 HTTP 통신이라고 함
브라우저에서 웹 서버로 값을 전달할 때 URL 뒤에 값을 더하여 보내는 방식.
URL 뒤에 오는 정보를 '쿼리 스트링(query string)' 또는 '쿼리 문자열' 이라함
브라우저로부터 웹 서버에 값을 보낼 때 '요청 본문(request body)'이라고 하는 URL에는 보이지 않는 장소에 값을 넣어서 보내는 방법
e-커머스 사이트 등에서 개인 정보를 등록할 떄 입력한 내용을 URL에 표시하고 싶지 않은 경우에 POST 메서드를 사용