스프링 프로젝트는 어떠한 폴더 구조를 이루고 있는지 살펴봅니다.

스프링 폴더 구조 이해하기

 

 목차

 

1. 폴더 구성

2. 각 폴더의 역할

 

1. 폴더 구성

  • config
  • controller
  • dao
  • dto
  • mapper
  • service
  • utils
  • vo

2. 각 폴더의 역할

  • config
    - 애플리케이션(스프링 프로젝트)의 설정 파일을 담고 있음
    - jwt 토큰, security 설정 파일

 

  • controller
    - 클라이언트의 요청을 처리하고 응답을 생성하는 역할
    - 클라이언트의 요청을 받는 최전선에 서 있으며, 다른 비즈니스 로직을 호출, 알맞은 응답을 생성 후 클라이언트로 전송

 

  • dao
    - Data Access Object의 약자. 데이터 베이스와 어플리케이션 같의 중간 연락책
    - 데이터 베이스의 테이블 구조를 객체 구조로 표현하여 데이터 조작 수행
    ex) 각 테이블의 컬럼 값들의 타입을 명시한 파일들

  • dto
    - Data Transfer Object의 약자. 데이터를 전송받거나 전송할 때의 객체의 형태 지정.
    - Restful api 문서의 input, output의 형태를 맞춰줌
    - ex) 클라이언트로 응답을 보낼 때에 맞춰줄 응답의 형태를 담은 파일들

  • mapper
    - MyBatis를 사용할 때, SQL 쿼리와 자바 메서드 간의 매핑을 담당.
    - mapper.xml 파일에 쿼리문을 작성하고, mapper 폴더에는 해당 쿼리문을 실행하는 메서드의 형태를 작성
    - ex) mapper 폴더에는 쿼리가 반환하는 형태, parameter의 타입, 메서드명 등이 명시된 파일들
    - resource/mappers/000.xml에는 mapper  폴더에 작성된 메서드들의 구체적 쿼리문이 작성되어 있다.

  • utils
    - 프로젝트 전반에 사용되는 공통 기능들을 담은 파일
    - ex) 문자열 변환 메서드, 랜덤 비밀번호 생성 메서드

  • vo
    - 읽기 전용의 객체, 공통된 주제로 묶이는 데이터를 하나의 객체로 묶어서 다룸
    - ex) 한 사람의 나이, 이름, 전화 번호등을 하나의 객체에 모두 담아서 다룸


  • entity
    - 데이터 값들을 객체 형태로 추상화하여 다른 곳에서 이용하게 쉽게 만들어 줌
    - dao와 같이 데이터의 값들을 객체 형태로 추상화하는 과정은 같지만, entity는 추상화에서만 그친다는 점에서 차이 존재

 

+ Recent posts