1. 파일 구조 소개
📁 src
├── 📁 main
│ ├── 📁 java
│ │ └── 📁 프로젝트_파일_패키지
│ │ ├── 📁 controller
│ │ ├── 📁 domain
│ │ ├── 📁 repository
│ │ ├── 📁 service
│ │ └── 프로젝트_Application.java
│ │
│ └── 📁 resources
│ ├── 📁 static
│ ├── 📁 templates
│ └── application.properties
│
└── 📁 test
└── 📁 java
📁 gradle
├── wrapper 관련 파일
build.gradle
settings.gradle
gradlew
gradlew.bat
📁 gradle
: Gradle 빌드 도구 관련 파일이 있는 곳.
역할 = 프로젝트 빌드, 실행, 의존성 관리
📁 resources
: 자바 코드가 아닌 설정 파일, HTML, 정적 파일이 들어가는 곳.
resources
/static
: CSS, JS, 이미지, 정적 HTML 같은 파일 위치.
브라우저가 직접 접근할 수 있다.
resouces
/templates
: Thymeleaf 같은 서버 템플릿 HTML 파일 위치.
컨트롤러의 return을 통해 접근한다.
📁 controller
: 사용자의 요청을 처음 받는 곳.
역할 = 요청 받기 → 필요한 데이터 준비 → 화면 또는 응답 반환
📁 domain
: 핵심 데이터 객체가 들어가는 곳.
역할 = 서비스에서 다루는 주요 객체 정의
예) Member 객체, Order 객체 ...
📁 repository
: 데이터를 저장하고 조회하는 곳.
역할 = DB 또는 메모리에 접근해서 데이터 저장/조회
예) 회원 저장/조회 ...
- interface 파일
: 해야 하는 일 목록
- 실제 구현 class 파일
: 그 일을 메모리 방식으로 실제 구현한 클래스
인터페이스와 실제 구현 클래스를 나누는 이유
- 나중에 저장방식을 바꾸기 쉽다.
(예. 개인저장소 -> DB)
- 서비스단에서는 저장방식이 크게 상관없어진다.
📁 service
: 비즈니스 로직이 들어가는 곳.
역할 = 규칙 처리(단순 저장/조회 X)
예) 회원가입 로직 ...
2. 전체 흐름 처리
사용자 요청
↓
controller
↓
service
↓
repository
↓
domain / DB
예) 회원가입
Controller: 요청 받음
Service: 중복 회원인지 검사하고 가입 처리
Repository: 회원 저장
Domain: Member 객체 사용
'[CODE] > Spring Boot' 카테고리의 다른 글
| [Spring Boot] 3. 롬복과 리팩터링 (0) | 2026.05.29 |
|---|---|
| [Spring Boot] 2. 게시판 CRUD 만들기 - form, DTO, repository (0) | 2026.05.07 |
| [Spring Boot] 1. 스프링 부트 개요 - 시작, MVC 패턴 (0) | 2026.05.03 |