Spring/강의

[📕 기초 Spring] 2-1. 프레임워크와 라이브러리

가지코딩 2025. 5. 3. 15:33

📕 목차

  1. 프레임워크 (Framework)
  2. 라이브러리 (Library)
  3. 프레임워크 vs 라이브러리

1. 프레임워크 (Framework)

프레임워크 (Framework)

  • 소프트웨어 개발을 위한 ‘일할 수 있는 틀’을 제공하는 개발 환경이다.
  • (비유) 붕어빵을 만들려면 붕어빵 틀이 필요하다. 개발자는 이 틀에 맞춰 재료를 넣고 구워야 한다.

 

장점

  • 일관된 구조 제공 → 협업과 유지보수 용이
  • 공통 기능(보안, 인증 등) 제공 → 비즈니스 로직에 집중 가능
  • 테스트 환경 지원
  • 커뮤니티와 문서가 풍부

 

단점

  • 복잡한 구조 → 학습 곡선이 높다
  • 구조 변경이 제한적 → 유연성 부족
  • 버전 업데이트 시 호환성 문제 가능

2. 라이브러리 (Library)

라이브러리 (Library)

  • 개발자가 필요할 때 가져다 쓰는 ‘도구 모음’이다.
  • (비유) 자동차의 타이어처럼 필요한 부품만 골라서 사용할 수 있다.

 

장점

  • 검증된 기능 활용 → 생산성 향상
  • 테스트 완료된 코드 → 안정성 확보

 

단점

  • 지원 중단 or 업데이트 → 문제 발생 가능
  • 버전 간 충돌 가능성 있음
  • 불필요한 기능까지 포함될 수 있음
  • 내부 코드 수정이 어려워 유연성 떨어짐

3. 프레임워크 vs 라이브러리

항목 프레임워크 라이브러리
제어 흐름 프레임워크가 제어 개발자가 직접 호출
구성 방식 전체 틀 제공 기능 단위 도구 제공
사용 예시 Spring, Django jQuery, Lodash
자유도 낮음 높음
비유 붕어빵 틀 자동차 타이어

 

 

프레임워크는 개발 환경의 중심이 되고, 라이브러리는 보조적인 도구로 사용된다.


"Framework이 나를 호출하고, Library는 내가 호출한다." 라는 말로 두 개념의 차이를 기억하면 좋다.