728x90
다음 영상을 많이 참고하여 작성합니다
https://www.youtube.com/watch?v=We8JKbNQeLo
API(Application Programming Interface)
응용 프로그램에서 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 설명서
프로그램의 기능을 이용하기 위한 설명서, 연결점
사용예시
지도서비스를 사용하려면 어떤 요청을 보냈을 때 지도 관련 응답을 주겠다는 설명서가 있어야함
- url통해 요청 보내면
- 관련 정보를 받는다
Java API, 오픈 API, 카카오 로그인 API 등
특징
- 구현과 독립적으로 사용법만 정의되어 있음
- API에 따라 접근권한이 다름
Library
응용 프로그램 개발을 위해 필요한 기능(함수)을 모아 놓은 함수나 변수의 묶음
특징
- 미리 컴파일 된 class 파일로 존재, 컴파일 과정에서 링킹되어 실행가능한 프로그램을 이룸
- 독립성을 가진다
- 해당 라이브러리는 다른 라이브러리를 의존 x
- 응용프로그램이 능동적으로 라이브러리를 사용
- 성적 문자열을 받아 문자열 -> 파싱, 평균값 반환 라이브ㅓ리 사용
- 필요한 상황에 라이브러리를 호출한다! 능동
장점
- 코드를 재사용하기 쉬움
- 코드의 내용을 숨겨 기술 유출 방지가능
- 이미 구현되어 있는 기능들을 가져다 씀 -> 개발기간 단축
- 컴파일 시간 단축가능
사용예시
- Apache Commons
- Guava: 구글이 작성한 오픈소스 라이브러리, 컬렉션 초기화...
- Lombok: java의 반복되는 메서드를 Annotation을 사용하여 자동으로 작성해주는 라이브러리
- jQuery
- StringUtils
Framework
응용 프로그램이나 소프트웨어의 솔루션 개발을 수월하게 하기 위해 제공된 소프트웨어 환경
틀, 뼈대, 일하다 -> 틀 안에서 일ㅇㅇ 코드작성~
프레임워크 사용 시
- 비즈니스 로직 생성 -> 컨트롤러 생성, 로직생성, 스프링 프레임워크가 요청 받아 비즈니스 로직 처리할 컨트롤러 매핑시켜주고... 내 ㄹ직 실행
- 컨트롤러도 매핑, 컨트롤러에 비즈니스 로직 작성
프레임워크 없을 때 해야할 일 많음 -> 프레임워크는 비즈니스 로직에 집중할 수 있도록 기반을 다져놓은 것!
특징
- 상호협력하는 클래스와 인터페이스 집합
- 응용 프로그램이 수동적으로 프레임워크에 의해 사용됨
- 스프링이 client의 request를 처리해주고, request를 처리할 컨트로러를 매핑, 개발자가 작성한 컨트롤러를 호출해 수행~
- 여기서는 스프링 프레임워크가 할 일을 다 하고 우리 코드를 호출한다
사용예시
- Spring Framework
- 모든 종류의 배포 플랫폼에서 Java 기반 엔터프라이즈 애플리케이션을 개발하기 위한 포괄적인 프로그래밍 및 구성 모델을 제공하는 경량화된 솔루션. 오픈소스 프레임워크이다
- JUnit
- 자바 언어용 유닛 테스트 프레임워크
- Ruby on Rails
- Ruby 언어로 작성된 오픈소스 웹 어플리케이션 프레임워크
참고자료
https://bradbury.tistory.com/224
728x90
'CS' 카테고리의 다른 글
개발자가 CS지식을 알아야하는 이유 정리 (1) | 2023.12.02 |
---|---|
토큰 이코노미 시대? NFT가 뭘까? (0) | 2023.09.09 |
빅데이터란? (1) | 2023.09.07 |
보일러플레이트 코드란?(Boilerplate code) (0) | 2023.06.21 |
SOLID: 객체지향 5대 원리 (2) | 2023.01.27 |