[Weekly Paper] Spring Framework, Framework & Library

Jerry·2025년 8월 1일

Q. Spring Framework가 탄생하게 된 배경과 이를 통해 해결하고자 했던 문제점에 대해 설명하세요.

A. Spring의 탄생 배경

Q. 프레임워크와 라이브러리의 차이점을 제어 흐름의 주체와 사용 방식을 중심으로 설명하고, Spring Framework와 일반 Java 라이브러리를 예시로 들어 설명하세요.

A.

제어 흐름(Control Flow)의 주체

구분프레임워크라이브러리
제어 흐름프레임워크가 흐름을 제어 (Inversion of Control)개발자가 흐름을 제어
개발자 역할프레임워크가 제공하는 구조에 맞춰 개발필요할 때 개발자가 직접 호출하여 사용
대표 원칙IoC (제어의 역전)직접 호출 방식 (Direct Control)

사용 방식

구분프레임워크 사용 방식라이브러리 사용 방식
설계 구조프레임워크가 전체 구조를 미리 정의개발자가 필요에 따라 부분적으로 사용
의존성애플리케이션이 프레임워크에 의존라이브러리를 애플리케이션에서 의존적 사용
사용 흐름"프레임워크가 개발자 코드를 호출""개발자가 라이브러리 코드를 직접 호출"

예시 비교

구분프레임워크 예시: Spring Framework라이브러리 예시: Apache Commons Lang, Gson 등
제어 흐름Spring이 전체 애플리케이션의 흐름(IoC, DI, AOP 등)을 제어개발자가 필요할 때 직접 메서드를 호출하여 사용
예시 설명@Controller, @Service, @Autowired 등을 선언하면StringUtils.isBlank(str) 또는 Gson.toJson(obj)처럼
Spring이 알아서 객체 생성, 주입, 실행 흐름을 제어함개발자가 명시적으로 호출해야 동작함
사용 구조애플리케이션이 Spring이 요구하는 방식으로 설계되어야 함애플리케이션의 구조와 무관하게 특정 기능만 선택적으로 사용 가능

핵심 요약

  • 프레임워크는 전체적인 구조와 흐름을 장악하고 개발자는 그 틀 안에서 제공된 규칙에 따라 개발합니다. (ex. Spring)
  • 라이브러리는 필요한 기능을 가져다 쓰는 도구이며, 흐름을 직접 제어하는 주체는 개발자입니다. (ex. Apache Commons, Jackson, JUnit)
profile
Backend engineer

0개의 댓글