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

2026. 1. 27. 09:36·위클리페이퍼

[제어 흐름 관점에서의 차이]

  • 라이브러리는 내가 부른다.
  • 프레임 워크: 내가 불린다.

라이브러리

public static void main(String[] args) {
    List<String> list = new ArrayList<>();
    list.add("A");
    Collections.sort(list); // 내가 라이브러리 호출
}
  • 필요할때 라이브러리의 메서드를 직접 호출한다.
  • 라이브러리는 도구 역할

 

프레임워크

  • 개발자는 프레임 워크가 정한 규칙에 따라 코드 작성
  • 프레임워크가 적절한 시점에 내 코드 호출
@Controller
public class UserController {

    @GetMapping("/users")
    public String users() {
        return "users";
    }
}
  • 내가 직접 호출한 적은 없음.
  • HTTP 요청이 오면 Spring이 이 메서드를 호출.
프레임워크 → 내 코드 → 프레임워크

이것이 IoC(제어의 역전)


[사용 방식의 차이]

라이브러리 사용방식

  • 필요한 기능만 가져다 쓴다.
  • 구조 . 설계는 개발자 책임
  • 자유도는 높지만, 일관성.표준은 약함
File file = new File("test.txt");
Files.readAllLines(file.toPath());
  • 언제
  • 어디서
  • 어떻게
  • 전부 개발자가 결정.

프레임워크 사용방식

  • IoC 컨테이너가 객체 생명주기 관리
  • 애플리케이션 실행 흐름을 Spring이 주도
  • 개발자는 "비즈니스 로직"에 집중
  • DI
  • AOP
  • 트랜잭션 관리
  • MVC요청 흐름 제어
@Service
public class OrderService {

    private final PaymentService paymentService;

    // 객체 생성 ❌
    // new PaymentService() ❌

    public OrderService(PaymentService paymentService) {
        this.paymentService = paymentService; // Spring이 주입
    }
}
  • Spring이 객체생성 + 연결 + 호출 시점 결정

[일반 Java 라이브러리]

  • JDK,Apache Commons등..
  • 흐름 제어 전부 개발자 몫
  • 특정 기능만 제공
  • 프레이워크에 포함되어 쓰이기도 한다.
  • 라이브러리는 절대 내 코드를 호출하지 않는다.

[핵심 차이 요약]

  • 라이브러리는 내가 필요할때 사용하는 도구이고,
  • 프레임워크는 나를 불러서 일을 시키는 틀이다.
제어 흐름의 주체 프레임워크 개발자
제어 흐름 특징 IoC (제어의 역전) 순방향 제어
사용 방식 정해진 구조 안에 코드를 “끼워 넣음” 필요할 때 내가 호출
확장 방식 상속, 인터페이스 구현, 어노테이션 메서드 호출
애플리케이션 주도권 프레임워크가 실행을 주도 개발자가 실행을 주도

 

'위클리페이퍼' 카테고리의 다른 글

GitHub Actions Trigger 유형과 CI/CD 활용 시나리오  (0) 2026.05.15
AWS RDS를 활용하는 이점과 EC2에 직접 DB 설치 비교  (0) 2026.05.12
Spring MVC에서 클라이언트의 요청 처리 흐름.(@Controller/@RestController)  (0) 2026.02.23
Spring boot에서 사용되는 다양한 Bean 등록 방법들  (0) 2026.02.06
웹 서버와 WAS(Web Application Server)의 차이  (0) 2026.02.02
'위클리페이퍼' 카테고리의 다른 글
  • AWS RDS를 활용하는 이점과 EC2에 직접 DB 설치 비교
  • Spring MVC에서 클라이언트의 요청 처리 흐름.(@Controller/@RestController)
  • Spring boot에서 사용되는 다양한 Bean 등록 방법들
  • 웹 서버와 WAS(Web Application Server)의 차이
과컴
과컴
벡엔드 개발자 최소기준 맞추겠습니다.
  • 과컴
    곽의 프로그램
    과컴
  • 전체
    오늘
    어제
    • 분류 전체보기 (76)
      • 위클리페이퍼 (6)
      • 파이썬 (4)
      • 코드잇 스프린트 (48)
        • Spring 이론 (7)
        • Java이론 (11)
        • 실습 (23)
      • 백엔드 개발자 최소기준 (1)
      • 코딩테스트 (5)
        • 알고리즘 (0)
        • SQL (1)
      • Git (5)
      • 스프링부트 핵심가이드 (1)
      • 트러블 슈팅 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준브론즈
    파이썬입문
    파이썬
    문자열
    파이썬기초
    백준2576
    백준1152
    백준1075번
    혼공파
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
과컴
프레임워크와 라이브러리의 차이점?
상단으로

티스토리툴바