Spring 모델(M) 코드작성

Structure of Knowledge·2021년 1월 19일
1

어제는 Spring에서 컨트롤러(C) 부분의 설정과 어노테이션에 대해 배웠다.
오늘은 모델(M) 부분의 코드를 작성하면서, 주소록 예제를 작성하였다.

SQL > DAO > Service > Controller 순으로 코드를 작성하였다.

  1. 오라클과 연결을 설정한다.
  2. DAO와 Service 패키지를 만들어준다.
  3. 스프링이 DAO, Service 객체를 찾을 수 있도록 root-context.xml에 설정한다.
<context:component-scan base-package="sdo.md.dao" />
<context:component-scan base-package="sdo.md.service" />
  1. Table을 모델링한 DTO를 작성해준다.
    @NoArgConstructor : 인자가 없는 생성자 자동 생성
    @AllArgConstructor : 모든 멤버를 인자로 하는 생성자 자동 생성
    @Data : 모든 멤버의 getter/setter 메소드 자동 생성

  2. DAO의 인터페이스를 작성하고, 구현한다. 구현한 클래스에는 @Repository 어노테이션을 지정해준다.

  3. Service의 인터페이스를 작성하고, 구현한다. 구현한 클래스에는 @Service 어노테이션을 지정해준다.

  4. Controller에서 필요한 Service객체의 로직을 호출하여(by Spring) 사용자의 요청을 처리해준다.



DAO와 Service 클래스를 만들 때, 인터페이스를 만드는 이유는 무엇일까? 분업에 유리하다는 점은 알겠음.
의존성 주입(DI)라는 특성이 Spring을 많이 사용하는 이유라 하였는데, 아직 감이 오지 않는다.
다만, @AutoWired, @Inject, @Resource, @Setter 등의 어노테이션이 개발자가 선언한 객체의 값을 자동으로 채워주는 역할을 하고 즉, 객체를 만드는 주체가 Spring이 되게 하여 제어의 역전(IoC)이 일어나고, 이것이 Spring이 DI라는 특성을 가지게 한다.
다른 글에서 이 내용을 추가해보겠다.

profile
객체와 제어, 비전공자 개발자 되기

1개의 댓글

comment-user-thumbnail
2021년 1월 20일

무플방지위원회에서왔습니다

답글 달기