Spring

    [Spring JPA] JPA를 배워야하는 이유

    [Spring JPA] JPA를 배워야하는 이유

    JPA와 ORM은 뭘까? 왜 JPA를 할까? ORM이란 ORM은 데이터베이스 객체를 자바 객체로 매핑하여 객체 간의 관계를 바탕으로 SQL을 자동으로 생성해준다. ORM은 관계형 데이터베이스의 ‘관계’를 Object에 반영하자는 것이 목적이라면, SQL Mapper는 단순히 필드를 매핑시키는 것이 목적이라는 점에서 지향점의 차이가 있다. ORM의 시대 JPA JPA는 자바진영에서 제공하는 API이며, 자바 ORM 기술에 대한 표준 명세이다. 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다. JPA를 구현한 ORM 프레임워크는 Hibernate, EclipseLink, DataNucleus 등이 있다. 구글트래픽을 통해 본 개발 트렌드 전세계의 구글 유저들은 압도적으로 JP..

    [Spring]  Web Application Context 설정

    [Spring] Web Application Context 설정

    Spring IoC Container에 대한 설정을 변경한다. Spring Bean Configuration File 작성법을 배운다. Web Application Context Spring Web MVC에서 사용하는 IoC 컨테이너 IoC Container란 : 자바 객체(Bean)의 라이프 사이클(생성, 초기화, 서비스, 소멸)을 관리한다 ​ Root Web Application Context와 Dispatcher Servlet ​ Root Web Application Context Root Web Application Context에서는 공유 빈을 관리한다. Services, Repositories와 같이 특정 Dispatcher에 귀속되지 않고 공유성이 강한 객체(Bean)을 관리한다. Root에..

    [Spring] properties 파일을 이용한 DI

    [Spring] properties 파일을 이용한 DI

    객체가 아닌 데이터를 파일로 관리할 순 없을까? Properties 파일에서 의존성 주입은 어떻게 할까? properties 파일 경로 지정 1. properties 파일 생성 service.prop1=10 service.prop2=10.5 service.prop3=false service.prop4=문자열 2. Root Web Application Context의 설정을 담당하는 xml에 properties파일의 경로를 지정한다. XML을 이용한 property 의존성 주입 Properties 값을 이용해 DI index : 생성자에 여러 매개변수가 있을 경우, 매개변수의 순서를 지정 value = ${propertiesKey} : property-placeholder에 있는 자료 중 key에 해당하는..

    [Spring] @Autowired, @Resource, @Inject의 차이

    [Spring] @Autowired, @Resource, @Inject의 차이

    어노테이션을 통한 의존성 주입(DI)는 어떻게 할까? @Resource, @Autowired, @Inject의 차이는 뭘까? 클래스간의 의존 관계를 주입할 때에는 주로 어노테이션 방식으로 의존성 주입을 하게 된다. 따라서 개발자가 가장 자주 사용하게 될 의존성 주입 방식은 어노테이션 방식의 의존성 주입이다. 의존성 주입에 관련된 어노테이션은 @Resource / @Autowired / @Inject가 있는데 차이는 뭘까? @Resource 스프링이 관리하는 빈 이름(Bean Name)으로 객체를 찾아 해당 빈을 주입한다. 이름으로 빈을 찾지 못하면 타입을 기준으로 의존성 주입을 진행한다. Setter, Field에 사용할 수 있지만 생성자에는 사용하지 못 한다. 인터페이스로 다형성을 적용한 구현체들 중 ..

    [Spring] XML을 이용한 DI

    [Spring] XML을 이용한 DI

    스프링에서 의존성 주입을 어떻게 할까? XML을 이용한 의존성 주입(DI)은 어떻게 할까? 의존성 주입은 어떻게 하는걸까? 스프링에서 의존성 주입(DI) 방법은 XML 설정을 통한 방법과 어노테이션을 이용한 방법이 있다. XML 설정을 통한 의존성 주입은 설정 파일에서 일괄적으로 의존성을 주입을 설정할 수 있기 때문에 주로 외부 라이브러리 클래스를 주입해야할 경우에 사용한다. 어노테이션을 통한 의존성 주입은 주로 클래스간에 의존 관계를 주입할 때 사용한다. XML 설정을 통한 의존성 주입 생성자를 이용한 주입 방법 김철수 lazy-init = "true" : 생성 지연, Bean 객체를 사용할 때 생성 (default : WAS에서 Context load시에 Bean 객체로 등록) : Class의 생성자..

    [Spring] 의존성과 의존성 주입 (Dependency & Dependency Injection)

    [Spring] 의존성과 의존성 주입 (Dependency & Dependency Injection)

    의존성이 무엇일까? 의존성을 어떻게 해결할까? 의존성 주입이 왜 필요할까? 지난 글을 통해 IoC 방식의 장점을 알아보았다. 이러한 스프링의 IoC 동작을 이해하려면 의존성과 의존성 주입의 개념 또한 알아야한다. 스프링은 DI, 의존성 주입이라는 핵심 기능을 통해 IoC 구조를 설계할 수 있게 해주고 있기 때문에 꼭 알아야하는 내용이다. 그래서 DI가 뭔데? 일단, 구글에 검색해보자. DI란 Dependency Injection의 줄임말로 한글로 번역하면 의존성 주입이라는 말이다. "의존성 주입"은 제어의 역행이 일어날 때 스프링이 내부에 있는 객체들간의 관계를 관리할 때 사용하는 기법이다. 의존성 주입은 말 그대로 의존적인 객체를 직접 생성하거나 제어하는 것이 아니라, 특정 객체에 필요한 객체를 외부에..

    [Spring] IoC 제어 방식 (Inversion of Control)

    [Spring] IoC 제어 방식 (Inversion of Control)

    IoC 제어 방식은 뭘까? 기존 제어 방식과의 차이점은 뭘까? IoC 제어 방식은 왜 좋을까? 스프링을 처음 접하게 되면 가장 먼저, 또 가장 많이 듣는 단어 중 하나가 IoC, 제어의 역전이다. 오늘은 스프링의 IoC 제어 방식에 대해 정리해보고자 한다. 우선, 구글이나 책을 통해 IoC에 대해 찾아보면 아래와 같이 나온다. IOC (Inversion of Control) 제어의 역전, 말 그대로 "제어권의 흐름이 역전"되는 것이다. 메서드나 객체의 호출 작업을 개발자가 결정하는 것이 아니라 외부에서 결정되는 것을 의미한다. Spring IOC controller에게 의존성을 위임하여 객체 간의 결합도를 줄이고 유연한 코드를 작성할 수 있게 한다. 가독성을 향상시키고 코드 중복을 최소화해 유지 보수성을..