https://www.youtube.com/watch?v=We8JKbNQeLo
API는 Application Programming Interface
응용 프로그램에서 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
좀 더 쉽게 설명하자면 프로그래밍 간에 연결시켜주는 다리 역할
Library는 응용 프로그램 개발을 위해 필요한 기능(함수)을 모아 높은 소프트웨어
단어 뜻대로 도서관으로 생각해보자면, 필요한 책(필요한 기능,함수)이 있다면 대여하기 위해 도서관(소프트웨어)에서 빌려오는 것처럼 생각하면 이해하기 쉽다.
즉, 자주 사용하는 함수들을 모아 재사용하는 것이다.
독립성을 가진다
모든 복잡한 기능을 스스로 만들어야 하는 문제를 해결
예시
math
이 라이브러리는 삼각법이나 로그 함수같은 반복적인 수학적 기능을 제공합니다. 프로그래밍 언어들은 데이터 가공, 그래프 조작, 문자열 파싱 등의 작업을 위한 라이브러리들을 가지고 있습니다. 만약 라이브러리가 있다면 모든 복잡한 기능을 스스로 만들어야 하는 문제를 해결할 수 있습니다.
응용 프로그램이 능동적으로 라이브러리를 사용한다.
의미 : 개발자가 개발할 때 필요한 부분에 능동적으로 라이브러리를 호출해서 사용한다
예시
calculate
학교 학생들의 성적의 평균을 계산하는 프로그램을 만들고 싶어요
이때 문자열을 받아 파싱해서 우리가 원하는 평균값을 반환하는 라이브러리를 사용하고 싶습니다.
학생들의 성적이 담긴 문자열을 입력 받는다
필요한 라이브러리를 호출해서 원하는 값을 얻는다.
String scores = "버디:80, 뚱이:15, 에헴:75, 이바:50, 지노: 20";
// 여기서 라이브러리 calculate(String: scores)를 호출
double average = library.calculate(scores);
return average
Apache Commons, Guava, Lombok, jQuery 등이 존재
Framgework = Frame 틀,뼈대 + work 일하다 = 틀 안에서 일하다
응용 프로그램이나 소프트웨어의 솔루션 개발을 수월하게 하기 위해 제공된 소프트웨어 환경
반복적인 디자인 패턴을 쉽게 재활용할 수 있다.
상호협력하는 클래스와 인터페이스의 집합이다.
응용 프로그램이 수동적으로 프레임워크에 의해 사용된다.
Spring Framework, Junit, Ruby on Rails
구현로직의 유무
Framework : 어떻게 작동하는지 정의,통제 / your code: 원하는 행위 정의 / library: 유용한 기능 정의
→ 이렇듯 응용 프로그램의 흐름 주도권
을 누가 가지고 있느냐에 따라 달라집니다.