시작하기
1. 애플리케이션의 경계를 설정하기, 요구 사항 수집하기
2. 패키지 구조 생성하기
- 기능기반 패키지 구조
- 기능을 위주로 패키지를 나누어 클래스들을 관리하는 방식을 뜻한다.
- 계층기반 패키지 구조
- Controller, DTO (API 계층) Model, Service(비지니스 계층), Repository(데이터 엑세스 계층) 으로 나누어서 클래스들 을 관리 하는걸
뜻한다.
3. 엔트리포인트 클래스 작성 (애플리케이션 시작점)
- main() 메서드가 포함된 엔트리 포인트 클래스 작성이 필요하지만 ‘Spring Initializr’ 를 이용해서 생성한 프로젝트는 이미 작성이 되어있다
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication // 1. 자동구성 활성화 2. @Component 조회해서Spring Bean으로 등록 3. @Configuration 조회 Spring Bean으로 등록
public class Section3Week1Application {
public static void main(String[] args) {
SpringApplication.run(Section3Week1Application.class, args); // Spring 애플리케이션을 부트스트랩(애플리케이션 실행전 설정작업하여 실행 가능한 애플리케이션 만드는 단계)하고 실행하는 역할
}
}
4. Controller의 설계
ex) 커피주문 애플리케이션 (Spring Boot 기반)
- 주인이 커피 정보를 관리하는 기능 ( 커피정보 등록기능, 등록한 커피 정보 수정, 삭제, 조회 기능)
- 고객이 커피 정보를 조회하는 기능 ( 커피정보 조회 기능)
- 고객이 커피를 주문하는 기능 ( 커피 주문 등록, 수정, 삭제 기능)
- 고객이 주문한 커피를 주인이 조회하는 기능 ( 커피 주문 조회 기능, 주문완료 처리 기능)
5. Controller의 구조 설계
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController // 해당 클래스가 REST API의 리소스를 처리하기 위한 API 엔드포인트로 동작함을 정의
@RequestMapping("/v1/members") // 클라이언트의 요청을 처리하는 핸들러 메서드를 매핑해주는 역할 (공통 URL 설정을 해준다)
//@RequestMapping은 클래스 레벨에서 해주게 되고 핸들러 메서드별로 달라지는 URI는 각각의 핸들러 메서드에 정의하게 된다
public class MemberController {
}
6. 핸들러 메서드 적용
주로 CRUD(create, read, update, delete) 를 기억하면 쉽게 작성할수 있다 물론 컨트롤러에선 (post, get, patch,remove)로 작성해도 된다
'스프링(Spring)' 카테고리의 다른 글
STS가 열리지 않을때 (0) | 2023.08.10 |
---|---|
STS 에 svn 연동하기(안될때 수동설치) (0) | 2023.08.10 |
spring batch, spring scheduler, spring quartz 알아보기 (0) | 2023.08.10 |