스프링 프로젝트의 디렉토리 구조

왱구·2024년 12월 28일

JAVA

목록 보기
17/17

개발학원에서의 2차 팀 프로젝트를 spring으로 개발을 했었다.
spring 복습도 할 겸, 오늘은 spring으로 구성된 프로젝트의 디렉토리 구조를 하나하나 살펴보겠다. 빌드 툴은 메이븐을 사용했다.


  • Develop OS : Windows10
  • WEB/WAS Server : Tomcat v9.0
  • Language : Java 11
  • Framwork : Spring 3.1.1 Release
  • Build Tool : Maven 4.0.0

1. src/main/java

Java 파일이 모여있는 곳.

user/service

  • impl/UserDAO.java
    : DAO(Data Access Object)는 실제 데이터베이스와의 상호작용을 담당하고, 이 서비스 클래스는 데이터를 처리하는 로직을 포함한다.
    데이터 접근 개체를 생성하여 연결하여 처리되는 부분을 분리시켜서 데이터소스에 직접적으로 연결되지 않고 거쳐가는 역할을 하는 객체를 생성하여 캡슐화를 했다.
    UserServiceImpl 클래스에서 호출된다.

  • UserDTO.java
    : DTO(Data Transfer Object)는 계층 간 데이터 전송을 위해 모델을 정의하는 객체이다.

  • impl/UserServiceImpl.java, service/UserService.java
    : Service를 만들 때 UserService로 서비스를 인터페이스로 설계하고, UserServiceImpl로 구현체인 클래스를 생성해서 사용하는 방식으로 설계했다.
    UserService 인터페이스를 구현한 UserServiceImpl 클래스라고 볼 수 있다.

user/web

  • UserController.java
    사용자 관련 웹 페이지에서 발생하는 요청들을 처리하고, 비즈니스 로직을 UserService를 통해 실행하며, 뷰 페이지로 적절한 데이터를 전달한다.

2. src/main/resources

자바 클래스에서 사용하는 리소스를 보관하는 곳이다. DB 연결을 위한 자원, 의존성 주입(DI)을 위한 xml 파일 등 자바 코드 외 모든 자원을 이곳에 넣어준다.

  • log4j.xml
    : 로깅 설정을 정의하는 구성 파일이다.

  • mybatis-config.xml
    : MyBatis 설정 파일이다.

mappers

  • User_Mapper.xml
    : MyBatis 프레임워크에서 사용되는 매퍼 파일로, SQL 쿼리와 Java 객체 간의 매핑을 정의한다.
    요청값과 반환값을 정의하고, 쿼리를 담당한다.

3. src/test

: java, resources와 같은 역할이지만 테스트를 위한 폴더이다. 현재 프로젝트에서는 사용하지 않았다.


4. src

: Web에 관련된 자원이 담겨있는 루트 폴더이다. main폴더의 하위 폴더에 웹과 관련된 모든 자원들이 분류되어있다.
test폴더는 테스트를 위한 폴더이다. 이 역시 사용하지 않았다.

  • main/webapp/resources
    : 웹에 필요한 다양한 자원들을 보관하고, 사용자가 직접 접근할 수 있는 공간이다.
    js, css, img 파일 등이 보관되어 있다.

  • main/webapp/WEB-INF/spring
    : 스프링 환경설정 파일이 보관되는 곳이다.

  • main/webapp/WEB-INF/views
    : jsp, HTML 파일이 보관되는 곳이다. 이 폴더가 루트(/)의 기준점이며, 사용자가 입력하고 컨트롤러가 받아주는 url이 이 폴더의 구조를 따라가게 된다.


5. pom.xml

: Maven의 POM(Project Object Model)파일이며 Java 프로젝트의 빌드와 의존성 관리를 정의하는 파일이다.
사용하고싶은 라이브러리를 의존성 관리에 입력하면 자동으로 다운로드하여 개발 가능하다.

profile
늦깎이 애아빠 개발지망생

0개의 댓글