공부/Spring

[Spring-01] 라이브러리와 프레임워크의 차이점

줭♪(´▽`) 2021. 5. 17. 21:01

1. 라이브러리와 프레임워크

1) 라이브러리(Library)

- 특정 기능에 대한 도구 또는 함수들의 집합

- 프로그램 기능 수행을 위해 활용 가능한 도구의 집합

- 개발자가 만든 클래스에서 호출하여 사용함

 

2) 프레임워크(Framework)

- 뼈대, 기반구조

- 소프트웨어의 특정 문제를 해결하기 위해 상호 협력하는 클래스와 인터페이스의 집합

- 완성된 제품 X

- 완성된 제품을 만들기 위해 개발자를 도와주거나 기반이 되는 역할

 

3) 라이브러리와 프레임워크의 차이점

- 제어의 주체(제어의 흐름을 쥐고 있는 것)는 누구인가?

라이브러리 : 개발자, 코드에서 라이브러리 함수를 호출함

프레임워크 : 프레임워크, 프레임워크에서 개발자의 코드를 호출함 (제어의 역전)

 

※ 제어의 역전(Inversion of Control, IoC)

- 프로그램의 제어 흐름 구조가 바뀌는 것

- 일반적인 프로그램 흐름 구조 : 사용하는 쪽(개발자)에서 메서드(라이브러리) 호출

- 역전된 프로그램 흐름 구조 : 기반이 되는 쪽(프레임워크)에서 사용하는 쪽의 메서드 호출

- 즉, 어떠한 일을 하도록 프레임워크에 제어의 권한을 넘김으로써 개발자가 신경써야 할 것을 줄이는 전략

 

 

- 프레임워크는 기본적인 골격을 잡아놓았기 때문에 개발자는 제어의 흐름에 맞게 코드를 작성해두면 프레임워크에서 적절히 호출함

- 프레임워크에 정의된 인터페이스, 추상타입을 개발자가 구현함으로써 객체를 프레임워크에 주입함(Dependency Injection, DI)

 

4) 프레임워크의 장점

- 애플리케이션 구조 및 코드의 상당 부분을 제공

- 개발자는 프레임워크가 짜놓은 틀에 맞춰 코드를 작성하면 됨

- 애플리케이션의 핵심 로직에만 집중할 수 있음

- 높은 생산성을 제공함

- 코드 품질을 보장

 

'공부 > Spring' 카테고리의 다른 글

[Spring-02] Spring이란?  (0) 2021.05.17