프레임워크와 라이브러리

김운채·2023년 5월 25일
0

TIL

목록 보기
16/22


라이브러리(Library)와 프레임워크(Framework)는 소프트웨어 개발에서 자주 사용되는 용어이다. 둘 다 우리의 개발인생을 윤택하게 하기위해 사용되지만, 이 둘에는 중요한 차이점이 있다.

컨트롤의 대상

제일 중요한 차이는 누가 누구를 컨트롤 하는가? 이다.

내가 코드를 컨드롤 하고 있는가?(결정을 하는 주체가 나 인가?)
아니면, 누군가 정해준 규칙을 따라가고 있는가?

라이브러리

라이브러리는 재사용 가능한 코드와 기능의 집합이다.

개발자가 필요에 따라 라이브러리를 선택적으로 가져와서 자신의 소프트웨어에 사용할 수 있다. 라이브러리는 특정 기능을 수행하는 함수, 클래스, 메서드 등의 모음이며, 개발자가 필요할 때 호출하여 사용할 수 있다.

개발자가 선택적으로 사용하는 것이기 때문에 쉽게 대체가 가능하다. 바꾼다고 프로젝트가 작살나진 않는다. 왜냐면 효율성을 위해 사용하는 것이니까.

라이브러리는 일반적으로 독립적으로 사용될 수 있으며, 개발자는 라이브러리의 일부 기능만 사용할 수도 있다.

예를 들어, 자바에서는 다음과 같은 라이브러리를 사용할 수 있다.

  • Jackson 라이브러리: JSON 데이터를 처리하는 기능을 제공
  • JUnit 라이브러리: 단위 테스트를 작성하고 실행하는 데 사용
  • Apache Commons 라이브러리: 다양한 유틸리티 기능을 제공

프레임워크

프레임워크는 라이브러리보다 더 큰 개념으로, 소프트웨어 개발을 위한 구조와 규칙을 정의한 전체적인 틀이리고 할수있다.

프레임워크는 개발자에게 특정한 구조를 강제하며, 어떤 기능이 어떻게 작동해야 하는지에 대한 규칙을 제공한다. 개발자는 프레임워크를 기반으로 자신의 애플리케이션을 구축하고 확장해 나가는 것이다.

내가 프레임워크를 부르는 것이 아닌, 프레임워크가 나를 부르는 것.
프레임워크가 어디에 코드를 넣어야 하는지 그런 규칙들을 나에게 알려준다.

개발자는 프레임워크가 제공하는 추상화된 인터페이스와 기능을 사용하여 애플리케이션을 개발한다. => 규칙과 문서가 따라온다.

예를 들어, 자바에서는 다음과 같은 프레임워크를 사용할 수 있다.

  • Spring 프레임워크: 자바 기반의 애플리케이션 개발을 위한 프레임워크로, 애플리케이션의 구조와 흐름을 정의하고 개발자에게 특정 규칙과 추상화된 인터페이스를 제공한다. 의존성 주입(Dependency Injection)과 관점 지향 프로그래밍(Aspect-Oriented Programming)을 지원한다.

0개의 댓글