본문 바로가기
웹 풀스택 스터디(뉴렉처-학원)--> 이거 꼭 보세요

5. 코드분리와 인터페이스

by 백엔드개발자0107 2021. 8. 5.

B) 코드 분리와 인터페이스

 

프로그램에서 뿐만 아니라 현실 세계에서도 무엇을 분리하고 다시 조립하려면 중간에 그것을 이어주는 도구가 필요한데, 우리는 그것을 인터페이스라고 한다.

 

쉬운 예로 핸드폰의 배터리나 카메라 렌즈를 생각해 볼 수 있는데 배터리를 바꿔끼우거나 렌즈를 바꿔끼우는 것에는 일종의 약속과 그 약속에 준한 점합점(인터페이스)이 존재한다.

 

그리고 인터페이스가 있음으로 인터페이스만 일치한다면 배터리나 렌즈를 만든 회사를 가리지 않고 다른 제품으로 바꾸어서 사용할 수도 있다.

 

“인터페이스를 사용한다면 그 부품이 바뀌어도 제품에는 영향을 주지 않는다.”

 

프로그래밍에서도 입/출력 장치를 인터페이스를 이용하는 방법을 고려해볼 수 있다.



장치를 직접 사용하는 것을 차단하고 일정한 약속을 기반으로 장치를 바꿔서 사용할 수 있도록 해야 한다.

그런데 그것을 가능하게 하려면 자바 코드 안에서 인터페이스 역할을 할 수 있는 구현체가 필요한데, 그런 것이 있을까?

 

있다. 바로 함수의 기능을 이용하는 것이다.

 

함수를 이용해서 만든 인터페이스를

 

 OS가 제공하는 API(Application Programming Interface)라고 한다. 그러나 자바는 운영체제가 제공하는 API를 사용하지는 않고 자바 플랫폼이 제공하는 자바 API만을 사용한다.

 

자바가 제공하는 API를 이용해서 콘솔에 값을 출력하는 방법은 다음과 같다.

 

public class Program{
public static void main(String[] args){
…((생략)

// 총점구하기
total = kor1 + kor2 + kor3;

// 평균구하기
avg = /* 중간에 들어간 주석 */ total / 3;

System.out.printf("total is %d\n", total);
System.out.printf("avg is %f\n", avg); 
}
}

 

자바 플랫폼이 제공하는 printf 함수를 이용하면 화면에 총점과 평균이 출력할 수 있다. 위의 코드를 저장하고 다시 컴파일 한 후에 실행해보도록 하자. 그러면 다음과 같은 결과를 볼 수 있을 것이다.

 

c:\Workspace>java Program
total is 140
avg is 46.000000

System.out.printf("total is %d\n", total);
System.out.printf("avg is %f\n", avg); 

 

이것들이 일종의 api를 이용한 출력방식으로 입출력기능인터페이스를 가지고 있다고 할수가 있다.