라이브러리와 프레임워크의 차이??

Eunjin·2023년 5월 18일
0

공통점

  • 누군가 미리 작성해 놓은 코드
  • 개발 속도를 더 빠르게 만들어 줌

차이점

개발자가 제어하는가? 제어당하는가? 의 차이

  • 라이브러리는 필요할 때 불러서 사용 가능 → 라이브러리는 다른 라이브러리로 쉽게 대체 가능
  • 프레임워크는 코드를 작성시 프레임워크의 규칙을 따라야한다.

각각의 특징을 확인해보자!

라이브러리(Library) 란?

-> 간단히 도서관을 생각하면 됨. 자신이 원하는 책을 자유롭게 읽을 수 있는 상황! 자유롭게 책도 바꿀수 있다.

  • 개발자가 필요한 기능을 제공하는 코드의 집합
  • 라이브러리는 개발자가 필요할 때 필요한 부분만 가져다 쓸 수 있으며, 개발자가 라이브러리를 사용하는 방식과 코드의 흐름을 직접 제어 가능
  • 다른 프로그램에서 자주 사용되는 기능들을 모듈화하여 묶어 놓은 소프트웨어 모음
  • 자주 사용되는 기능들을 라이브러리 형태로 제공함으로써, 다른 프로그램에서 이를 활용할 수 있도록 함
  • 사용자는 애플리케이션 코드의 흐름을 직접 제어
  • 라이브러리를 사용하면 개발자는 해당 기능을 다시 구현할 필요 없이 이미 작성된 코드를 활용하여 개발 속도를 높일 수 있음
  • 라이브러리는 다른 라이브러리로 대체 가능
  • 라이브러리는 개발에 필요한 것들을 미리 구현해놓은 도구라고 할 수 있다. 재사용이 가능한 기능을 미리 구현해놓고 필요한 곳에서 호출하여 사용 가능하도록 만들어진 집합

⇒ C++의 STL 이나 Python의 Pip로 설치한 패키지/모듈(pandas, tensorflow 등)

라이브러리 예시

import org.apache.commons.lang3.StringUtils;

public class Main {
    public static void main(String[] args) {
        String str1 = "hello";
        String str2 = StringUtils.upperCase(str1);
        System.out.println(str2);
    }
}
  • StringUtils 클래스는 문자열 관련 유틸리티 메서드들을 제공
  • Apache Commons Lang 라이브러리는 개발자가 문자열 관련 유틸리티 메서드를 작성할 때 유용하게 사용


프레임워크란?

-> frame이랑 매치시키자. 틀안에서 사용해야하는 것!

  • 개발자가 소프트웨어 개발에 필요한 기본적인 구조와 규칙을 정의하고, 이를 기반으로 개발자가 직접 코드를 작성하여 프로그램을 완성하는 방식
  • SW 개발을 위한 구조를 제공라는 기술적인 틀을 말함
  • 개발자가 새로운 소프트웨어를 개발할 때 필요한 기본적인 구조와 기능들을 제공하며, 개발자는 이를 활용
  • 미리 정의된 규칙과 구조를 갖춘 다양한 기능을 제공함
  • 프레임워크가 제공하는 기본적인 구조와 규칙을 따르면서 개발을 진행
  • 애플리케이션 코드는 프레임워크가 짜 놓은 틀에서 수동적으로 동작

⇒ 웹 개발 프레임워크(Spring, Django, Ruby on Rails 등), 애플리케이션 개발 프레임워크(.NET, Qt 등), 게임 개발 프레임워크(Unity, Unreal Engine 등) 등

프레임워크 예시

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class Main {
    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
    }

    @GetMapping("/")
    public String hello() {
        return "Hello, world!";
    }
}
  • @RestController 어노테이션과 @GetMapping 어노테이션을 사용하여 간단한 웹 애플리케이션을 작성
  • 개발자가 지정한 URL에 대한 요청을 처리하고, 이를 응답으로 반환하는 흐름을 제공
    : 개발자가 프레임워크가 제공하는 구조와 규칙에 따라 코드를 작성해야 하며, 프레임워크가 제공하는 흐름에 따라 웹 애플리케이션을 개발

0개의 댓글

관련 채용 정보