ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로젝트의 구조
    Spring 2023. 3. 29. 09:23

     - 기본적인 웹 페이지를 나타내는 것 ( 프론트엔드 ) 은 Presentation 영역 ( Spring MVC ) 로 충분하다.

    하지만, DB를 이용하기 위해서는 Business영역과 Persistence tier 영역이 필요하다.

     

    각 영역의 네이밍 규칙

    ~Controller : 스프링 MVC에서 동작하는 Controller 클래스

    ~Service , ~Servicelmpl : 비즈니스 영역을 담당하는 인터페이스는 ' ~Service ' 방식을 사용하고, 인터페이스를 구현한 클래스는 ' ~Servicelmpl ' 라는 이름을 사용한다.

    ~DAO , ~Repository : DAO ( Data - Access - Object ) 나 Repository( 저장소 ) 라는 이름으로 영역을 따로 구성하는 것이 보편적, 예제에서는 별도의 DAO를 구성하는 대신에 MyBatis의 Mapper 인터페이스를 활용.

    VO DTO : VO의 경우는 주로 Read Only의 목적이 강하고, 데이터 자제초 Immutable(불변)하게 설계, DTO는 주로 데이터 수집의 용도

     


    이전에 했던 회원가입 예제를 한번 보자.

    유저가 회원가입을 누르면 유저가 입력한 데이터를 DB에 보관하게된다. 이때, MemberController 클래스에

    LoginService를 포함시키는 것이 Presentation 과 Business를 연결하는 의미를 가진다.

     

    LoginServicelmpl.java 에서 LoginMapper lm 을 클래스에 포함시킨 것은 Business와 Persistence tier를  연결한 의미를 가진다.


    LoginService.java

    LoginService는 interface 로 선언되어 있다. ( 추상 클래스 )

    인터페이스를 사용하면 코드를 추상화하고 느슨하게 결합할 수 있습니다. 즉, LoginService의 어떤 구현도 인터페이스에서 정의된 계약을 준수한다면 시스템의 다른 부분에 영향을 미치지 않고 코드를 교체할 수 있습니다. 이렇게 하면 코드를 더 모듈화하고 유연하게 유지할 수 있습니다.

    'Spring' 카테고리의 다른 글

    List : Detail , Modify, Delete  (0) 2023.03.30
    ArrayList / Mapper 사용예제  (0) 2023.03.29
    기본 Spring 프로젝트 둘러보기  (0) 2023.03.28
    MVC 구조 이해  (0) 2023.03.28
    Spring (in eclips) jar 파일 에러 발생 시  (0) 2023.03.27
Designed by Tistory.