Featured image of post 프로젝트 구조

프로젝트 구조

스프링부트 프로젝트 구조

# 디렉터리 구조

# src/main/java 디렉터리

src/main/java 디렉터리는 자바 파일을 저장하는 공간이다.

  • com.mysite.sbb 패키지 : 이 패키지는 SBB의 자바 파일을 저장하는 공간이다. HelloController.java와 같은 스프링 부트의 컨트롤러, 폼과 DTO, 데이터베이스 처리를 위한 엔티티, 서비스 등의 자바 파일이 이 곳에 위치한다.
    보통 Table 단위 등 필요 기능에 따라 패키지를 나누어 관리한다.

# src/main/resources 디렉터리

src/main/resources 디렉터리는 자바 파일을 제외한 HTML, CSS, 자바스크립트, 환경 파일 등을 저장하는 공간이다.

  • templates : HTML 저장
  • static : css, js, 이미지 파일등 저장
  • application.properties : 프로젝트 설정(데이터베이스 설정 등)

# src/test/java 디렉터리

src/test/java 디렉터리는 프로젝트에서 작성한 파일을 테스트하는 코드를 저장하는 공간이다.
JUnit과 스프링 부트의 테스트 도구를 사용하여 서버를 실행하지 않은 상태에서 src/main/java 디렉터리에 작성한 코드를 테스트할 수 있다.

# build.gradle

build.gradle은 그레이들(Gradle)이 사용하는 환경 파일이다. 프로젝트에 필요한 플러그인과 라이브러리를 설치하기 위한 내용을 작성한다.
작성 후 새로고침을 해줘야 한다.

# MVC 패턴

  • 모델(Model): 데이터를 나타내는 부분으로, 주로 데이터베이스와 연결되는 역할. 데이터의 상태를 관리하고 비즈니스 로직을 포함

  • 뷰(View): 사용자 인터페이스를 나타낸다. 사용자에게 데이터를 표시하고 사용자 입력을 받는 역할. HTML, XML, JSON 등과 같은 형태로 사용자에게 정보를 표시

  • 컨트롤러(Controller): 사용자 입력을 받고 모델을 업데이트하거나 뷰를 업데이트하는 역할. 사용자의 요청을 처리하고 그에 따른 적절한 응답을 반환

MVC 패턴은 각 구성 요소가 서로 분리되어 있기 때문에 유지보수와 확장성이 용이하며, 코드의 재사용성을 높일 수 있다. 이는 대규모 애플리케이션 개발에서 매우 유용.

# 기타 구성 요소

  • Repository: 데이터 액세스 계층. 데이터베이스와의 상호 작용을 담당하며, 데이터를 영구 저장소에 저장하고 검색하는데 사용. 주로 엔티티에 대한 CRUD(Create, Read, Update, Delete) 작업 수행

  • Service: 비즈니스 로직을 구현하는 데 사용. 비즈니스 로직은 데이터의 유효성을 검사하거나 특정 작업을 수행하는 등의 업무 규칙을 명시. Service는 주로 여러 Repository를 조합하여 트랜잭션을 관리하고, 서비스 계층을 통해 데이터 액세스 계층과 사용자 인터페이스 간의 중간 계층을 제공. 복잡한 코드를 모듈화할 수 있어서 유용

  • DTO (Data Transfer Object): DTO는 데이터를 전송하는 데 사용되는 객체. 주로 서비스와 뷰 간의 데이터 전달에 사용. DTO는 주로 엔티티 클래스와 유사한 구조를 가지지만, 비즈니스 로직을 포함하지 않는다. 대신 데이터 전송을 위한 필드와 메서드만 포함. DTO는 데이터를 전송하는 과정에서 필요한 정보만 포함하여 데이터 전송의 효율성을 높임.

이들은 MVC 패턴의 여러 계층 중에서 비즈니스 로직, 데이터 액세스, 데이터 전송 등을 담당하는 역할을 함. 이러한 구성 요소를 사용하면 코드를 더 모듈화하고 유지보수하기 쉽게 만들 수 있다.

Licensed under CC BY-NC-SA 4.0
Hugo로 만듦
JimmyStack 테마 사용 중