티스토리 뷰

게시판 만들기

위클리 페이퍼4

noobdev25 2025. 12. 8. 09:05

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

 

 

2000년대 초 Java 웹 개발은 EJB(Enterprise JavaBeans) 라는 기술을 사용했습니다.

이 기술은 강력하지만 단점도 많았는데요

높은 진입 장벽과 과도한 설정, 간단한 기능 추가에도 엄청난 준비 필요 또 테스트 어려움 등의 이유로 시간의 지남에 따라 점점 외면 받고 있었습니다

 

이러한 문제점을 느낀 '로드 존슨' 이라는 개발자가 2002년 자신의 저서 ' Expert One-on-One J2EE Design and Development' 에서 EJB 없이도 충분히 엔터프라이즈급 애플리케이션을 개발할 수 있다는 아이디어와 함께 훗날 Spring Framework로 발전될 핵심 코드 3만줄을 공개 했습니다.

 

Spring이 해결하고자 했던 핵심 목표로는 크게 3가지가 있는데 그것은

1. 복잡성 해소 및 개발 생산성 향상

- EJB처럼 무겁고 복잡한 설정을 제거하고, 가볍고 빠른 POJO(평범한 자바 객체) 기반 개발 지향

- XML 기반 설정을 최소화하고 자바 기반 설정으로 진화 및 지향

(복잡한 기술 틀에 맞추느라 낭비되는 시간을 줄이고, 개발자가 만들고자 하는 기능에 집중하게 되어 효율이 증가됨)

 

2. IoC와 DI의 도입

- 객체 생성과 괸리 책임을 개발자가 아닌 Spring 컨테이너 에게 위임

(객체 관리 주도권을 Spring이라는 똑똑한 비서(컨테이너)에게 넘겨 편리함 증가)

- 객체가 필요한 다른 객체를 직접 생성하지 않고 외부에서 주입받아 결합도를 낮춤

(코드들이 서로 느슨하게 연결되어, 코드를 바꾸거나 고쳐도 전체 프로그램에 미치는 영향이 최소화 됨)

 

3. 테스트가 쉬운 환경을 제공

- 무거운 서버 없이 가볍게 테스트 가능

- Mock 객체(가짜 객체)를 활용한 독립적인 테스트 환경 구성 가능

(테스트 시간이 줄어들어, 개발 중 오류를 빠르게 찾아서 고칠 수 있으며 개발 속도가 증폭됨 결과적으로 안정적인 서비스 개발과 유지보수가 가능해짐)

 

요약

2000년대 초 Java 웹 개발은 EJB의 높은 복잡성과 낮은 생산성으로 어려움을 겪고 있었다
이를 해결하기 위해 로드 존슨은 가볍고 유연한 POJO 기반 개발과 IoC·DI 개념을 제시했다
그 결과 복잡함을 줄이고 테스트가 쉬운 Spring Framework가 탄생하게 되었다



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

 

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

프레임워크는 이미 만들어진 설계도이자 개발의 틀

라이브러리는 개발자('나')가 필요할 때 꺼내서 사용하는 특정 기능의 도구

 

1. 제어 흐름의 주체

프레임워크

- 프로그램의 전체 흐름을 프레임워크가 제어

- 개발자는 정해진 규칙에 맞게 코드만 작성

(프레임워크가 먼저 실행되고, 필요한 시점에 개발자 코드를 호출, 개발자는 정해진 규칙에 맞게 코드만 작성)

 

라이브러리

- 프로그램의 흐름을 개발자가 직접 제어

- 라이브러리는 보조적인 역할

(코드의 시작과 끝은 모두 개발자 코드가 담당하며 필요한 기능이 있을 때 개발자가 라이브러리를 호출하여 사용)

 

2. 사용 방식

프레임워크

- 프레임워크가 제공하는 구조 안에서 개발

- 코드의 중심은 프레임워크

(개발자 코드는 프레임워크에 의해 실행됨, 이미 만들어진 틀 안에 코드를 끼워 넣는 방식)

 

라이브러리

- 개발자가 원하느 시점에 기능을 선택적으로 사용

- 코드의 중심은 개발자 코드

(라이브러리는 필요할 때만 도움을 주는 도구)

 

3. 예시

프레임워크

- 애플리케이션의 시작부터 종료까지 프레임워크가 관리

- 요청이 들어오면 프레임워크가 알맞은 메서드를 자동으로 실행

(개발자는 "이 상황에서는 이 코드가 실행되면 된다" 라고 정의만 해주면 됨)

 

라이브러리

- Collections 등의 라이브러리는 개발자가 직접 호출하여 사용

(언제, 몇번 실행할지는 전부 개발자가 결정)

 

요약

라이브러리는 개발자가 흐름을 제어하며 사용하는 도구이고, (라이브러리는 내가 부르고)
프레임워크는 흐름을 프레임워크가 제어하는 개발의 틀이다. (프레임워크는 나를 부른다)

 

 

 

 

'게시판 만들기' 카테고리의 다른 글

위클리 페이퍼5  (0) 2025.12.15
위클리 페이퍼3  (0) 2025.12.01
위클리 페이퍼2  (0) 2025.11.24
위클리 페이퍼  (0) 2025.11.19
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함