Page 19 -
P. 19

여기서 예를 든 것들은 스프링 프레임워크에 포함된 일부에 지나지 않는다. 이외에도 많은 프레임

                   워크가 개발돼 있으며 이들을 독립된 서브 프로젝트의 형식으로 개별적으로 이용하는 것도 가능
                   하다.

                   이 책에선 Spring Boot/MVC를 중심으로 설명하고 있지만 필요에 따라 다른 프레임워크도 함께
                   사용하고 있다. 예를 들면 데이터베이스와 관련된 부분에선 JPA라는 Java EE 기능과 이것을 활
                   용하기 위한 Spring Data JPA(Spring Data에 있는 JPA 관련 기능)를 사용한다. 애당초 모든 프
                   레임워크는 코어인 Spring Framework의 DI 기능을 기반으로 구축돼 있기 때문에, 앞의 표에

                   없어도 코어 부분을 중심으로 모두 융합돼 있다.
                   실제 사용하는 시점에선 이것은 OO이라는 프레임워크의 기능이다라고 의식할 필요가 없고 이 책에

                   서도 이 코드는 이 프레임워크를 사용하고 있다라고 설명하지 않는다. Spring Framework는 다
                   수의 프레임워크 전체를 가리키는 것이다.

                                                                                 column
                     스프링 프레임워크의 ‘DI’란?

                     Spring Framework는 ‘DI(Dependency Injection)’를 위한 프레임워크다. 스프링 프레임워크에 포함된 각종 프
                     레임워크는 모두 토대가 되는 DI를 기반으로 구축돼 있다. DI를 이해하려면 스프링 프레임워크를 제대로 이해하는 것
                     이 중요하다.
                     DI는 객체 특유의 기능을 객체로부터 분리해서 외부에 삽입하는 기능이다. 예를 들어 클래스를 작성한다고 하면, 해당
                     클래스 특유의 필드 정보 등을 설정 파일의 형태로 분리해두고 실행 시에 그것을 원래 클래스에 내장하는 것이다.
                     보통 자바 프로그램에서 클래스를 이용하려면 미리 제대로 된 코드를 작성해두어야 한다. 프로퍼티(필드) 값 등도 인
                     스턴스를 작성한 후 설정해서 이용해야 한다. 하지만 DI를 이용하는 경우, 설정 파일만 준비해두면 자동으로 지정 값
                     을 프로퍼티에 대입해서 인스턴스를 생성하고 바로 클래스를 사용할 수 있다. 즉, 프로그램의 코드로 작성돼 있지 않
                     은 인스턴스가 모든 것이 설정된 상태로 생성돼서 언제든지 사용할 수 있는 상태가 되는 것이다.

                     이 책은 Spring MVC를 중심으로 설명하기 때문에 DI에 대해선 깊이 있게 다루지 않는다. 하지만 Spring MVC도
                     DI를 기반으로 설계돼 있어서 자연스럽게 DI의 움직임을 의식하게 될 것이다. Spring MVC에선 다양한 Bean 정보
                     를 XML에 저장해두고, 해당 Bean 인스턴스를 사용해서 각종 정보를 처리하게 돼 있다. 이 방식만 이해하면 스프링
                     MVC로 개발을 진행할 수 있다. 더 깊이 있게 DI를 알고 싶다면 별도로 DI에 대해 공부해보는 것도 좋다.

















             028





         spring_11.indd   28                                                                    2017-03-22   �� 10:13:59
   14   15   16   17   18   19