스프링 프레임워크 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
1번째 줄: 1번째 줄:
[[파일:스프링 프레임워크 로고.png|썸네일|200픽셀|'''스프링 프레임워크'''(Spring Framework)]]
+
[[파일:스프링 로고.png|썸네일|200픽셀|'''스프링'''(Spring)]]
[[파일:스프링 프레임워크 글자.png|썸네일|300픽셀|'''스프링 프레임워크'''(Spring Framework)]]
+
[[파일:스프링 글자.png|썸네일|300픽셀|'''스프링'''(Spring)]]
  
'''스프링 프레임워크'''(Spring Framework)[[자바]](Java) 기반의 응용 프로그램 개발을 지원하는 [[오픈소스]] [[표준 프레임워크]]이다. [[아파치재단]]이 관리하고 있으며, 정식 이름은 '''아파치 스프링 프레임워크'''(Apache Spring Framework)이다. 간략히 '''스프링'''이라고 부른다. 대한민국의 [[전자정부 표준 프레임워크]](eGovFrame)는 [[오픈소스]]인 스프링 프레임워크 기반으로 개발되었다.
+
'''스프링'''(Spring)[[자바]](Java) 기반의 응용 프로그램 개발을 지원하는 [[오픈소스]] [[표준 프레임워크]]이다. [[아파치재단]]이 관리하고 있으며, 정식 이름은 '''아파치 스프링 프레임워크'''(Apache Spring Framework)이다. 대한민국의 [[전자정부 표준 프레임워크]](eGovFrame)는 오픈소스인 스프링 프레임워크 기반으로 개발되었다.
  
 
== 개요 ==
 
== 개요 ==
8번째 줄: 8번째 줄:
  
 
== 등장배경 ==
 
== 등장배경 ==
스프링 프레임워크의 등장은 [[EJB]] 기술의 등장으로 인해 생겨났다. EJB는 점점 [[IT]] 시스템이 복잡한 기술이 요구되어 [[자바]]의 기초적인 [[JDK]], 서버 기반의 자바기술인 [[J2EE]], [[서블릿]](Servlet), [[JSP]] 레벨의 최소한의 서버 [[프로그래밍]] [[인터페이스]]만을 가지고 복잡한 [[애플리케이션]]을 제작하는 데 어려움이 컸으며, 여러 가지 요구사항(트랜잭션처리, 상태관리, 멀티스레딩, 리소스 풀링, 보안)을 충족시켜야 하며, 애플리케이션 로직의 복잡도와 상세 기술의 복잡함을 개발자들이 한 번에 다루기가 어렵기 때문에 이런 문제들을 다루기 위해서 EJB가 등장하였다.
+
스프링프레임워크의 등장은 EJB 기술의 등장으로 인해 생겨났다. EJB는 점점 [[IT]] 시스템이 복잡한 기술이 요구되어 [[자바]]의 기초적인 JDK, 서버 기반의 자바기술인 J2EE, Servlet, JSP 레벨의 최소한의 서버 [[프로그래밍]] [[인터페이스]]만을 가지고 복잡한 [[애플리케이션]]을 제작하는 데 어려움이 컸으며, 여러 가지 요구사항(트랜잭션처리, 상태관리, 멀티스레딩, 리소스 풀링, 보안)을 충족시켜야 하며, 애플리케이션 로직의 복잡도와 상세 기술의 복잡함을 개발자들이 한 번에 다루기가 어렵기 때문에 이런 문제들을 다루기 위해서 EJB가 등장하였다.
  
