API(Application Programming Interface)
응용 프로그램에서 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
프로그램 간에 연결을 시켜주는 다리라고 생각하면 쉽다.
특징
- uri 를 통해 데이터를 받는 형태가 많음
- 구현과 독립적으로 사양(사용법)만 정의되어 있다
- API에 따라 접근 권한이 필요할 수 있다.
- ex) Kakao Map API, java API, 여러 기업들의 오픈 API
Library
단어 뜻 그대로 도서관으로 생각해보면 쉽다. 필요한 책이 있으면 대여하기 위해 도서관에서 빌려오는 것처럼, 응용 프로그램 개발을 위해 필요한 기능을 가져다쓰는 소프트웨어
특징
- 독립성을 가진다. 다른 라이브러리를 의존하지 않는다.
- 응용 프로그램이 능동적으로 라이브러리를 사용한다. 다시 말해서 개발자가 개발할 때 필요한 부분에 능동적으로 라이브러리를 호출해서 사용한다.
- ex) Lombok, jQuery
Framework
응용 프로그램이나 소프트웨어의 솔루션 개발을 수월하게 하기 위해 제공된 소프트웨어 환경. 단어 뜻 그대로 틀 안에서 일을 한다고 생각하면 쉽다.
Spring Framework를 사용한다면 -> 컨트롤러 생성, 컨트롤러에 비즈니스 로직 작성,
Framework 없이 was를 만들어 사용한다면 -> Socket, InuputStream, OutputStream, Request, 컨트롤러 맵핑, 컨트롤러 생성, 비즈니스 로직 작성
Framework가 없으면 처리해야할 로직이 엄청나게 많다. Spring Framework 덕분에 개발자는 비즈니스 로직에 집중할 수 있었던 것이다.
특징
- 상호협력하는 클래스와 인터페이스의 집합
- 응용 프로그램이 수동적으로 프레임워크에 의해 사용된다.
- Junit, Spring Frameowrk
Library 와 Framework의 차이
전반적인 흐름의 간단한 예시
공부하다 보니, 우아한테크 유튭에서 기본적인 지식을 잘 설명해주셔서 해당 영상도 같이 공유!
https://www.youtube.com/watch?v=We8JKbNQeLo
출처: https://dundung.tistory.com/279 [DunDung]
출처: https://blog.gaerae.com/2016/11/what-is-library-and-framework-and-architecture-and-platform.html
'IT Diary > # Knowledge' 카테고리의 다른 글
[ Knowledge ] var, let , const의 차이 (0) | 2021.06.10 |
---|---|
[ Knowledge ] AOP (Aspect Oriented Programming) 의 정의 (0) | 2021.05.31 |
[ Knowledge ] GET과 POST 의 차이는? (0) | 2021.05.17 |
[ Knowledge ] Web Server 와 WAS 의 차이는? (0) | 2021.05.17 |
[ Knowledge ] 도대체 REST API가 뭔데? (0) | 2021.04.02 |