참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/)
- 왜 Spring Framework 를 써야 하는가?
1. Java 기반의 Enterprise Application 을 만드는데 있어서 가장 유명한 프레임워크이다.
2. 경량화된 프레임워크이며, 심플한게 특징이다.
3. 수많은 helper class 를 제공하고, 개발의 편의성을 높였다.
- EJB 와 Spring
* Spring History
Java 에는 4가지 플랫폼이 있는데, SE, EE, ME, FX 가 있으며, 일반적인 자바 개발용은 SE 를 기업용은 EE 를 사용한다.
Spring Framework 가 등장하기 이전에는 Java 로 Enterprise Application 을 개발할때, Java EE 와 함께 EJB(Enterprise Java Bean) 를 사용해서 비지니스 로직을 처리했다.
초창기의 EJB 는 개발하기에 너무 복잡하고 난해했고, 개발을 하더라도, 성능 자체도 그렇게 좋지 못했다.
rod johnson 이 Spring 을 개발하면서, EJB 의 복잡성을 해소하고, 더 경량화된 프레임워크를 내놓으면서
자바기반의 기업용 어플리케이션들은 Spring 으로 대체되었다.
- Spring 의 목표
1. Lightweight development with java POJO (POJO : Plain-Old Java Object)
2. Dependency Injection to promote loose coupling
3. Declarative Programming with Aspect-Oriented Programming (AOP)
4. Minimize boilerplate java code
등 여러가지가 있다.
(더 자세한 부분은 차후 포스팅에서 작성)
- IDE, Apache Tomcat
앞으로 모든 내용은 Spring 5 이상의 버전을 기준으로 하므로
첫번째로 Java 8 이상의 버전이 필요하고,
두번째로 IDE 를 보통 Intellij 나 Eclipse 를 쓰는데, Eclipse 를 사용했다.
세번째로 Apache Tomcat 설치가 필요하다. (Tomcat 9 버전을 기준으로 했다)
(Spring 을 본다는것은 이미 java 를 써봤다는 소리이므로 굳이 설치에 대한 설명은 생략하겠다)
* spring jar 파일 받기
IDE 로 Eclipse 를 사용하는데, Eclipse 로 사용할때 spring 각 버전에 맞는 jar 파일을 받아와야 한다
나는 5.3.2 버전의 jar 파일들을 받아와서 사용했다.
아래의 사이트에 가면 버전 별로 쭉 나열되어 있다.
repo.spring.io/release/org/springframework/spring/
여기서 사용하려는 버전에 들어가서 ~dist.zip 파일을 받은뒤 압축을 해제하면
libs 폴더가 보인다.
거기에 있는 jar 파일들을 전부 복사한뒤,
이클립스에서 프로젝트를 하나 만들고, 그 프로젝트에 lib 라는 폴더를 하나 만든뒤 전부 복사해준다.
그리고 나서 그 프로젝트의 properties 에 들어가면, java build path 란 부분이 보인다
여기서 Classpath 에 Add JARs 버튼을 누르고 아까 추가해줬던 lib 폴더내의 jar 파일들을 전부 선택하여 추가한다
그러면 프로젝트에 Referenced Libraries 폴더가 생기고 추가했던 jar 파일들이 들어가게 됬다.
(프로젝트에서 앞으로 컴파일과 런타임시에 이 라이브러리들을 참조해주겠다는 의미가 된다.
Spring 라이브러리 가져다 쓰겠단 소리)
여기까지 하면 Eclipse IDE 에서 기본적으로 spring framework 를 사용할 준비가 된것이다.
'Spring' 카테고리의 다른 글
Spring Framework - XML 파일 없이 스프링 설정하기 (0) | 2021.01.22 |
---|---|
Spring Framework - Annotation (0) | 2021.01.20 |
Spring Framework - Bean Scope, Life Cycle (0) | 2021.01.19 |
Spring Framework - Dependency Injection (0) | 2021.01.18 |
Spring Framework - Inversion of Control (IoC) (0) | 2021.01.13 |