순수가상함수만을 가진 함수.
1. 인터페이스 선언
public interface Greet{
void greeting();
}
2. 인터페이스 구현
public class MorningGreet implements Greet{ //implements Greet: Greet의 인터페이스를 이용하다.
@Override //재정의 선언
public void greeting(){
System.out.println("좋은 아침");
}
프로그램에는 사용되는 쪽, 사용하는 쪽 존재
0. 인터페이스
public interface Calculator{
Integer calc(Integer x, Integer y);
}
1. 덧셈(사용되는 쪽)
public class AddCalc implements Calculator{
@Override
public Integer calc(Integer x, Integer y){
return x+y;
}
}
2. 뺄셈 (사용되는 쪽)
public class subCalc implements Calculator{
@Override
public Integer calc(Integer x, Integer y){
return x-y;
}
}
3. 계산(사용하는 쪽)
import AddCalc;
import Calculator;
public class Call{
public static void main(String[] args){
Caluclator calculator = new AddCalc(); //인터페이스 타입을 이용해, 객체를 선택적으로 사용가능
Interger resutr = Calculator.calc(10, 5);
System.out.println("계산결과는 " + result + "입니다.")
}
}
만약, 기능을 바꾸고 싶다면, 사용하는 쪽 클래스만 new subCalc로 바꾸면 된다. 이는 인터페이스를 이용하기 때문에 가능하다.
파일->설정->에디터->일반->자동가져오기-> (모호하지 않은 import문 즉시추가, import문 즉시 최적화)
를 활성화 하면, import문이 자동 생성된다.
클라이언트: 서비스를 받는 쪽
서버: 서비스를 이용하는 쪽
애플리케이션: 소프트웨어를 의미한다.
웹 애플리케이션: 웹 서비스를 통해 제공되는 소프트웨어
AP(애플리케이션) 서버: 웹 애플리케이션을 제공하는 서버.(항상가동중, 항상 클라이언트의 요청을 받을 준비)
클라이언트가 URL을 통해 AP서버로 http통신을 보내면, AP서버는 그것을 받아 이에 대응하는 응답을 클라이언트에 반환한다. 브라우저는 수신된 응답을 사용자에게 표시하고 클라이언트가 이를 확인한다.
Get함수, Post 함수는 Http요청의 일부이다.
Get함수: 브라우저에서 서버로 값을 전달할떄 URL뒤에 값을 추가(쿼리 스트링)해 전송가능
특징:
1. URL 끝에 ?로 시작
2. 변수 = 값 형식
3. 여러개 값을 보낼 때, &으로 연결
Post함수 :값을 브라우저에서 서버로 전달할 떄 request bodty를 이용하여, 보이지 않는 곳에 값을 담아 전송가능.
특징: 대용량 데이터 전송에 적합, 보안성
서버는 3계층 구조로써, 웹서버, AP서버, DB서버로 나뉜다.
서버의 구조
클라이언트 -> 인터넷 -> 웹서버 -> AP서버 -> DB서버
웹서버: 브라우저를 통해 사용자와 직접 소통
AP서버: 비지니스 로직 처리
DB서버: 데이터 저장, 업데이트, 삭제, 조회 등 처리
스프링은 springInitalizer에서 다운받을 수 있다. 이 때 Dependencies에서 유용한 라이브러리를 추가해서 설치할 수 있다. 아래는 그런 라이브러리의 종류를 소개한다.
롬복은 Getter와 Setter를 자동으로 작성해주는 라이브러리이다. 롬복을 사용할 때는 애너테이션 이라는 것을 사용하며, @로 시작하며 외부 소프트웨어에 필요한 처리내용을 전달하는 역할을 한다.
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class User{
private String name;
private int age;
}
위처럼 @Getter와@Setter 애너테이션을 사용해주면, 각 맴버변수에 대하여 Getter함수와 Setter함수가 자동으로 만들어진다. 이를 왼쪽 상단의 구조(alt+F7)를 클릭하여 확인할 수 있다.
참고로, 기존 프로그램에 롬복 추가하고 싶다면, 파일->설정-> 플러그인 에서 lombok을 설치할 수 있다.
@Data 에너테이션은 getter, setter에 더해, equals(), hashCode(), toString()을 추가하여 출력해준다.
equals: 두 객체가 동일한지 판단하는 함수
hashCode: 객체의 해시코드를 반환하는 함수
toString: 객체의 문자열 표현을 반환
@NoArgsConstructor는 인수가 없는 기본 생성자를 생성해 준다.
@ALLArgsConstructor는 모든 필드를 인수로 가진 기본 생성자를 생성해 준다.
그레이들은 자바, 그루비, 코틀린등 컴퓨터언어를 빌드하기 위한 도구