하지만 EJB는 현실에서 1% 미만의 애플리케이션에서만 필요한 멀티 DB를 위한 분산 트랜잭션을 위해 나머지 99%의 애플리케이션도 무거운 JTA 기반의 글로벌 트랜잭션 관리 기능을 사용해야 했다. 특별한 경우가 아니라면 그다지 장점이 없는 EJB의 원격분산 모델은 성능을 떨어뜨리고 서버의 복잡도만 증가시켰다. 가장 최악의 문제점은 EJB스펙을 따르는 비즈니스 오브젝트들은 객체 지향적인 특징과 장점을 포기해야 했다는 것이다. EJB 빈은 상속과 다형성 등의 혜택을 제대로 누릴 수가 없었다. 이처럼 EJB 애플리케이션 개발의 복잡도를 제거하면서 다른 한편으로는 더 많은 문제와 복잡성을 가지고 왔다.
+
하지만 EJB는 현실에서 1% 미만의 애플리케이션에서만 필요한 멀티 DB를 위한 분산 트랜잭션을 위해 나머지 99%의 애플리케이션도 무거운 JTA기반의 글로벌 트랜잭션 관리기능을 사용해야 했다. 특별한 경우가 아니라면 그다지 장점이 없는 EJB의 원격분산 모델은 성능을 떨어뜨리고 서버의 복잡도만 증가시켰다. 가장 최악의 문제점은 EJB스펙을 따르는 비즈니스 오브젝트들은 객체 지향적인 특징과 장점을 포기해야 했다는 것이다. EJB 빈은 상속과 다형성 등의 혜택을 제대로 누릴 수가 없었다. 이처럼 EJB 애플리케이션 개발의 복잡도를 제거하면서 다른 한편으로는 더 많은 문제와 복잡성을 가지고 왔다.
  
 
EJB는 형편없는 생산성과 느린 성능, 불필요한 기술적인 복잡도에 의해 EJB의 잘못 설계된 과도한 기술을 피하고, 객체지향 원리에 따라 만들어진 자바언어의 기본에 충실하게 비즈니스 로직을 구현하는 일명 POJO방식을 이용한 POJO프레임워크(POJO를 이용한 애플리케이션 개발이 가진 특징과 장점을 그대로 살리면서 EJB에서 제공하는 엔터프라이즈 서비스와 기술을 그대로 사용할수 있도록 도와주는 프레임워크를 개발한 것이 대표적인 스프링이다.<ref> oblab,〈[https://blog.naver.com/PostView.nhn?blogId=oblab&logNo=150136305165&proxyReferer=https%3A%2F%2Fwww.google.com%2F ◆ 스프링프레임워크의 등장배경 ◆]〉, 《네이버블로그》</ref>
 
EJB는 형편없는 생산성과 느린 성능, 불필요한 기술적인 복잡도에 의해 EJB의 잘못 설계된 과도한 기술을 피하고, 객체지향 원리에 따라 만들어진 자바언어의 기본에 충실하게 비즈니스 로직을 구현하는 일명 POJO방식을 이용한 POJO프레임워크(POJO를 이용한 애플리케이션 개발이 가진 특징과 장점을 그대로 살리면서 EJB에서 제공하는 엔터프라이즈 서비스와 기술을 그대로 사용할수 있도록 도와주는 프레임워크를 개발한 것이 대표적인 스프링이다.<ref> oblab,〈[https://blog.naver.com/PostView.nhn?blogId=oblab&logNo=150136305165&proxyReferer=https%3A%2F%2Fwww.google.com%2F ◆ 스프링프레임워크의 등장배경 ◆]〉, 《네이버블로그》</ref>
68번째 줄: 68번째 줄:
  
 
== 참고자료 ==
 
== 참고자료 ==
* 스프링 프레임워크 공식 홈페이지 - https://spring.io/
+
*스프링 공식 홈페이지 - https://spring.io/
 
* HeeJeong Kwon, 〈[https://gmlwjd9405.github.io/2018/10/26/spring-framework.html (Spring) Spring Framework란]〉, 《깃허브》, 2018-10-26
 
* HeeJeong Kwon, 〈[https://gmlwjd9405.github.io/2018/10/26/spring-framework.html (Spring) Spring Framework란]〉, 《깃허브》, 2018-10-26
 
* oblab, 〈[https://blog.naver.com/PostView.nhn?blogId=oblab&logNo=150136305165&proxyReferer=https%3A%2F%2Fwww.google.com%2F ◆ 스프링프레임워크의 등장배경 ◆]〉, 《네이버블로그》, 2012-04-13
 
* oblab, 〈[https://blog.naver.com/PostView.nhn?blogId=oblab&logNo=150136305165&proxyReferer=https%3A%2F%2Fwww.google.com%2F ◆ 스프링프레임워크의 등장배경 ◆]〉, 《네이버블로그》, 2012-04-13
78번째 줄: 78번째 줄:
 
* [[오픈소스]]
 
* [[오픈소스]]
 
* [[자바]]
 
* [[자바]]
* [[EJB]]
 
* [[스프링]]
 
  
 
{{솔루션|검토 필요}}
 
{{솔루션|검토 필요}}

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)